《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 入門 | 6大最流行、最有用的自然語言處理庫對比

入門 | 6大最流行、最有用的自然語言處理庫對比

2018-08-05
關(guān)鍵詞: 自然語言處理庫 spaCy

本文概述和比較了最流行、最有用的自然語言處理庫,包含 NLTK、spaCy、scikit-learn、gensim、Pattern、polyglot。

微信圖片_20180805205949.jpg



現(xiàn)在自然語言處理(NLP)變得越來越流行,這在深度學習發(fā)展的背景下尤其引人注目。NLP 是人工智能的一個分支,旨在從文本中理解和提取重要信息,進而基于文本數(shù)據(jù)進行訓練。NLP 的主要任務包括語音識別和生成、文本分析、情感分析、機器翻譯等。


近幾十年,只有適當受過語言學教育的專家才能從事自然語言處理方向的工作。除了數(shù)學和機器學習,他們還應該熟悉一些重要的語言概念。但是現(xiàn)在,我們可以使用寫好的 NLP 庫。它們的主要目的是簡化文本預處理過程,這樣我們可以專注于構(gòu)建機器學習模型和超參數(shù)調(diào)整。


人們設計了很多工具和庫來解決 NLP 問題。今天,我們想基于自身經(jīng)驗,概述和比較最流行、最有用的自然語言處理庫。本文介紹的所有庫只有部分任務會重合。因此,有時候很難直接將它們進行對比。我們將介紹一些特征,然后對比這些庫。


概覽


NLTK(自然語言工具包)用于分詞、詞形還原、詞干提取、解析、句法分析、詞性標注等任務。該庫具備可用于幾乎所有 NLP 任務的工具。

spaCy 是 NLTK 的主要競爭者。這兩個庫可用于同樣的任務。

scikit-learn 提供一個用于機器學習的大型庫,包含用于文本預處理的工具。

gensim 是用于話題空間建模、向量空間建模和文檔相似度的工具包。

Pattern 庫是作為 web 挖掘模塊提供服務的,因此,它也支持 NLP 任務。

polyglot 是另一個用于 NLP 的 Python 包。它不是很流行,但也可以用于大量 NLP 任務。


為了更清晰地對比這些庫,我們制作了下表來展示它們的優(yōu)缺點。

微信圖片_20180805210010.jpg


更新:2018 年 7 月


結(jié)論


本文對比了幾個流行的 NLP 庫的特征。盡管大部分庫適用的任務有重合,但一些庫需要用獨特的方法來解決特定的問題。確切來說,現(xiàn)在最流行的 NLP 包是 NLTK 和 spaCy。它們是 NLP 領域中的主要競爭者。我們認為,二者之間的差別在于解決問題的一般哲學。


NLTK 更加學術(shù)。你可以用它嘗試不同的方法和算法,結(jié)合使用等等。spaCy 為每個問題提供一個開箱即用的解決方案。你不用思考哪種方法更好:spaCy 的作者已經(jīng)替你考慮了。此外,spaCy 速度很快(是 NLTK 的好幾倍)。它的一個缺陷在于支持的語言種類有限。但是,它所支持的語言數(shù)量在持續(xù)增加。因此,我們認為 spaCy 在大部分情況下是最優(yōu)選,但是如果你想嘗試一些特別的任務,可以使用 NLTK。


盡管這兩個庫非常流行,但還存在很多不同的選擇,選擇使用哪個 NLP 包取決于你要解決的問題。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。