java - 使用 OpenNLP 查找位置名称

标签 java location opennlp

我是 OpenNLP 的新手。我使用 OpenNLP 从句子中查找位置名称。我的输入字符串是“意大利在中央情报局案件中赦免美国上校”。我在结果集中找不到“意大利”字样。我怎么解决这个问题。提前致谢!

try {
   InputStream modelIn = new FileInputStream("en-token.bin");
   TokenizerModel tokenModel = new TokenizerModel(modelIn);
   modelIn.close();
   Tokenizer tokenizer = new TokenizerME(tokenModel);
   NameFinderME nameFinder =
      new NameFinderME(
         new TokenNameFinderModel(new FileInputStream("en-ner-location.bin")));
   String tokens[] = tokenizer.tokenize(documentStr);
   Span nameSpans[] = nameFinder.find(tokens);
   for( int i = 0; i<nameSpans.length; i++) {
      System.out.println("Span: "+nameSpans[i].toString());
   }
}
catch(Exception e) {
   System.out.println(e.toString());
}

最佳答案

opennlp 结果取决于创建模型的数据。 sourceforge 上的 en-ner-location.bin 文件可能不包含对您的数据有意义的样本。此外,使用词块分析器或词性标注器提取名词或名词短语 (NNP) 不会仅被隔离到位置。因此,您的问题的答案是:该模型并未考虑您数据中的每一种情况,这就是您在此特定句子上没有受到打击的原因。顺便说一句,NER 从来都不是完美的,它总是会返回一定程度的误报和漏报。

关于java - 使用 OpenNLP 查找位置名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16160090/

相关文章:

java - PlayN mp3 支持 UnsupportedAudioFileException

java - 使用循环重复线程与使用 scheduleAtFixedRate() 重复运行

java - 如何静音 Apache OpenNLP 日志

java - 谷歌如何提供页面摘要

docker - 自动编辑dockerized容器中的文件

java - 使用xpath提取java android中的特定xml节点

java - simple-xml null 到 nil

ios - 获取我附近的清真餐厅的列表FourSquare API

android - 我如何保存我当前的位置?

asp.net - web.config 位置路径属性上的正则表达式(带参数)