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

自然语言处理NLP)在越来越多的AI应用程序中至关重要。如果您正在构建聊天机器人,搜索专利数据库,将患者与临床试验相匹配,对客户服务或销售电话进行评级,从财务报告中提取事实,必须从自由文本中提取准确信息。在开发和生产中,最受欢迎的 NLP 库列表如下:

显然,NLP 领域还有更多的库。但是,这些库更通用,涵盖更多功能,而不只是专注于特定用例。例如,gensim 是一个 NLP 库,一开始是为构建文本主题模型而创建的,不能用于完整的 NLP 管道。此前,Maziyar Panahi 和 David Talby 提供了一个选择开源 NLP 库的备忘单。在本文的分析中,我们只考虑提供如下核心功能集合的库:

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

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

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

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

传统 NLP 与深度学习 NLP 对比
传统 NLP 与深度学习 NLP 对比

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

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