apache opennlp переключение между несколькими языками - PullRequest
0 голосов
/ 21 января 2020

в DIRRE НУЖНО за помощь, пожалуйста! Я новичок в программировании и НЛП. я пытаюсь создать приложение OCR и NLP в android с java. Для OCR я использую GV, для NLP я использую OpenNLP. Итак, мое приложение должно распознавать и извлекать сущности на 3 разных языках: русский, английский sh, китайский.

Я обучил свои модели NER, однако я не уверен, как интегрировать переключение (например, если китайский, то chi-ner-name.bin, если русский, тогда будет использоваться rus-ner-name.bin ) между ними. Если код для engli sh такой:

 try {
        in_token = assetManager.open("en-token.bin");

        TokenizerModel tokenModel = new TokenizerModel(in_token);
        TokenizerME tokenizer = new TokenizerME(tokenModel);
        String[] tokens = tokenizer.tokenize(nlp_text);

        in_gems = assetManager.open("en-ner-names.bin");

        TokenNameFinderModel model_name = new TokenNameFinderModel(in_gems);
        NameFinderME nameFinder_name = new NameFinderME(model_name);
        Span[] nameSpans1 = nameFinder_name.find(tokens);

        for (Span s : nameSpans1) {
            for (int index = s.getStart(); index < s.getEnd(); index++) {
                name_output.setText(tokens[index] + " ");
            }
        }
    } catch (Exception ex) {
        Log.e("NLP", "message: " + ex.getMessage(), ex);
    }

Должен ли я просто повторить код для других языковых моделей? Должен быть более короткий и эффективный способ, нет? Кроме того, я не уверен, должен ли я реализовывать LanguageDetector API поверх обученных моделей?

Для новичка ie, такого как я Apache Документы OpenNLP не достаточно объяснительны. Может кто-нибудь, пожалуйста, дать мне руководство или указать направление учебников или других ресурсов. Спасибо!

...