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