赞
踩
编者注:文中超链接如果不能访问可以点击“阅读原文”访问本文原页面;可以参考2018年5月21-24日伦敦Strata数据会议上的教学辅导课《使用spaCy和Spark NLP进行自然语言理解》。
这是本系列博客的第三篇,也是最后一篇。这个系列之前的博客比较了两个主要的开源自然语言处理软件库:John Snow Labs的Apache Spark-NLP和Explosion AI的spaCy。在前两篇中,我带着读者一起过了一下训练分词和POS模型的代码,然后在一个基准数据集上运行了这些代码,并评估了一下结果。在这一篇中,我会比较这两个库在其他基准测试上的准确性和性能,同时也会给出这两个库在哪些应用场景里比较适合的建议。
以下是本系列的第一篇中训练的模型的准确性比较。
图1 模型的准确性比较。图片由Saif Addin Ellafi提供
spaCy的预先训练模型在预测英语文本中的词性标记(POS)方面做得很好。如果你的文本是标准的、基于新闻或文章的文本(例如,不是像法律文件、财务报告或医疗记录这样的专业领域的文本),并且是spaCy支持的七种语言之一写成的,用spaCy的预先训练的模式是一个很好的方法。需要注意的是,我的预先训练的模型里包括我自定义的分词器,否则精度(特别是分词的匹配率)将下降(参见图2)。
spaCy自带的预训练模型和Spark-NLP在使用相同训练数据时的表现相似,准确率都在84%左右。
对spaCy的准确性的主要影响似乎不是来自于训练数据,而是来自于其英语vocab的内容。Spark-NLP对语言没有任何的依赖(它是完全语言不可知的),而且只从管道里的标注器中学习。这意味着相同的代码和算法,在训练另外一种语言的数据时,不用改变。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。