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

2018 年 8 月 14 日 大数据技术

开源最前线(ID:OpenSourceTop) 猿妹 编译

编译自: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获取文章目录

登录查看更多
8

相关内容

NLP:自然语言处理
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
126+阅读 · 2020年3月15日
NLP基础任务:文本分类近年发展汇总,68页超详细解析
专知会员服务
57+阅读 · 2020年1月3日
学习自然语言处理路线图
专知会员服务
132+阅读 · 2019年9月24日
如何使用自然语言工具包(NLTK)在Python3中执行情感分析
Python程序员
18+阅读 · 2019年10月28日
了解情感分析中的NLP技术么?
七月在线实验室
9+阅读 · 2019年4月12日
深度学习开发必备开源框架
九章算法
12+阅读 · 2018年5月30日
教你用Python进行自然语言处理(附代码)
数据派THU
6+阅读 · 2018年3月28日
Python 开源项目 Top30 | 值得收藏
人工智能头条
8+阅读 · 2018年1月19日
28 款 GitHub 最流行的开源机器学习项目(附地址)
七月在线实验室
4+阅读 · 2017年12月18日
2017深度学习NLP进展与趋势
云栖社区
7+阅读 · 2017年12月17日
深度文本匹配开源工具(MatchZoo)
中国科学院网络数据重点实验室
7+阅读 · 2017年12月5日
在深度学习TensorFlow 框架上使用 LSTM 进行情感分析
北京思腾合力科技有限公司
4+阅读 · 2017年8月9日
Arxiv
29+阅读 · 2020年3月16日
Arxiv
5+阅读 · 2019年9月25日
Embedding Logical Queries on Knowledge Graphs
Arxiv
3+阅读 · 2019年2月19日
Arxiv
21+阅读 · 2018年8月30日
Arxiv
15+阅读 · 2018年6月23日
Arxiv
3+阅读 · 2018年2月22日
VIP会员
相关资讯
如何使用自然语言工具包(NLTK)在Python3中执行情感分析
Python程序员
18+阅读 · 2019年10月28日
了解情感分析中的NLP技术么?
七月在线实验室
9+阅读 · 2019年4月12日
深度学习开发必备开源框架
九章算法
12+阅读 · 2018年5月30日
教你用Python进行自然语言处理(附代码)
数据派THU
6+阅读 · 2018年3月28日
Python 开源项目 Top30 | 值得收藏
人工智能头条
8+阅读 · 2018年1月19日
28 款 GitHub 最流行的开源机器学习项目(附地址)
七月在线实验室
4+阅读 · 2017年12月18日
2017深度学习NLP进展与趋势
云栖社区
7+阅读 · 2017年12月17日
深度文本匹配开源工具(MatchZoo)
中国科学院网络数据重点实验室
7+阅读 · 2017年12月5日
在深度学习TensorFlow 框架上使用 LSTM 进行情感分析
北京思腾合力科技有限公司
4+阅读 · 2017年8月9日
相关论文
Top
微信扫码咨询专知VIP会员