несколько моделей NER в станфордкор нлп - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь определить, есть ли в предложении имя человека. Я использую стандартную библиотеку Java NLP core

Properties props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, pos, lemma, ner, parse, dcoref");
props.setProperty("ner.model","edu/stanford/nlp/models/ner/chinese.misc.distsim.crf.ser.gz,edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz,edu/stanford/nlp/models/ner/german.conll.germeval2014.hgc_175m_600.crf.ser.gz,edu/stanford/nlp/models/ner/spanish.ancora.distsim.s512.crf.ser.gz");
standfordNERpipeline = new StanfordCoreNLP(props);
CoreDocument document = new CoreDocument(line.getText());
getStanfordPipeline.annotate(document);
CoreSentence sentence = document.sentences().get(0);
List<String> nerTags = sentence.nerTags();

Поскольку я не знаю, какой этнической принадлежности может быть человек, я хочу использовать все доступные модели NER. Я использую все 4 модели NER в файле prop, разделенные запятой. Но похоже, что для классификации всегда используется первая модель (китайский).

Как я могу использовать все 4 модели NER в одном предложении?

1 Ответ

0 голосов
/ 06 мая 2018

Я не совсем уверен, что использование иностранного языка ner модели на английском тексте - хорошая идея.

Но если вы добавите это в свой код, это исправит вашу проблему:

props.setProperty("ner.combinationMode", "HIGH_RECALL")

Таким образом, вывод всех 4 моделей будет разрешен для всех тегов.

...