6个顶级Python NLP库的比较!算法
http://blog.itpub.net/31509949/viewspace-2212320/机器学习
天然语言处理(NLP)现在愈来愈流行,在深度学习开发的背景下变得尤其引人注目。在人工智能领域中,天然语言处理(NLP)从文本中理解和提取重要信息,并基于文本数据进行进一步的数据训练,其主要任务包括语音识别和生成、文本分析、情感分析、机器翻译等。工具
在过去的几十年中,只有那些精通语言教育的专家才能从事天然语言处理。除了具备数学和机器学习知识之外,他们还精通一些关键的语言概念。而如今,咱们可使用已编译好的天然语言处理(NLP)库。它们的主要目的是简化文本预处理,使咱们能够专一于构建机器学习模型和超参数微调。学习
有许多工具和库能够解决天然语言处理(NLP)问题。咱们如今但愿根据经验,对用户最受欢迎和最有帮助的天然语言处理库进行概述和比较。用户应该了解咱们介绍的全部工具和库只有部分重叠的任务。因此,有时很难对它们直接进行比较。咱们将介绍一些功能,并对人们可能经常使用的天然语言处理(NLP)库进行比较。人工智能
整体概述spa
·NLTK(Python天然语言工具包)用于诸如标记化、词形还原、词干化、解析、POS标注等任务。该库具备几乎全部NLP任务的工具。.net
·Spacy是NLTK的主要竞争对手。这两个库可用于相同的任务。翻译
·Scikit-learn为机器学习提供了一个大型库。此外还提供了用于文本预处理的工具。blog
·Gensim是一个主题和向量空间建模、文档集合类似性的工具包。ci
·Pattern库的通常任务是充当Web挖掘模块。所以,它仅支持天然语言处理(NLP)做为辅助任务。
·Polyglot是天然语言处理(NLP)的另外一个Python工具包。它不是很受欢迎,但也能够用于各类NLP任务。
为了让比较更加直观,如下列出展现各个NLP库优缺点的表格:
结论
在文中,咱们比较了几个流行的天然语言处理库的一些功能。虽然它们中的大多数都提供了重叠任务的工具,但有一些可使用独特的方法来解决具体的问题。固然,目前NLP库中最受欢迎的软件包是NLTK和Spacy。他们在NLP领域是主要竞争对手。在咱们看来,它们之间的区别在于解决问题的方法不一样。
NLTK更具学术性。用户可使用它来尝试不一样的方法和算法,将它们组合起来。
相反,Spacy为每一个问题提供了一个开箱即用的解决方案。用户没必要考虑哪一种方法更好:Spacy的编写者已经解决了这个问题。此外,Spacy的执行速度很是快(比NLTK快几倍)。但Spacy的一个缺点是所支持的语言数量有限。但其支持的语言数量将会一直增长。
因此,咱们认为Spacy在大多数状况下是用户的最佳选择,但若是用户想尝试一些特别的东西,可使用NLTK。
尽管这两个库很受欢迎,但还有许多不一样的选项,NLP工具包的选择取决于用户必须解决的具体问题。