5

我有一些输入文本,其中包含一个或多个人名。我没有这些名字的字典。哪个 Java 库可以帮助我从输入文本中定义名称?我浏览了 OpenNLP,但没有找到任何示例或指南,或者至少没有找到关于如何将其应用到我的代码中的描述。(我看到了 javadoc,但对于这样的项目来说,它的文档很差。)

我想从一些随机文本中查找名称。如果输入文本是“我的朋友 Joe Smith 去商店了。”,那么我想得到“Joe Smith”。我认为智能引擎上应该有一些足够大的字典,基于较小的字典,可以理解人名。

4

10 回答 10

3

OpenNLP 具有命名实体识别。检查文档中的英文名称查找部分。但我的经验表明,它可以识别实体,但没有与之关联的标签。(准确地说,我发现标签分配不明确。)因此,如果您有句子“我的朋友 Joe Smith 去了沃尔玛商店”,OpenNLP 会识别两个命名实体 - “Joe Smith”和“Walmart”。我无法将“Joe Smith”标记为“个人”,将“Walmart”标记为“组织”。

正如 Matt 所建议的,您可以尝试 LingPipe,尽管它是一个商业工具。一些开源替代品是MorphAdornerStanford NER

于 2009-12-11T03:26:24.823 回答
3

我会调查LingPipe。看看这个演示。顺便说一句,您正在尝试做的事情称为“命名实体识别”。这是一个很难解决的 CS 问题。

于 2009-12-09T18:20:33.623 回答
2

虽然我们正在等待有关您正在做什么的详细信息,但这里有几个指向常见名字列表的链接,至少在美国人口统计中:

我认为您将需要这些(和/或更多)来检查,因为您的任务听起来不像 NLP 可以在没有参考信息的情况下为您做的事情。

于 2009-12-09T18:21:54.900 回答
1

您可以在此处查看从自由文本中提取人物http://code.google.com/p/graph-expression/wiki/Examples

于 2011-05-20T05:24:24.200 回答
1

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/

于 2014-01-29T14:21:17.867 回答
1

OpenNlp 在他们的 NER 模型中有一个人类型。从 opennlp 网站下载项目和模型,并从模型网站获取模型(Opennlp 页面上有链接)。然后去这里,http://www.asksunny.com/drupal/? q=node/ 4 这是如何加载模型和执行 NER 的一个很好的例子。NER 从来都不是完美的,所以不要失望。

于 2011-09-14T02:27:56.697 回答
0

您还可以从语义的角度看更有趣的OpenCyc和 WordNet 项目。

于 2009-12-10T17:15:34.940 回答
0

试试斯坦福 NER,一个文本处理库

http://nlp.stanford.edu:8080/ner/

于 2014-07-18T05:07:34.087 回答
0

这个问题在自然语言处理中的命名实体识别中得到了解决,目前它被认为是一个有点困难的问题。但是,您可以使用许多工具。我为此使用了 stanford NER,它是一个很好的软件。

于 2012-07-20T10:52:29.093 回答
0

OpenCalais 服务可能有用。试试他们的提交工具:http ://www.opencalais.com/documentation/calais-submission-tool

该工具可识别的不仅仅是人名。

于 2014-02-08T00:53:57.993 回答