Python NLP庫top6的介紹和比較

劉美利發表於2018-08-24

自然語言處理(NLP)在今天已經變得越來越流行,尤其是在深度學習迅猛發展的大背景下變得更加引人注目。NLP屬於人工智慧的一個領域,旨在理解文字和從中提取重要資訊,並在文字資料上做進一步的訓練。NLP的主要任務包括了語音識別和生成,文字分析,情感分析,機器翻譯等。

現下已經有許多工具庫被設計來解決NLP問題。今天,我們根據我們的經驗列舉概述了六個最實用最受歡迎的自然語言處理庫,並對它們進行比較。不過我們列舉的這幾個庫在功能上,在解決的任務目標上,只有部分的重疊,所以有時很難對它們進行直接比較。我們將圍繞一些每個NLP庫共有的特性來進行比較。

一. 綜述

NLTK (Natural Language Toolkit) 用於執行諸如分詞,詞形還原,詞幹提取,解析,詞性標註等任務。該庫包含的工具可用於幾乎所有NLP任務。

Spacy  NLTK的主要競爭對手。這兩個庫可用於相同的任務。

Scikit-learn 為機器學習提供了一個包羅永珍的工具庫,這其中就包含了用於文字預處理的工具。

Gensim  一個被用於主題和向量空間建模,計算文件相似性的工具包。

Pattern  主要作為Web挖掘模組被使用。因此,它僅被用來執行NLP的輔助類任務。

Polyglot  NLP的另一個python包。它不是很受歡迎,但也可以用於各種NLP任務。

為了使比較更加清晰具體,我們製作了一張表格來展示每個庫的優缺點。 

二. 結論

在本文中,我們比較了六個十分流行的自然語言處理庫的部分功能。雖然它們大多數提供瞭解決相同任務的工具,但有些也使用獨特的方法來解決特定問題。當然,今天NLP最受歡迎的軟體包依然是NLTK和Spacy。他們彼此也是NLP領域的主要競爭對手。在我們看來,它們之間的區別主要在於解決問題的方法論不一樣。

NLTK更具學術性。您可以使用它來嘗試不同的方法和演算法,或將它們組合起來等等。相反,Spacy為每個問題提供了一個開箱即用的解決方案。你不必考慮哪種方法更好:Spacy的作者已經給你想好了。此外,Spacy非常快(比NLTK快幾倍)。一個缺點是Spacy支援的語言數量有限,但是支援的語言數量一直在增加。所以,我們認為Spacy在大多數情況下都是最佳選擇,但如果你想嘗試一些特別的東西,你可以使用NLTK。

【本文轉載自: 磐創AI,作者:   Revolver,原文連結:https://mp.weixin.qq.com/s/2Ol-S4K9BL52tvKUusvVVQ】

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31542119/viewspace-2212796/,如需轉載,請註明出處,否則將追究法律責任。

相關文章