准确度:ANNIE vs Stanford NLP vs UIMA中的OpenNLP

17

我的工作计划使用UIMA集群来运行文档,以提取命名实体等信息。据我所知,UIMA自带的NLP组件非常少。我已经测试了一段时间的GATE,并且对其比较熟悉。它在普通文本上表现得还不错,但是当我们将其运用到一些代表性测试数据中时,准确率会大幅下降。我们内部的文本数据有时全部是大写字母,有时全部是小写字母,或者在同一份文档中混合使用两种情况。即使使用ANNIE的全大写规则,准确率仍然不尽如人意。我最近听说过Stanford NLP和OpenNLP,但还没有时间进行广泛的训练和测试。这两个软件在准确度方面与ANNIE相比如何?它们能像GATE那样与UIMA一起使用吗?

提前感谢。


1
ANNIE是基于规则的。我猜想Stanford NLP和OpenNLP应该表现更好,因为它们是基于机器学习的。 - Kenston Choi
3个回答

21

针对这些系统的性能,不可能或不合理给出普遍估计。就你所说的,在你的测试数据上准确度下降,原因有多个,其中一个是你的文档语言特征,另一个是你期望看到的注释特征。据我所知,每个命名实体识别任务都有类似但仍然不同的注释指南。

话虽如此,回答你的问题:

ANNIE是我在Java中找到的唯一免费开源基于规则的命名实体识别系统。它是为新闻文章编写的,我猜它是针对MUC 6任务进行调整的。它适用于概念验证,但已经有点过时了。主要优点是你可以在不需要任何机器学习、自然语言处理,甚至只需要一点Java的情况下开始改进它。只需学习JAPE并尝试一下。

OpenNLP、Stanford NLP等默认带有新闻文章模型,表现(只看结果,从未在大语料库上测试过)比ANNIE好。我更喜欢Stanford解析器,而不是OpenNLP,再次只看文档,主要是新闻文章。

如果不知道你的文档长什么样子,我真的无法再多说什么。你应该决定你的数据是否适合规则,或者你走机器学习的路线,使用OpenNLP、Stanford解析器或伊利诺伊标记器或任何其他工具。Stanford解析器似乎更适合只注重数据输入、训练和生成结果,而OpenNLP似乎更适合尝试不同的算法、调整参数等。

关于你在GATE和UIMA之间的争论,我两者都尝试过,在GATE中找到了更多的社区资源和更好的文档。抱歉给出个人意见 :)


5

只是为了记录,回答有关UIMA的问题:对于Stanford NLP和OpenNLP,都有优秀的打包作为UIMA分析引擎,可通过DKPro Core项目获得。


3
我希望添加一条注释。UIMA和GATE是用于创建自然语言处理(NLP)应用程序的两个框架。然而,命名实体识别(NER)是一个基本的NLP组件,您可以找到独立于UIMA和GATE的NER实现。好消息是,通常可以在UIMA和GATE中找到一个良好的NER包装器。为了清晰起见,让我们看这个例子:
- OpenNLP NER - GATE中OpenNLP NER的包装器 - UIMA中OpenNLP NER的包装器 对于Stanford 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)

请注意,如果您想使用这种实现状态,可能会遇到许可证问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接