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