我有一些输入文本,其中包含一个或多个人类的人的名字。我没有任何这些名字的字典。哪个Java库可以帮助我从输入文本中定义名称? 我翻看OpenNLP,但没有找到任何示例或指南或至少描述如何将它应用到我的代码。 (我看到的javadoc,但它是这样一个项目文档相当差。)如何定义文本人的姓名(JAVA)
我想找到一些随机的文字名称。如果输入的文字是“我的朋友乔·史密斯去商店”,那么我想得到“乔·史密斯”。我认为在智能引擎上应该有足够大的字典,以小字典为基础,可以理解人名。
我有一些输入文本,其中包含一个或多个人类的人的名字。我没有任何这些名字的字典。哪个Java库可以帮助我从输入文本中定义名称? 我翻看OpenNLP,但没有找到任何示例或指南或至少描述如何将它应用到我的代码。 (我看到的javadoc,但它是这样一个项目文档相当差。)如何定义文本人的姓名(JAVA)
我想找到一些随机的文字名称。如果输入的文字是“我的朋友乔·史密斯去商店”,那么我想得到“乔·史密斯”。我认为在智能引擎上应该有足够大的字典,以小字典为基础,可以理解人名。
我会考虑LingPipe。检查出this demo。顺便说一句,你正在尝试做什么叫做“named entity recognition”。正确的解决问题是一个困难的CS问题。
虽然我们等待的详细信息,你在做什么,这里有几个环节共同的名字,名单在美国的人口至少包括:
我想你会需要这些(和/或更多)来检查,因为你的任务听起来不像NLP可以为你做的事情,没有参考信息。
您也可以通过OpenCyc和共发现项目看起来从语义的角度来看更有趣。
OpenNLP已命名实体识别。查看文档中的部分English Name Finding。但是我的经验表明,它可以识别实体,但没有与之关联的标签。 (准确地说,我发现标签不明确地分配。)因此,如果您有“我的朋友乔史密斯前往沃尔玛商店”这句话,OpenNLP会标识两个已命名的实体 - “Joe Smith”和“Walmart”。我无法将“Joe Smith”标记为Person,将“Walmart”标记为Organization。
正如Matt建议的那样,您可以尝试LingPipe,尽管它是一种商业工具。一些开源替代品是MorphAdorner和Stanford NER。
OpenNlp检查人提取在其NER模型的人的类型。从opennlp网站下载项目和模型,并从模型网站获取模型(Opennlp页面上有链接)。然后去这里,http://www.asksunny.com/drupal/?q=node/4这是一个如何加载模型和执行NER的好例子。 NER从来都不是完美的,所以不要失望。
该问题在自然语言处理中的命名实体识别中得到解决,并且此时它被认为是有点难的问题。不过,您可以使用许多工具。我已经使用斯坦福NER这是一个很好的软件。
我将使用斯坦福命名实体识别器(NER)建议你。斯坦福大学NER提供了许多分类器。斯坦福NER提供的分类器中的一个可以从给定的文本中识别名称,位置和组织。
您可以在这个环节 http://nlp.stanford.edu:8080/ner/
OpenCalais服务可能是有用的发现斯坦福NER的在线演示。他们尝试提交工具在:http://www.opencalais.com/documentation/calais-submission-tool
该工具能够识别不仅仅是人名等等。
尝试斯坦福NER,文本处理库
你们是不是要确定,例如,它出现在一个句子中的名字吗?即,由于“我的朋友乔去商店。”你想要“乔”? – Seth 2009-12-09 18:17:32
请澄清你的问题!你不能“定义”的名字,他们在历史上创造。例如,“朱利叶斯”是一个罗马的名字。如何文本看,什么样的处理是你用它做什么? – 2009-12-09 18:18:22
我觉得作者想使用一个Java库,可能使用OpenNLP非结构化文本中提取的人的名字,但他不能找到如何实现这样的例子还是不错的文档。 – DrDee 2009-12-09 18:21:52