6個頂級Python NLP庫的比較!算法
http://blog.itpub.net/31509949/viewspace-2212320/機器學習
天然語言處理(NLP)現在愈來愈流行,在深度學習開發的背景下變得尤其引人注目。在人工智能領域中,天然語言處理(NLP)從文本中理解和提取重要信息,並基於文本數據進行進一步的數據訓練,其主要任務包括語音識別和生成、文本分析、情感分析、機器翻譯等。工具
在過去的幾十年中,只有那些精通語言教育的專家才能從事天然語言處理。除了具備數學和機器學習知識之外,他們還精通一些關鍵的語言概念。而如今,咱們可使用已編譯好的天然語言處理(NLP)庫。它們的主要目的是簡化文本預處理,使咱們能夠專一於構建機器學習模型和超參數微調。學習
有許多工具和庫能夠解決天然語言處理(NLP)問題。咱們如今但願根據經驗,對用戶最受歡迎和最有幫助的天然語言處理庫進行概述和比較。用戶應該瞭解咱們介紹的全部工具和庫只有部分重疊的任務。因此,有時很難對它們直接進行比較。咱們將介紹一些功能,並對人們可能經常使用的天然語言處理(NLP)庫進行比較。人工智能
整體概述spa
·NLTK(Python天然語言工具包)用於諸如標記化、詞形還原、詞幹化、解析、POS標註等任務。該庫具備幾乎全部NLP任務的工具。.net
·Spacy是NLTK的主要競爭對手。這兩個庫可用於相同的任務。翻譯
·Scikit-learn爲機器學習提供了一個大型庫。此外還提供了用於文本預處理的工具。blog
·Gensim是一個主題和向量空間建模、文檔集合類似性的工具包。ci
·Pattern庫的通常任務是充當Web挖掘模塊。所以,它僅支持天然語言處理(NLP)做爲輔助任務。
·Polyglot是天然語言處理(NLP)的另外一個Python工具包。它不是很受歡迎,但也能夠用於各類NLP任務。
爲了讓比較更加直觀,如下列出展現各個NLP庫優缺點的表格:
結論
在文中,咱們比較了幾個流行的天然語言處理庫的一些功能。雖然它們中的大多數都提供了重疊任務的工具,但有一些可使用獨特的方法來解決具體的問題。固然,目前NLP庫中最受歡迎的軟件包是NLTK和Spacy。他們在NLP領域是主要競爭對手。在咱們看來,它們之間的區別在於解決問題的方法不一樣。
NLTK更具學術性。用戶可使用它來嘗試不一樣的方法和算法,將它們組合起來。
相反,Spacy爲每一個問題提供了一個開箱即用的解決方案。用戶沒必要考慮哪一種方法更好:Spacy的編寫者已經解決了這個問題。此外,Spacy的執行速度很是快(比NLTK快幾倍)。但Spacy的一個缺點是所支持的語言數量有限。但其支持的語言數量將會一直增長。
因此,咱們認爲Spacy在大多數狀況下是用戶的最佳選擇,但若是用戶想嘗試一些特別的東西,可使用NLTK。
儘管這兩個庫很受歡迎,但還有許多不一樣的選項,NLP工具包的選擇取決於用戶必須解決的具體問題。