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