我的工作是计划使用UIMA集群来运行文档以提取命名实体,而不是。据我了解,UIMA的NLP组件很少包装。我现在已经测试了GATE一段时间了,并且相当舒服。它在正常文本上运行正常,但是当我们通过一些有代表性的测试数据运行它时,精度会下降。我们内部的文本数据有时是全部大写,有时全是小写,或者是同一文档中两者的混合。即使使用ANNIE的全部大写规则,准确性仍然有很多不足之处。我最近听说过Stanford NLP和OpenNLP,但没有时间对它们进行广泛的训练和测试。这两者在准确性方面与ANNIE相比如何?他们是否像GATE那样与UIMA合作?
提前致谢。
答案 0 :(得分:21)
对这些系统的性能进行一般估计是不可能/不合理的。正如您所说,在您的测试数据上,准确性会下降。这有几个原因,一个是文档的语言特征,另一个是您期望看到的注释的特征。 Afaik对于每个NER任务都有类似但仍然不同的注释指南。
说到你的问题:
ANNIE是我能找到的唯一一个基于Java的免费开源规则NER系统。它是为新闻文章而写的,我猜这是为了完成MUC 6任务。它有利于概念的证明,但有点过时了。主要的优点是你可以在没有任何机器学习知识的情况下开始改进它,nlp,也许是一点点java。只要研究JAPE并试一试。
OpenNLP,斯坦福NLP等默认情况下都是新闻文章的模型和表演(只是看结果,从未在大型语料库上测试过)比ANNIE更好。我比OpenNLP更喜欢斯坦福解析器,再次只看文档,主要是新闻文章。
不知道你的文件是什么样的,我真的不能说更多。您应该决定您的数据是否适合规则,或者您使用机器学习方式并使用OpenNLP或Stanford解析器或Illinois tagger或其他任何内容。斯坦福解析器似乎更适合于倾注数据,训练和生成结果,而OpenNLP似乎更适合尝试不同的算法,玩参数等。
对于您对UIMA争议的GATE,我尝试了两者,并为GATE找到了更多的病毒社区和更好的文档。很抱歉发表个人意见:)
答案 1 :(得分:5)
仅仅是为了回答UIMA角度的记录:对于Stanford NLP和OpenNLP,通过DKPro Core project可以获得优秀的UIMA分析引擎包装。
答案 2 :(得分:3)
我想补充一点。 UIMA和GATE是用于创建自然语言处理(NLP)应用程序的两个框架。但是,名称实体识别(NER)是一个基本的NLP组件,您可以找到NER的实现,独立于UIMA和GATE。好消息是你通常可以在UIMA和GATE中找到适合NER的包装器。为了说清楚,请看这个例子:
斯坦福NER组件也是如此。
回到你的问题,这个网站列出了最先进的NER: http://www.aclweb.org/aclwiki/index.php?title=Named_Entity_Recognition_(State_of_the_art)
例如,在MUC-7竞赛中,名为LTG的最佳参与者得到的结果的准确率为93.39%。
http://www.aclweb.org/aclwiki/index.php?title=MUC-7_(State_of_the_art)
请注意,如果您想使用此类实施状态,则可能会对其许可证产生一些问题。