作者:ActiveWizards;機器之心編譯;參與:路、王淑婷;
本文概述和比較了最流行、最有用的自然語言處理庫,包含 NLTK、spaCy、scikit-learn、gensim、Pattern、polyglot。
現在自然語言處理(NLP)變得越來越流行,這在深度學習發展的背景下尤其引人註目。NLP 是人工智慧的一個分支,旨在從文字中理解和提取重要資訊,進而基於文字資料進行訓練。NLP 的主要任務包括語音識別和生成、文字分析、情感分析、機器翻譯等。
近幾十年,只有適當受過語言學教育的專家才能從事自然語言處理方向的工作。除了數學和機器學習,他們還應該熟悉一些重要的語言概念。但是現在,我們可以使用寫好的 NLP 庫。它們的主要目的是簡化文字預處理過程,這樣我們可以專註於構建機器學習模型和超引數調整。
人們設計了很多工具和庫來解決 NLP 問題。今天,我們想基於自身經驗,概述和比較最流行、最有用的自然語言處理庫。本文介紹的所有庫只有部分任務會重合。因此,有時候很難直接將它們進行對比。我們將介紹一些特徵,然後對比這些庫。
概覽
-
NLTK(自然語言工具包)用於分詞、詞形還原、詞乾提取、解析、句法分析、詞性標註等任務。該庫具備可用於幾乎所有 NLP 任務的工具。
-
spaCy 是 NLTK 的主要競爭者。這兩個庫可用於同樣的任務。
-
scikit-learn 提供一個用於機器學習的大型庫,包含用於文字預處理的工具。
-
gensim 是用於話題空間建模、向量空間建模和檔案相似度的工具包。
-
Pattern 庫是作為 web 挖掘模組提供服務的,因此,它也支援 NLP 任務。
-
polyglot 是另一個用於 NLP 的 Python 包。它不是很流行,但也可以用於大量 NLP 任務。
為了更清晰地對比這些庫,我們製作了下表來展示它們的優缺點。
更新:2018 年 7 月
結論
本文對比了幾個流行的 NLP 庫的特徵。儘管大部分庫適用的任務有重合,但一些庫需要用獨特的方法來解決特定的問題。確切來說,現在最流行的 NLP 包是 NLTK 和 spaCy。它們是 NLP 領域中的主要競爭者。我們認為,二者之間的差別在於解決問題的一般哲學。
NLTK 更加學術。你可以用它嘗試不同的方法和演演算法,結合使用等等。spaCy 為每個問題提供一個開箱即用的解決方案。你不用思考哪種方法更好:spaCy 的作者已經替你考慮了。此外,spaCy 速度很快(是 NLTK 的好幾倍)。它的一個缺陷在於支援的語言種類有限。但是,它所支援的語言數量在持續增加。因此,我們認為 spaCy 在大部分情況下是最優選,但是如果你想嘗試一些特別的任務,可以使用 NLTK。
儘管這兩個庫非常流行,但還存在很多不同的選擇,選擇使用哪個 NLP 包取決於你要解決的問題。
本文轉自:機器之心 公眾號;
原文連結:https://www.kdnuggets.com/2018/07/comparison-top-6-python-nlp-libraries.html
版權宣告:本號內容部分來自網際網路,轉載請註明原文連結和作者,如有侵權或出處有誤請和我們聯絡。
關聯閱讀
原創系列文章:
資料運營 關聯文章閱讀:
資料分析、資料產品 關聯文章閱讀:
80%的運營註定了打雜?因為你沒有搭建出一套有效的使用者運營體系
商務合作|約稿 請加qq:365242293
更多相關知識請回覆:“ 月光寶盒 ”;
資料分析(ID : ecshujufenxi )網際網路科技與資料圈自己的微信,也是WeMedia自媒體聯盟成員之一,WeMedia聯盟改寫5000萬人群。