我有一些输入文本,其中包含一个或多个人名。我没有这些名字的字典。哪个 Java 库可以帮助我从输入文本中定义名称?我浏览了 OpenNLP,但没有找到任何示例或指南,或者至少没有找到关于如何将其应用到我的代码中的描述。(我看到了 javadoc,但对于这样的项目来说,它的文档很差。)
我想从一些随机文本中查找名称。如果输入文本是“我的朋友 Joe Smith 去商店了。”,那么我想得到“Joe Smith”。我认为智能引擎上应该有一些足够大的字典,基于较小的字典,可以理解人名。
我有一些输入文本,其中包含一个或多个人名。我没有这些名字的字典。哪个 Java 库可以帮助我从输入文本中定义名称?我浏览了 OpenNLP,但没有找到任何示例或指南,或者至少没有找到关于如何将其应用到我的代码中的描述。(我看到了 javadoc,但对于这样的项目来说,它的文档很差。)
我想从一些随机文本中查找名称。如果输入文本是“我的朋友 Joe Smith 去商店了。”,那么我想得到“Joe Smith”。我认为智能引擎上应该有一些足够大的字典,基于较小的字典,可以理解人名。
OpenNLP 具有命名实体识别。检查文档中的英文名称查找部分。但我的经验表明,它可以识别实体,但没有与之关联的标签。(准确地说,我发现标签分配不明确。)因此,如果您有句子“我的朋友 Joe Smith 去了沃尔玛商店”,OpenNLP 会识别两个命名实体 - “Joe Smith”和“Walmart”。我无法将“Joe Smith”标记为“个人”,将“Walmart”标记为“组织”。
正如 Matt 所建议的,您可以尝试 LingPipe,尽管它是一个商业工具。一些开源替代品是MorphAdorner和Stanford NER。
虽然我们正在等待有关您正在做什么的详细信息,但这里有几个指向常见名字列表的链接,至少在美国人口统计中:
我认为您将需要这些(和/或更多)来检查,因为您的任务听起来不像 NLP 可以在没有参考信息的情况下为您做的事情。
您可以在此处查看从自由文本中提取人物http://code.google.com/p/graph-expression/wiki/Examples
I would suggest you using stanford Name Entity Recognizer(NER). Stanford NER provides many classifiers.One of the classifiers provided by stanford NER can identify name,location and organization from a given text.
You can find an online demo for stanford NER in this link http://nlp.stanford.edu:8080/ner/
OpenNlp 在他们的 NER 模型中有一个人类型。从 opennlp 网站下载项目和模型,并从模型网站获取模型(Opennlp 页面上有链接)。然后去这里,http://www.asksunny.com/drupal/? q=node/ 4 这是如何加载模型和执行 NER 的一个很好的例子。NER 从来都不是完美的,所以不要失望。
您还可以从语义的角度看更有趣的OpenCyc和 WordNet 项目。
试试斯坦福 NER,一个文本处理库
这个问题在自然语言处理中的命名实体识别中得到了解决,目前它被认为是一个有点困难的问题。但是,您可以使用许多工具。我为此使用了 stanford NER,它是一个很好的软件。
OpenCalais 服务可能有用。试试他们的提交工具:http ://www.opencalais.com/documentation/calais-submission-tool
该工具可识别的不仅仅是人名。