Python NLP庫top6的介紹和比較
閱讀將近3分鐘
自然語言處理(NLP)在今天已經變得越來越流行,尤其是在深度學習迅猛發展的大背景下變得更加引人注目。NLP屬於人工智慧的一個領域,旨在理解文本和從中提取重要信息,並在文本數據上做進一步的訓練。NLP的主要任務包括了語音識別和生成,文本分析,情感分析,機器翻譯等。
現下已經有許多工具庫被設計來解決NLP問題。今天,我們根據我們的經驗列舉概述了六個最實用最受歡迎的自然語言處理庫,並對它們進行比較。不過我們列舉的這幾個庫在功能上,在解決的任務目標上,只有部分的重疊,所以有時很難對它們進行直接比較。我們將圍繞一些每個NLP庫共有的特性來進行比較。
一.綜述
NLTK(Natural Language Toolkit) 用於執行諸如分詞,詞形還原,詞幹提取,解析,詞性標註等任務。該庫包含的工具可用於幾乎所有NLP任務。
SpacyNLTK的主要競爭對手。這兩個庫可用於相同的任務。
Scikit-learn為機器學習提供了一個包羅萬象的工具庫,這其中就包含了用於文本預處理的工具。
Gensim一個被用於主題和向量空間建模,計算文檔相似性的工具包。
Pattern主要作為Web挖掘模塊被使用。因此,它僅被用來執行NLP的輔助類任務。
PolyglotNLP的另一個python包。它不是很受歡迎,但也可以用於各種NLP任務。
為了使比較更加清晰具體,我們製作了一張表格來展示每個庫的優缺點。
二.結論
在本文中,我們比較了六個十分流行的自然語言處理庫的部分功能。雖然它們大多數提供了解決相同任務的工具,但有些也使用獨特的方法來解決特定問題。當然,今天NLP最受歡迎的軟體包依然是NLTK和Spacy。他們彼此也是NLP領域的主要競爭對手。在我們看來,它們之間的區別主要在於解決問題的方法論不一樣。
NLTK更具學術性。您可以使用它來嘗試不同的方法和演算法,或將它們組合起來等等。相反,Spacy為每個問題提供了一個開箱即用的解決方案。你不必考慮哪種方法更好:Spacy的作者已經給你想好了。此外,Spacy非常快(比NLTK快幾倍)。一個缺點是Spacy支持的語言數量有限,但是支持的語言數量一直在增加。所以,我們認為Spacy在大多數情況下都是最佳選擇,但如果你想嘗試一些特別的東西,你可以使用NLTK。
儘管這兩個庫很受歡迎,但你依然還有許多其他不同的選擇,如何選擇NLP包取決於您希望解決的具體問題是什麼。所以,如果你碰巧知道其他有用的NLP庫,也可以在評論區告訴我們的讀者。(編譯自:medium)
長按掃描
※大家都在學的編程語言 Python,可以用來幹什麼?
※符合 Python 風格的對象
TAG:Python |