自然语言处理 (NLP) 是一种技术向导,是数据科学的一部分, 它教计算机理解人类语言。 它涉及分析数据以提取有意义的见解。 在其众多用途中,主要用途包括文本挖掘、文本分类、 文本和情感分析以及语音生成和识别。
今天,我们探索七个顶级 Python NLP 库。 使用这些库将使人们能够构建端到端的 NLP 解决方案 —从获取模型数据到呈现结果。 此外,还将了解相关概念, 例如标记化、词干提取、语义推理等。
自然语言工具包 (NLTK) 自然语言工具包或 NLTK 是构建 Python 程序最流行的平台之一。 它提供了一套开源 Python 模块、教程和数据集, 以支持 NLP 的研究和开发。超过 50 个语料库和 词汇资源是 NLTK 接口的接收者。这些包括:
它适用于各类程序员,学生、教育工作者、工程师、 研究人员和行业专业人士。NLTK 可在 Python 3.6 及更高版本中访问,并且适用于 Windows、Mac OS X 和 Linux。
在此处阅读有关 NLTK 的兼容性和功能的更多信息。
spaCy 是为 Python 和 Cython 中的高级 NLP 构建的。 该商业开源软件在 MIT 许可下发布,支持 PyTorch 和 TensorFlow 中的自定义模型。
spaCy 支持 60 多种语言,并针对不同的语言和任务训练了管道。 其功能包括以下组件:
正如 spaCy 背后的团队自己所说的那样,它创造了一个很棒的生态系统。 在此处阅读有关其快速执行功能的更多信息。
用于 NLP 的 PyNPl Python 库包含用于标准和不太常见的 NLP 任务的模块。它的用例范围从基本功能(如提取 n-gram 和频率列表)到构建简单的语言模型。此外, PyNPl 附带了一个用于处理 FoLiA XML 的完整库。 适用于 Python 2.7 和 Python 3。在此处查找有关常用函数、 数据类型、实验、格式、语言模型、搜索算法等的深入信息。
虽然 CoreNLP 是用 Java 编写的,但它为 Python 提供了 一个编程接口。 它使用户能够为文本导出语言注释—包括标记、 句子边界、名称实体、数字和时间值、词性、共指、情感和引用属性。
它整合了Stanford的 NLP 工具,包括:
它的功能包括情感分析、解析、n-gram 和 WordNet 集成等。 Stanford CoreNLP 适用于 macOS、Windows 和 Linux。
支持六种语言,是Java自然语言处理的一站式目的地。 在此处阅读有关其功能的更多信息。
由于其出色的文档,Scikit-learn 是数据科学家常用的开源 NLP 库。 此外,Scikit-learn 提供直观的类方法并提供多种算法 来构建机器学习模型。但是, Scikit-learn 不提供用于文本处理的神经网络。
最新版本 Scikit-learn 1.0 需要 Python 3.7 或更高版本。 要深入了解其内置、可访问性和上下文使用,请在此处阅读更多内容。
多用途的开源库,Pattern 可用于多种不同的任务—网络分析、 文本处理、机器学习、数据挖掘和 NLP。 在 Pattern 库中, parse 方法负责标记和 POS 标记的功能。
模式因其简单明了的语法而深受学生欢迎。此外,它易于理解, 适合需要处理文本数据的 Web 开发人员使用。
Textblob 由 NLTK 提供支持,是 Python(Python 2 和 3) 中的开源 NLP 库。 它提供了用于词性标注、名词短语提取、 情感分析、分类和翻译的 API。此外,它的对象在 Python 中可以被视为字符串,并且可以在 NLP 中进行训练。
由于其轻量级的特性,许多数据科学家使用 Textblob 进行原型设计。 在此处阅读有关 WordNet 集成、通过扩展添加、频率等功能的更多信息。
虽然这些库中的大多数似乎执行类似的自然语言处理任务, 但功能、方法和应用程序彼此独特。 NLP 库的选择本质上取决于手头的问题。