自然语言处理(NLP),为所有聊天机器人,语音助理,预测文本以及其他渗透到我们生活中的语音/文本应用提供支持的技术,在过去几年中已经有了长足的发展。本文为大家推荐一些开源NLP工具,帮助大家规划基于语音或文本的应用程序。
一、Python工具
1. 自然语言工具包(NLTK)
自然语言工具包(NLTK)是功能的工具。它几乎实现了你需要的任何NLP组件,如分类,标记化,解析和语义推理。并且每种方法通常都有多个实现,因此你可以选择想要使用的确切算法或方法。它还支持多种语言。但是它以字符串的形式表示所有数据,这对于简单的架构很好,但是很难使用某些高级功能。与其他工具相比,它的发展点慢。总的来说,这是一个很好的工具包,适用于需要特定算法组合的实验,探索和应用程序。
2. SpaCy
SpaCy是NLTK的主要竞争对手。在大多数情况下它速度更快,但每个NLP组件只有一个实现。此外,它将所有内容表示为对象而不是字符串,这简化了构建应用程序的界面。这也有助于它与许多其他框架和数据科学工具集成,因此你可以在更好地理解文本数据后执行更多操作。但是,SpaCy不支持与NLTK一样多的语言。它确实有一个简单的界面,一组简化的选择和的文档,以及语言处理和分析的各种组件的多个神经模型。总的来说,对于需要在生产中具有高性能并且不需要特定算法的新应用程序来说,这是一个很好的工具。
3. TextBlob
TextBlob是NLTK的扩展。可以通过TextBlob以简化方式访问许多NLTK函数,TextBlob还包含Pattern库中的功能。如果你刚刚开始,这可能是学习时使用的好工具,它可以在生产中用于不需要过度执行的应用程序。总的来说,TextBlob在所有地方都使用,非常适合小型项目。
4. Textacy
Textacy也是一个很棒的工具。它使用SpaCy作为其核心NLP功能,但它处理了处理前后的大量工作。如果你打算使用SpaCy,也可以使用Textacy,这样就可以轻松地引入许多类型的数据,而无需编写额外的帮助代码。
5. PyTorch-NLP
PyTorch-NLP已经推出了一段时间了,但它已经有了一个庞大的社区。它是快速原型制作的工具。它也经常通过研究进行更新,公司和研究人员已经发布了许多其他工具来进行各种惊人的处理,例如图像变换。总体而言,PyTorch针对的是研究人员,但它也可以用于原型和初始生产工作负载,并提供的算法。在它之上创建的库也可能值得研究。