当前位置: 首页 > 知识库问答 >
问题:

OpenNLP名称查找器

岳永思
2023-03-14

我正在使用OpenNLP的NameFinder API示例文档。初始化名称查找器后,文档使用以下代码作为输入文本:

for (String document[][] : documents) {

  for (String[] sentence : document) {
    Span nameSpans[] = nameFinder.find(sentence);
    // do something with the names
  }

  nameFinder.clearAdaptiveData()
}

然而,当我将其引入eclipse时,“documents”(而不是“document”)变量给了我一个错误,表示变量documents无法解析。“documents”数组变量所指的文档是什么?我是否需要初始化一个名为“documents”的数组,该数组包含txt文件,以消除此错误?

谢谢你的帮助。

共有1个答案

龙宣
2023-03-14

OpenNLP留档声明输入文本应该被分割成文档、句子和标记。您提供的这段代码说明了如何处理多个文档。

如果您只有一个文档,则不需要第一个,只需内部一个带有句子数组的文档,该数组由标记数组组成。

要从文档中创建句子数组,可以使用OpenNLP SentenceDetector,对于每个句子,可以使用OpenNLP标记器获取标记数组。

您的代码将如下所示:

// somehow get the contents from the txt file 
//      and populate a string called documentStr

String sentences[] = sentenceDetector.sentDetect(documentStr);
for (String sentence : sentences) {
    String tokens[] = tokenizer.tokenize(sentence);
    Span nameSpans[] = nameFinder.find(tokens);
    // do something with the names
    System.out.println("Found entity: " + Arrays.toString(Span.spansToStrings(nameSpans, tokens)));
}

您可以从OpenNLP文档中学习如何使用SentenceDetector和标记器。

 类似资料:
  • 首先是一点背景:我试图在一个文档库中识别街道地址,我们决定,显而易见的解决方案是使用NLP(本例中为Apache OpenNLP)工具来实现这一点,到目前为止,一切看起来都很好,尽管我们仍然需要用大量文档来训练模型,但这并不是一个真正的问题。我们通过使用DataMake中的USAddress解析器,为地址验证添加了额外的步骤,从而改进了解决方案。我最大的问题是,如果地址旁边没有一个位置,地址本身就

  • 根据文档中的指南,我试图在一些数据上测试training OpenNLP的Name Finder。然而,我遇到了错误:,这似乎没有任何意义。 我运行的命令是: 我从https://opennlp.apache.org/download.html.环境变量似乎设置正确,基本文件夹中的文件夹包含一个文件夹。 编辑:这似乎与CoNLL2003格式有关。如果我尝试直接运行训练器而不指定它就可以工作。但是我

  • 我正在使用Apache Open NLP的NER。我已经成功训练了我的自定义数据。在使用名称查找器时,我正在根据空白拆分给定的字符串并传递字符串数组,如下所示。 在这里,当我使用split时,test和case作为单独的值给出,namefinder永远不会检测到它们。我将如何克服上述问题。是否有一种方法可以传递完整的字符串(而不将其拆分为数组),这样,测试用例本身就可以被视为一个整体?

  • 我试图使用ApacheOpenNLP来识别文本中的日期实体。我创建了一个小java程序,该程序使用以下格式的一系列日期生成标记: 每个标签都是OpenNLP定义格式的句子。 我生成了大约40万条条目,并对模型进行了培训。培训结束后,我试图通过命令行使用TokenNameFinder来验证一切是否正常,但对于每个单词,我都键入finder,并将其标识为日期实体。例如,当我打字时: 我得到的是: 我想

  • 我试图将邮寄地址与简历(简历)隔离开来。简历来自许多不同的国家,因此没有标准的布局、格式、押韵或地址原因。 我有我的原始数据,这些数据已经被分割成句子和标记,并准备好标记。 问题: 如果我最感兴趣的是城市/城镇,我是否应该标记整个地址以获得最佳效果? 鉴于我寻找的地址主要出现在简历的前四分之一,我应该将训练数据削减到25%并对实时数据做同样的事情,还是通过将文档保持为一个整体并只标记我需要的部分来

  • 我刚开始使用openNLP来识别名字。我使用的是open NLP附带的模型(en-ner-person.bin)。我注意到,虽然它可以识别美国、英国和欧洲的名字,但它不能识别印度或日本的名字。我的问题是(1)是否已经有模型,我可以用来识别外国名字(2)如果没有,那么我相信我将需要生成新的模型。在这种情况下,是否有一个可供我使用的copora?