2022年必須要了解的20個(gè)開(kāi)源NLP 庫(kù)
在本文中,我列出了當(dāng)今最常用的 NLP 庫(kù),并對(duì)其進(jìn)行簡(jiǎn)要說(shuō)明。 它們?cè)诓煌挠美卸加刑囟ǖ膬?yōu)勢(shì)和劣勢(shì),因此它們都可以作為專門從事 NLP 的優(yōu)秀數(shù)據(jù)科學(xué)家備選方案。每個(gè)庫(kù)的描述都是從它們的 GitHub 中提取的。

NLP庫(kù)
以下是頂級(jí)庫(kù)的列表,排序方式是在GitHub上的星數(shù)倒序。
1、Hugging Face Transformers
57.1k GitHub stars.
Transformers 提供了數(shù)千個(gè)預(yù)訓(xùn)練模型來(lái)執(zhí)行不同形式的任務(wù),例如文本、視覺(jué)和音頻。 這些模型可應(yīng)用于文本(文本分類、信息提取、問(wèn)答、摘要、翻譯、文本生成,支持超過(guò) 100 種語(yǔ)言)、圖像(圖像分類、對(duì)象檢測(cè)和分割)和音頻(語(yǔ)音識(shí)別和音頻分類 )。 Transformer 模型還可以結(jié)合多種模式執(zhí)行任務(wù),例如表格問(wèn)答、OCR、從掃描文檔中提取信息、視頻分類和視覺(jué)問(wèn)答。
2、spaCy
22.2k GitHub stars.
spaCy是 Python 和 Cython 中用于自然語(yǔ)言處理的免費(fèi)開(kāi)源庫(kù)。 它從一開(kāi)始就設(shè)計(jì)用于生產(chǎn)環(huán)境。 spaCy 帶有預(yù)訓(xùn)練的管道,目前支持 60 多種語(yǔ)言的標(biāo)記化和訓(xùn)練。 它具有最先進(jìn)的神經(jīng)網(wǎng)絡(luò)模型,可以用于標(biāo)記、解析、命名實(shí)體識(shí)別、文本分類、并且使用 BERT 等預(yù)訓(xùn)練Transformers進(jìn)行多任務(wù)學(xué)習(xí),可以對(duì)模型進(jìn)行 打包、部署和工作,方便生產(chǎn)環(huán)境的部署。 spaCy 是商業(yè)開(kāi)源軟件,在 MIT 許可下發(fā)布。
3、Fairseq
15.1k GitHub stars.
Fairseq 是一個(gè)序列建模工具包,允許研究人員和開(kāi)發(fā)人員為翻譯、摘要、語(yǔ)言建模和其他文本生成任務(wù)訓(xùn)練自定義模型。 它提供了各種序列建模論文的參考實(shí)現(xiàn)。
4、Gensim
12.8k GitHub stars.
Gensim 是一個(gè) Python 庫(kù),用于主題建模、文檔索引和大型語(yǔ)料庫(kù)的相似性檢索。 目標(biāo)受眾是 NLP 和信息檢索 (IR) 社區(qū)。 Gensim 具有流行算法的高效多核實(shí)現(xiàn),包括但不限于Latent Semantic Analysis (LSA/LSI/SVD)、Latent Dirichlet Allocation (LDA)、Random Projections (RP)、Hierarchical Dirichlet Process(HDP) 或 word2vec 深度學(xué)習(xí)等。
5、Flair
11.2k GitHub stars.
Flair 是一個(gè)強(qiáng)大的 NLP 庫(kù)。 Flair 的目標(biāo)是將最先進(jìn)的 NLP 模型應(yīng)用于文本中,例如命名實(shí)體識(shí)別 (NER)、詞性標(biāo)注 (PoS)、對(duì)生物醫(yī)學(xué)數(shù)據(jù)的特殊支持、語(yǔ)義消歧和分類。 Flair 具有簡(jiǎn)單的界面,允許使用和組合不同的單詞和文檔嵌入,包括 Flair 嵌入、BERT 嵌入和 ELMo 嵌入。 該框架直接構(gòu)建在 PyTorch 上,可以輕松地訓(xùn)練自己的模型并使用 Flair 嵌入和類庫(kù)來(lái)試驗(yàn)新方法。
6、AllenNLP
10.8k GitHub stars.
AllenNLP是基于 PyTorch 構(gòu)建的 NLP 研究庫(kù),使用開(kāi)源協(xié)議為Apache 2.0 ,它包含用于在各種語(yǔ)言任務(wù)上開(kāi)發(fā)最先進(jìn)的深度學(xué)習(xí)模型并提供了廣泛的現(xiàn)有模型實(shí)現(xiàn)集合,這些實(shí)現(xiàn)都是按照高標(biāo)準(zhǔn)設(shè)計(jì),為進(jìn)一步研究奠定了良好的基礎(chǔ)。 AllenNLP 提供了一種高級(jí)配置語(yǔ)言來(lái)實(shí)現(xiàn) NLP 中的許多常見(jiàn)方法,例如transformer、多任務(wù)訓(xùn)練、視覺(jué)+語(yǔ)言任務(wù)、公平性和可解釋性。 這允許純粹通過(guò)配置對(duì)廣泛的任務(wù)進(jìn)行實(shí)驗(yàn),因此使用者可以專注于解決研究中的重要問(wèn)題。
7、NLTK
10.4k GitHub stars.
NLTK — Natural Language Toolkit — 是一套支持自然語(yǔ)言處理研究和開(kāi)發(fā)的開(kāi)源 Python 包、數(shù)據(jù)集和教程的集合。 它為超過(guò) 50 個(gè)語(yǔ)料庫(kù)和詞匯資源(如 WordNet)提供易于使用的接口,以及一套用于分類、標(biāo)記化、詞干提取、標(biāo)記、解析和語(yǔ)義推理的文本處理庫(kù)。
8、CoreNLP
8.3k GitHub stars.
斯坦福 CoreNLP 提供了一組用 Java 編寫的自然語(yǔ)言分析工具。 它可以接收原始的人類語(yǔ)言文本輸入,并給出單詞的基本形式、詞性、公司名稱、人名等,規(guī)范化和解釋日期、時(shí)間和數(shù)字量,標(biāo)記句子的結(jié)構(gòu) 在短語(yǔ)或單詞依賴方面,并指出哪些名詞短語(yǔ)指的是相同的實(shí)體。
9、Pattern
8.1k GitHub stars.
注意:該庫(kù)已經(jīng)2年沒(méi)有更新了
Pattern 是 Python 的web的挖掘工具包,它包含了:網(wǎng)絡(luò)服務(wù)(谷歌、推特、維基百科)、網(wǎng)絡(luò)爬蟲(chóng)和 HTML DOM 解析器。 它有幾個(gè)自然語(yǔ)言處理模型:詞性標(biāo)注器、n-gram 搜索、情感分析和 WordNet。 它實(shí)現(xiàn)了機(jī)器學(xué)習(xí)模型:向量空間模型、聚類、分類(KNN、SVM、感知器)。 模式也可用于網(wǎng)絡(luò)分析:圖形中心性和可視化。
10、TextBlob
8k GitHub stars.
TextBlob 是一個(gè)用于處理文本數(shù)據(jù)的 Python 庫(kù)。 它提供了一個(gè)簡(jiǎn)單的 API,用于深入研究常見(jiàn)的自然語(yǔ)言處理任務(wù),例如詞性標(biāo)注、名詞短語(yǔ)提取、情感分析、分類、翻譯等。 TextBlob 站在 NLTK 和 Pattern 的基礎(chǔ)上制作,并且可以很好地與兩者配合使用。
11、Hugging Face Tokenizers
5.2k GitHub stars.
該庫(kù)提供了當(dāng)今最常用的標(biāo)記器的實(shí)現(xiàn),重點(diǎn)是性能和通用性。
12、Haystack
3.8k GitHub stars.
Haystack 是一個(gè)端到端框架,能夠?yàn)椴煌乃阉饔美龢?gòu)建功能強(qiáng)大且可用于生產(chǎn)的管道。 無(wú)論要執(zhí)行問(wèn)答還是語(yǔ)義文檔搜索,都可以使用 Haystack 中最先進(jìn)的 NLP 模型來(lái)提供獨(dú)特的搜索體驗(yàn)并為用戶提供使用自然語(yǔ)言進(jìn)行查詢的功能。 Haystack 以模塊化方式構(gòu)建,因此可以結(jié)合其他開(kāi)源項(xiàng)目(如 Huggingface 的 Transformers、Elasticsearch 或 Milvus)。
13、Snips NLU
3.6k GitHub stars.
注意:該庫(kù)已經(jīng)2年沒(méi)有更新了
Snips NLU 是一個(gè)可以從用自然語(yǔ)言編寫的句子中提取結(jié)構(gòu)化信息的 Python 庫(kù)。 每當(dāng)用戶使用自然語(yǔ)言與人工智能交互時(shí),他們的文字都需要被翻譯成機(jī)器可讀的形式(向量)。 Snips NLU 的 NLU(自然語(yǔ)言理解)引擎首先檢測(cè)用戶的意圖是什么(也就是意圖),然后提取查詢的參數(shù)(稱為slots)。
14、NLP Architect
2.8k GitHub stars.
NLP Architect 是一個(gè)用于探索用于優(yōu)化自然語(yǔ)言處理和自然語(yǔ)言理解神經(jīng)網(wǎng)絡(luò)的最先進(jìn)的深度學(xué)習(xí)拓?fù)浜图夹g(shù)的Python 庫(kù)。 它允許在應(yīng)用程序中輕松快速地集成 NLP 模型,并展示優(yōu)化的模型。
15、PyTorch-NLP
2k GitHub stars.
PyTorch-NLP 擴(kuò)展了 PyTorch并提供基本的文本數(shù)據(jù)處理功能。
16、Polyglot
1.9k GitHub stars.
Polyglot 是一個(gè)支持大量多語(yǔ)言應(yīng)用程序的自然語(yǔ)言管道:標(biāo)記化(165 種語(yǔ)言)、語(yǔ)言檢測(cè)(196 種語(yǔ)言)、命名實(shí)體識(shí)別(40 種語(yǔ)言)、部分語(yǔ)音標(biāo)記(16 種語(yǔ)言)、情感分析(136 種語(yǔ)言)、Word 嵌入(137 種語(yǔ)言)、形態(tài)分析(135 種語(yǔ)言)和音譯(69 種語(yǔ)言)。
但是該庫(kù)的最新更新時(shí)間是3年前。
17、TextAttack
1.8k GitHub stars.
TextAttack 是一個(gè)用于 NLP 中的對(duì)抗性攻擊、數(shù)據(jù)增強(qiáng)和模型訓(xùn)練 的Python 框架。
18、Word Forms
513 GitHub stars.
Word forms可以準(zhǔn)確地生成一個(gè)英語(yǔ)單詞的所有可能形式。 它可以連接不同的詞性,例如名詞與形容詞、形容詞與副詞、名詞與動(dòng)詞等。
19、Rosetta
420 GitHub stars.
Rosetta 是一個(gè)基于 TensorFlow 的隱私保護(hù)框架。 它集成了主流的隱私保護(hù)計(jì)算技術(shù),包括密碼學(xué)、聯(lián)邦學(xué)習(xí)和可信執(zhí)行環(huán)境。 Rosetta 重用了 TensorFlow 的 API,只需極少的代碼更改,就可以將傳統(tǒng)的 TensorFlow 代碼轉(zhuǎn)換為隱私保護(hù)的方式運(yùn)行。
必備基礎(chǔ)庫(kù)
這里列出了一些并非特定于 NLP 但仍然經(jīng)常用于 NLP 項(xiàng)目的數(shù)據(jù)科學(xué)庫(kù)。
20、scikit-learn
48.6k GitHub stars.
Scikit-learn(也稱為 sklearn)是 Python 編程語(yǔ)言的免費(fèi)軟件機(jī)器學(xué)習(xí)庫(kù)。 它具有各種分類、回歸和聚類算法,包括支持向量機(jī)、隨機(jī)森林、梯度提升、k-means 和 DBSCAN,是建立在 Python 數(shù)值和科學(xué)庫(kù) NumPy 和 SciPy 之上的。
21、Pandas
32.4 GitHub stars.
Pandas 是一個(gè)提供了操作表格數(shù)據(jù)的Python 包。 它已經(jīng)成為在 Python 中進(jìn)行實(shí)際的、真實(shí)的數(shù)據(jù)分析的基礎(chǔ)模塊。 它可以被稱作最強(qiáng)大、最靈活的開(kāi)源數(shù)據(jù)分析/操作工具。


























