最流行的6大开源自然语言处理库对比

编译自:https://www.kdnuggets.com/2018/07/comparison-top-6-python-nlp-libraries.html

如今,自然语言处理(NLP)变得越来越流行,在深度学习的背景下变得更加引人注目。NLP是人工智能的其中一个领域,旨在从文本中理解和提取重要信息,并基于文本数据进行进一步训练。NLP的主要任务包括语音识别和生成,文本分析,情感分析,机器翻译等

在过去的几十年里,只有受过一定语言教育的专家才能从事自然语言处理的工作。除了数学和机器学习,他们还应该熟悉一些关键的语言概念。现在,我们可以使用已编写的NLP库。它们的主要目的是简化文本预处理,让我们可以专注于构建机器学习模型和超参数微调。

有许多工具和库可以解决NLP问题。今天,我们将根据我们的经验概述,对6个流行热门的自然语言处理库进行比较

总体概述

NLTK(自然语言工具包)用于诸如标记化、词形还原、词干提取、解析、POS标记等任务。该库具备可用于几乎所有 NLP 任务的工具。

● spaCy 是 NLTK 的主要竞争者。这两个库可用于相同的任务。

● scikit-learn 为机器学习提供了一个大型库,还提供了用于文本预处理的工具。

● gensim 是一个相当专业的主题模型Python工具包,用于话题空间建模、向量空间建模。

● Pattern 库是作为 web 挖掘模块提供服务的,因此它支持 NLP 任务。

● polyglot 是另一个 NLP 的 Python 包。它不是很流行,但也可以用于各种 NLP 任务。

下面我们举几个开源库的优缺点比较下:

NLTK的优点:

● 最知名和完整的NLP图书馆

● 许多第三方扩展

● 每个NLP任务都有很多方法

● 快速标记的句子

● 与其他库相比,支持的语言数量最多

缺点

● 学习和使用起来很复杂

● 非常慢

● 在句法符号化中,NLTK只对句子进行拆分,没有对语义结构进行分析

● 处理字符串,这对面向对象语言python来说不是很典型

● 不提供神经网络模型

● 没有集成词向量

spaCy 优点

● 最快的nlp框架

● 易于学习和使用,因为它有一个高度优化的工具为每个任务

● 相比其他库,更多的面向对象

● 使用神经网络训练一些模型

● 提供内置的词向量

● 积极支持和发展

缺点

● 与NLTKSentence标记化相比,缺乏灵活性,比NLTK更慢

● 不支持多种语言

● 仅适用于7种语言和“多语言”模型

结论

在本文中,我们比较了几个流行的NLP库的一些功能。虽然它们中大多数的功能会有重叠,但同样也都具备独特的方法来解决相应问题的特性,当然,如今最受欢迎的NLP软件包是NLTK和Spacy。他们是NLP领域的主要竞争对手。在我们看来,它们之间的区别在于解决问题的一般哲学。

NLTK更具学术性。你可以使用它来尝试不同的方法和算法,将它们组合起来等等。相反,Spacy为每个问题提供了一个开箱即用的解决方案。你不必考虑哪种方法更好:Spacy的作者已经解决了这个问题。此外,Spacy速度非常快(比NLTK快几倍),但有一个缺点是Spacy支持的语言数量有限,不过好在如今支持的语言数量也一直在增加。所以,我们认为Spacy在大多数情况下都是最佳选择,但如果你想尝试一些特别的东西,你可以使用NLTK。

虽然这两个库都非常流行,但依然有很多其他不同的选择,选择使用哪个 NLP 包取决于你要解决的问题类型。

●编号651,输入编号直达本文

●输入m获取文章目录

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180814B0K4LI00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券