比较Stanford coreNLP,SpaCy和Google Cloud的NER库

时间:2018-11-22 12:06:20

标签: nlp stanford-nlp spacy ner google-natural-language

我想从文本中识别的名字。但是我感到困惑,我必须为NER使用哪个NLP库。我发现了针对NER的最佳NLP库 1.斯坦福大学核心自然语言处理 2.空间 3. Google云。

我无法找出哪个库会给出更准确的结果和更好的性能。请在这里帮助我。

2 个答案:

答案 0 :(得分:3)

spaCy在NLP方面具有行业优势,而在NER方面则明显更快,更准确。它还与多语言模型捆绑在一起。选中spaCy

AllenNLP还配备了最新的NER模型,但使用起来有些复杂。选中AllenNLP demo

如果不是问题所在,那么我建议使用Google的Cloud Natural Language(当然,它更快更准确)。

我个人使用过spaCy和AllenNLP。我想说的是,如果您只是想开始使用spaCy。

希望这会有所帮助。

答案 1 :(得分:1)

您的问题是询问哪个库将提供最准确的结果,而又不需要太多的计算能力。自然语言处理(NLP)领域正在迅速变化。为了说明这一点,我们可以看看命名实体识别(NER)的最新技术(SOTA)。 This Github页面为CONLL03 NER数据集提供了不错的摘要,由于易于记忆,我将在此处复制并使用公司名称:

  1. Zalando。 F1得分:0.931日期:2018年6月24日
  2. Google。 F1得分:0.928日期:2018年10月31日
  3. Stanford / Google Brain。 F1得分:0.926。日期:2018年9月22日

基于此列表,我们观察到每隔几个月就会获得新的SOTA。因此,“最准确的系统(库)”也必须每几个月更新一次。数据的性能不仅取决于系统,还取决于以下内容:

  • 使用的算法。。可能是Google已发布SOTA研究,但尚未实施。确定这一点的唯一方法是不断测试所有系统。
  • 训练数据大小。尽管越大越好,但是某些算法可以更好地处理少数示例(少拍学习)。
  • 域。一种算法可能更适合于处理正式的政府文本,而不是不太正式的Wikipedia文本。
  • 数据语言。。由于大多数研究都集中于在公共数据集上显示SOTA,因此它们通常针对英语进行了优化。它们在其他语言上的表现可能会有所不同。

TL; DR :只需选择一个对您来说易于实施且具有合理准确性的系统。基于准确性选择系统并非易事,并且需要经常切换系统。