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

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

内容简介:开源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领域中好运!


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

查看所有标签

猜你喜欢:

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

API Design for C++

API Design for C++

Martin Reddy / Morgan Kaufmann / 2011-2-18 / USD 59.95

The design of application programming interfaces can affect the behavior, capabilities, stability, and ease of use of end-user applications. With this book, you will learn how to design a good API for......一起来看看 《API Design for C++》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换