斯坦福核心NLP中的多个NER模型



我正在尝试检测句子是否有人名。我正在使用斯坦福核心NLP Java库

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 模型,用逗号分隔。但似乎它总是使用第一个模型(中文(进行分类。

如何在一句话中使用所有 4 个 NER 模型?

我不太确定在英语文本上使用外语ner模型是一个好主意。

但是,如果您将其添加到代码中,它将解决您的问题:

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

这样,所有标签都将允许所有 4 个模型输出。

最新更新