共计 3608 个字符,预计需要花费 10 分钟才能阅读完成。
在本文中,我列出了当今最罕用的 NLP 库,并对其进行简要阐明。它们在不同的用例中都有特定的劣势和劣势,因而它们都能够作为专门从事 NLP 的优良数据科学家备选计划。每个库的形容都是从它们的 GitHub 中提取的。
NLP 库
以下是顶级库的列表,排序形式是在 GitHub 上的星数倒序。
1、Hugging Face Transformers
57.1k GitHub stars.
Transformers 提供了数千个预训练模型来执行不同模式的工作,例如文本、视觉和音频。这些模型可利用于文本(文本分类、信息提取、问答、摘要、翻译、文本生成,反对超过 100 种语言)、图像(图像分类、对象检测和宰割)和音频(语音辨认和音频分类)。Transformer 模型还能够联合多种模式执行工作,例如表格问答、OCR、从扫描文档中提取信息、视频分类和视觉问答。
2、spaCy
22.2k GitHub stars.spaCy 是 Python 和 Cython 中用于自然语言解决的收费开源库。它从一开始就设计用于生产环境。spaCy 带有预训练的管道,目前反对 60 多种语言的标记化和训练。它具备最先进的神经网络模型,能够用于标记、解析、命名实体辨认、文本分类、并且应用 BERT 等预训练 Transformers 进行多任务学习,能够对模型进行 打包、部署和工作,不便生产环境的部署。spaCy 是商业开源软件,在 MIT 许可下公布。
3、Fairseq
15.1k GitHub stars.
Fairseq 是一个序列建模工具包,容许钻研人员和开发人员为翻译、摘要、语言建模和其余文本生成工作训练自定义模型。它提供了各种序列建模论文的参考实现。
4、Gensim
12.8k GitHub stars.
Gensim 是一个 Python 库,用于主题建模、文档索引和大型语料库的相似性检索。指标受众是 NLP 和信息检索 (IR) 社区。Gensim 具备风行算法的高效多核实现,包含但不限于 Latent Semantic Analysis (LSA/LSI/SVD)、Latent Dirichlet Allocation (LDA)、Random Projections (RP)、Hierarchical Dirichlet Process(HDP) 或 word2vec 深度学习等。
5、Flair
11.2k GitHub stars.
Flair 是一个弱小的 NLP 库。Flair 的指标是将最先进的 NLP 模型利用于文本中,例如命名实体辨认 (NER)、词性标注 (PoS)、对生物医学数据的非凡反对、语义消歧和分类。Flair 具备简略的界面,容许应用和组合不同的单词和文档嵌入,包含 Flair 嵌入、BERT 嵌入和 ELMo 嵌入。该框架间接构建在 PyTorch 上,能够轻松地训练本人的模型并应用 Flair 嵌入和类库来试验新办法。
6、AllenNLP
10.8k GitHub stars.
AllenNLP 是基于 PyTorch 构建的 NLP 钻研库,应用开源协定为 Apache 2.0,它蕴含用于在各种语言工作上开发最先进的深度学习模型并提供了宽泛的现有模型实现汇合,这些实现都是依照高标准设计,为进一步钻研奠定了良好的根底。AllenNLP 提供了一种高级配置语言来实现 NLP 中的许多常见办法,例如 transformer、多任务训练、视觉 + 语言工作、公平性和可解释性。这容许纯正通过配置对宽泛的工作进行试验,因而使用者能够专一于解决钻研中的重要问题。
7、NLTK
10.4k GitHub stars.
NLTK — Natural Language Toolkit — 是一套反对自然语言解决钻研和开发的开源 Python 包、数据集和教程的汇合。它为超过 50 个语料库和词汇资源(如 WordNet)提供易于应用的接口,以及一套用于分类、标记化、词干提取、标记、解析和语义推理的文本处理库。
8、CoreNLP
8.3k GitHub stars.
斯坦福 CoreNLP 提供了一组用 Java 编写的自然语言剖析工具。它能够接管原始的人类语言文本输出,并给出单词的根本模式、词性、公司名称、人名等,规范化和解释日期、工夫和数字量,标记句子的构造 在短语或单词依赖方面,并指出哪些名词短语指的是雷同的实体。
9、Pattern
8.1k GitHub stars.
留神:该库曾经 2 年没有更新了
Pattern 是 Python 的 web 的开掘工具包,它蕴含了:网络服务(谷歌、推特、维基百科)、网络爬虫和 HTML DOM 解析器。它有几个自然语言解决模型:词性标注器、n-gram 搜寻、情感剖析和 WordNet。它实现了机器学习模型:向量空间模型、聚类、分类(KNN、SVM、感知器)。模式也可用于网络分析:图形核心性和可视化。
10、TextBlob
8k GitHub stars.
TextBlob 是一个用于解决文本数据的 Python 库。它提供了一个简略的 API,用于深入研究常见的自然语言解决工作,例如词性标注、名词短语提取、情感剖析、分类、翻译等。TextBlob 站在 NLTK 和 Pattern 的根底上制作,并且能够很好地与两者配合应用。
11、Hugging Face Tokenizers
5.2k GitHub stars.
该库提供了当今最罕用的标记器的实现,重点是性能和通用性。
12、Haystack
3.8k GitHub stars.
Haystack 是一个端到端框架,可能为不同的搜寻用例构建功能强大且可用于生产的管道。无论要执行问答还是语义文档搜寻,都能够应用 Haystack 中最先进的 NLP 模型来提供独特的搜寻体验并为用户提供应用自然语言进行查问的性能。Haystack 以模块化形式构建,因而能够联合其余开源我的项目(如 Huggingface 的 Transformers、Elasticsearch 或 Milvus)。
13、Snips NLU
3.6k GitHub stars.
留神:该库曾经 2 年没有更新了
Snips NLU 是一个能够从用自然语言编写的句子中提取结构化信息的 Python 库。每当用户应用自然语言与人工智能交互时,他们的文字都须要被翻译成机器可读的模式(向量)。Snips NLU 的 NLU(自然语言了解)引擎首先检测用户的用意是什么(也就是用意),而后提取查问的参数(称为 slots)。
14、NLP Architect
2.8k GitHub stars.
NLP Architect 是一个用于摸索用于优化自然语言解决和自然语言了解神经网络的最先进的深度学习拓扑和技术的 Python 库。它容许在应用程序中轻松疾速地集成 NLP 模型,并展现优化的模型。
15、PyTorch-NLP
2k GitHub stars.
PyTorch-NLP 扩大了 PyTorch 并提供根本的文本数据处理性能。
16、Polyglot
1.9k GitHub stars.
Polyglot 是一个反对大量多语言应用程序的自然语言管道:标记化(165 种语言)、语言检测(196 种语言)、命名实体辨认(40 种语言)、局部语音标记(16 种语言)、情感剖析(136 种语言)、Word 嵌入(137 种语言)、状态剖析(135 种语言)和音译(69 种语言)。
然而该库的最新更新工夫是 3 年前。
17、TextAttack
1.8k GitHub stars.
TextAttack 是一个用于 NLP 中的对抗性攻打、数据加强和模型训练 的 Python 框架。
18、Word Forms
513 GitHub stars.
Word forms 能够精确地生成一个英语单词的所有可能模式。它能够连贯不同的词性,例如名词与形容词、形容词与副词、名词与动词等。
19、Rosetta
420 GitHub stars.
Rosetta 是一个基于 TensorFlow 的隐衷爱护框架。它集成了支流的隐衷爱护计算技术,包含密码学、联邦学习和可信执行环境。Rosetta 重用了 TensorFlow 的 API,只需极少的代码更改,就能够将传统的 TensorFlow 代码转换为隐衷爱护的形式运行。
必备根底库
这里列出了一些并非特定于 NLP 但依然常常用于 NLP 我的项目的数据迷信库。
20、scikit-learn
48.6k GitHub stars.
Scikit-learn(也称为 sklearn)是 Python 编程语言的免费软件机器学习库。它具备各种分类、回归和聚类算法,包含反对向量机、随机森林、梯度晋升、k-means 和 DBSCAN,是建设在 Python 数值和迷信库 NumPy 和 SciPy 之上的。
21、Pandas
32.4 GitHub stars.
Pandas 是一个提供了操作表格数据的 Python 包。它曾经成为在 Python 中进行理论的、实在的数据分析的根底模块。它能够被称作最弱小、最灵便的开源数据分析 / 操作工具。
https://www.overfit.cn/post/a95c29726cba4e3aa969066fb7c80ad5
作者:Fabio Chiusano