开源NLP(自然语言处理)库的功能对比

栏目: 编程工具 · 发布时间: 7年前

内容简介:开源NLP库在开发和生产中,最受欢迎的NLP库列表如下:显然,NLP领域还有更多的库。但是,这些库更通用,涵盖更多功能,而不只是专注于特定用例。例如,

开源NLP库

在开发和生产中,最受欢迎的NLP库列表如下:

显然,NLP领域还有更多的库。但是,这些库更通用,涵盖更多功能,而不只是专注于特定用例。例如, gensim 是一个NLP库,一开始是为构建文本主题模型而创建的,不能用于完整的NLP管道。

在本文的分析中,我们只考虑提供如下核心功能集合的库:

  • 句子检测
  • 单字/单词的细粒度单位化
  • 词干提取
  • 语法标记
  • 词性(POS)
  • 命名实体识别(NER)
  • 依赖分析器
  • 训练特定域的语言模型

以及,提供以下的部分或全部功能:

  • 文本匹配
  • 日期匹配
  • 文本分块
  • 拼写检查
  • 情绪检测
  • 很多其他功能!

这里比较的所有五个库都有一些可以定义的NLP数据管线的概念 – 因为大多数NLP任务需要组合这些功能中的某些,来获得有用的结果。这些管线,可以是“传统”的管线,也可以是基于深度学习的管线。

开源NLP(自然语言处理)库的功能对比

图片来源:<a href="http://http://blog.aylien.com/leveraging-deep-learning-for-multilingual/">Parsa Ghaffari</a>

这是最受欢迎的NLP库的功能比较:

名称 SparkNLP NLTK SpaCy CoreNLP
句子检测 是 是 是 是
细粒度单位化 是 是 是 是
词干提取 是 是 是 是
语法 是 是 是 是
磁性标注 是 是 是 是
命名实体识别 是 是 是 是
依赖分析 是 是 是 是
文本匹配 是 否 否 是
日期匹配 是 否 否 是
段落分解 是 是 是 是
拼写检查 是 否 否 否
情绪检测 是 否 否 是
预训练模型 是 是 是 是
训练模型 是 是 是 是

以下是对现代计算平台和流行编程语言的支持的技术功能比较:

特性 Spark NLP NLTK spaCy CoreNLP OpenNLP
完整支持 JavaAPI 是 否 否 是 是
完整支持 ScalaAPI 是 否 否 否 否
完整支持 PythonAPI 是 是 是 否 否
支持 GPU 训练 是 否 是 否 否
支持用户定义的深度神经网络 是 否 否 否 否
原生支持 Spark 是 否 否 否 否
支持 Hadoop(YARN 以及 HDFS) 是 否 否 否 否

许可证和支持

“开源”在不同地方意味着不同的事情 – 例如,斯坦福大学的CoreNLP需要商业用途的付费许可证,而且该许可证仍然不能提供已定义的SLA的商业支持。希望构建商业级生产级NLP解决方案的团队需要一个不断改进核心库的活跃社区,以及付费企业级支持选项。

以下是各种库在许可和支持方面的对比:

名字 语言 许可证 商业用途 商业支持
SparkNLP Python, Java, Scala Apache 2.0 是 是
spaCy Python MIT 是 是
NLTK Python Apache 2.0 是 否
CoreNLP Java GNU GPL 付费许可 否
OpenNLP Java Apache 2.0 是 否

斯坦福大学出售CoreNLP的商业许可证,这是商业用途所必需的。为spaCy提供商业许可证和支持的 explosion.ai 同样也为快速标注迭代工具 prodigy 、机器学习库thinc提供许可证。John Snow Labs提供 企业级Spark NLP服务 ,包括基本版,24×7级别的支持,以及诸如命名实体解析,断言状态检测、ID脱敏等高级功能。它还为提供 医疗领域专用的Spark NLP ,其中包括一套针对生物医学NLP的最先进的模型和数据集。

预训练模型

虽然大多数NLP库支持用户训练新模型,但NLP库具有现有的预训练的高质量模型这一点非常重要。

不过,大多数NLP库仅支持通用的预训练模型(POS,NER等)。由于其许可证的要求,某些库根据模型授权状态,不允许将预训练模型作商业用途。

名称 通用预训练模型 领域特定预训练模型 许可证是否允许商用
SparkNLP 有 有(医疗领域) 有(通用)
spaCy 有 无 有(某些GPL许可)
NLTK 有 无 有
CoreNLP 有 无 无
OpenNLP 有 无 有

以下是与每个库一起打包的通用预训练模型:

名称 语法化 词性标注 命名实体识别 依赖关系解析 拼写检查 情感分析
SparkNLP 有 有 有 有 有 有
spaCy 有 有 有 有 无 无
NLTK 有 有 有 有 无 无
CoreNLP 有 有 有 有 无 有
OpenNLP 有 有 有 有 无 无

结论

并非所有开源NLP库都提供相同的功能。鉴于您的编程语言,平台,许可和支持需求,并非所有 工具 都可用于您的项目。本文为缩小您选择范围,构建了一张快速查询的备忘单。如果您了解某些新库、新版本并希望我们对此清单保持更新,请联系我们,帮助我们及时了解最新信息。

除了比较工具的功能之外,您的下一个标准应该是比较 准确性、速度和可扩展性 。祝您在NLP领域中好运!


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

浅薄

浅薄

[美] 尼古拉斯·卡尔 / 刘纯毅 / 中信出版社 / 2010-12 / 42.00元

《浅薄:互联网如何毒化了我们的大脑》在我们跟计算机越来越密不可分的过程中,我们越来越多的人生体验通过电脑屏幕上闪烁摇曳、虚无缥缈的符号完成,最大的危险就是我们即将开始丧失我们的人性,牺牲人之所以区别于机器的本质属性。——尼古拉斯•卡尔“谷歌在把我们变傻吗?”当尼古拉斯•卡尔在发表于《大西洋月刊》上赫赫有名的那篇封面文章中提出这个问题的时候,他就开启了人们热切渴望的期盼源泉,让人急于弄清楚互联网是在......一起来看看 《浅薄》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具