不是你無法入門自然語言處理(NLP),而是你沒找到正確的打開方式

2020-12-13 雷鋒網

雷鋒網按:本文作者 Mr.Scofield,原文載於作者個人博客,雷鋒網(公眾號:雷鋒網)已獲授權。

  〇、序

之前一段時間,在結合深度學習做 NLP 的時候一直有思考一些問題,其中有一個問題算是最核心一個:究竟深度網絡是怎麼做到讓各種 NLP 任務解決地如何完美呢?到底我的數據在 NN 中發什麼了什麼呢?

並且,不少的 terms like: 詞向量、word embedding、分布式表示、word2vec、glove 等等,這一鍋粥的名詞術語分別代表什麼,他們具體的關係是什麼,他們是否處於平級關係?

出於對知識結構追求完整梳理的強迫症的老毛病,於是不停地查資料、思考、keep revolving……

然後就感覺有一點小進展了。想到,不如將個人對其的理解,無論對錯,先拿出來跟peer分享下,或許能交換出更有意義的東西呢?

整篇文章的構架是按照屬於概念在邏輯上的先後大小順序,一層一層一級一級地往下剖析、比較、說明。

另外說明下,here整篇文字內容相對是比較入門,甚至有的點可能描述的不太客觀正確,限於當前的認知水平……還請您海涵,希望您在評論中指正!

  一、DeepNLP的核心關鍵:語言表示(Representation)

最近有一個新名詞:Deep Learning + NLP =  DeepNLP。當常規的機器學習Machine Learning升級發展到了一定的階段後,慢慢的被後起的深度學習Deep Learning奪勢而去,並如火如荼地引領了一波新高潮,因為Deep Learning有machinelearning過而不及之處!那當 Deep Learning 進入 NLP 領域,自然是要橫掃 ACL 一批 paper 才是。事實也是這樣的。

先提下數據特徵表示問題。數據表示是機器學習的核心問題,在過去的Machine Learning階段,大量興起特徵工程,人工設計大量的特徵解決數據的有效表示問題。而到了Deep Learning,想都別想,end-2-end,一步到位,hyper-parameter自動幫你選擇尋找關鍵的特徵參數。

那麼,Deep Learning如何能在NLP中發揮出應有的real power呢?很明顯,先不提如何設計出很強勢的網絡結構,不提如何在NLP中引入基於NN的解決例如情感分析、實體識別、機器翻譯、文本生成這些高級任務,咱們首先得把語言表示這一關過了——如何讓語言表示成為NN能夠處理的數據類型。

我們看看圖像和語音是怎麼表示數據的:

在語音中,用音頻頻譜序列向量所構成的matrix作為前端輸入餵給NN進行處理,good;在圖像中,用圖片的像素構成的matrix展平成vector後組成的vector序列餵給NN進行處理,good;那在自然語言處理中呢?噢你可能知道或者不知道,將每一個詞用一個向量表示出來!想法是挺簡單的,對,事實上就是這麼簡單,然而真有這麼簡單嗎?可能沒這麼簡單。

有人提到,圖像、語音屬於比較自然地低級數據表示形式,在圖像和語音領域,最基本的數據是信號數據,我們可以通過一些距離度量,判斷信號是否相似,在判斷兩幅圖片是否相似時,只需通過觀察圖片本身就能給出回答。而語言作為人類在進化了幾百萬年所產生的一種高層的抽象的思維信息表達的工具,其具有高度抽象的特徵,文本是符號數據,兩個詞只要字面不同,就難以刻畫它們之間的聯繫,即使是「麥克風」和「話筒」這樣的同義詞,從字面上也難以看出這兩者意思相同(語義鴻溝現象),可能並不是簡單地一加一那麼簡單就能表示出來,而判斷兩個詞是否相似時,還需要更多的背景知識才能做出回答。

那麼據上是不是可以自信地下一個結論呢:如何有效地表示出語言句子是決定NN能發揮出強大擬合計算能力的關鍵前提!

  二、NLP詞的表示方法類型

接下來將按照上面的思路,引出各種詞的表示方法。按照現今目前的發展,詞的表示分為獨熱表示one-hot、分布式表示distributed。

1、詞的獨熱表示one-hot representation

NLP 中最直觀,也是到目前為止最常用的詞表示方法是 One-hot Representation,這種方法把每個詞表示為一個很長的向量。這個向量的維度是詞表大小,其中絕大多數元素為 0,只有一個維度的值為 1,這個維度就代表了當前的詞。關於one-hot編碼的資料很多,街貨,這裡簡單舉個慄子說明:

「話筒」表示為 [0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 ...]
「麥克」表示為 [0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 ...]

每個詞都是茫茫 0 海中的一個 1。這種 One-hot Representation 如果採用稀疏方式存儲,會是非常的簡潔:也就是給每個詞分配一個數字 ID。比如剛才的例子中,話筒記為 3,麥克記為 8(假設從 0 開始記)。如果要編程實現的話,用 Hash 表給每個詞分配一個編號就可以了。這麼簡潔的表示方法配合上最大熵、SVM、CRF 等等算法已經很好地完成了 NLP 領域的各種主流任務。

現在我們分析他的不當處。1、向量的維度會隨著句子的詞的數量類型增大而增大;2、任意兩個詞之間都是孤立的,根本無法表示出在語義層面上詞語詞之間的相關信息,而這一點是致命的。

2、詞的分布式表示distributed representation

傳統的獨熱表示( one-hot representation)僅僅將詞符號化,不包含任何語義信息。如何將語義融入到詞表示中?Harris 在 1954 年提出的分布假說( distributional hypothesis)為這一設想提供了理論基礎:上下文相似的詞,其語義也相似。Firth 在 1957 年對分布假說進行了進一步闡述和明確:詞的語義由其上下文決定( a word is characterized by thecompany it keeps)。

到目前為止,基於分布假說的詞表示方法,根據建模的不同,主要可以分為三類:基於矩陣的分布表示、基於聚類的分布表示和基於神經網絡的分布表示。儘管這些不同的分布表示方法使用了不同的技術手段獲取詞表示,但由於這些方法均基於分布假說,它們的核心思想也都由兩部分組成:一、選擇一種方式描述上下文;二、選擇一種模型刻畫某個詞(下文稱「目標詞」)與其上下文之間的關係。

  三、NLP語言模型

在詳細介紹詞的分布式表示之前,需要將NLP中的一個關鍵概念描述清楚:語言模型。語言模型包括文法語言模型和統計語言模型。一般我們指的是統計語言模型。之所以要將語言模型擺在詞表示方法之前,是因為後面的表示方法馬上要用到這一概念。

統計語言模型: 統計語言模型把語言(詞的序列)看作一個隨機事件,並賦予相應的概率來描述其屬於某種語言集合的可能性。給定一個詞彙集合 V,對於一個由 V 中的詞構成的序列 S = ⟨w1, · · · , wT ⟩ ∈ Vn,統計語言模型賦予這個序列一個概率 P(S),來衡量 S 符合自然語言的語法和語義規則的置信度。

用一句簡單的話說,就語言模型就是計算一個句子的概率大小的這種模型。有什麼意義呢?一個句子的打分概率越高,越說明他是更合乎人說出來的自然句子。

就是這麼簡單。常見的統計語言模型有N元文法模型(N-gram Model),最常見的是 unigram model、bigram model、trigram model 等等。形式化講,統計語言模型的作用是為一個長度為 m 的字符串確定一個概率分布 P(w1; w2; :::; wm),表示其存在的可能性,其中 w1 到 wm 依次表示這段文本中的各個詞。一般在實際求解過程中,通常採用下式計算其概率值:

同時通過這些方法均也可以保留住一定的詞序信息,這樣就能把一個詞的上下文信息capture住。

具體的語言模型詳情屬於街貨,詳細請自行搜索。

  四、詞的分布式表示

1. 基於矩陣的分布表示

基於矩陣的分布表示通常又稱為分布語義模型,在這種表示下,矩陣中的一行,就成為了對應詞的表示,這種表示描述了該詞的上下文的分布。由於分布假說認為上下文相似的詞,其語義也相似,因此在這種表示下,兩個詞的語義相似度可以直接轉化為兩個向量的空間距離。

常見到的Global Vector 模型( GloVe模型)是一種對「詞-詞」矩陣進行分解從而得到詞表示的方法,屬於基於矩陣的分布表示。

2. 基於神經網絡的分布表示,詞嵌入( word embedding)

基於神經網絡的分布表示一般稱為詞向量、詞嵌入( word embedding)或分布式表示( distributed representation)。這正是我們的主角today。

神經網絡詞向量表示技術通過神經網絡技術對上下文,以及上下文與目標詞之間的關係進行建模。由於神經網絡較為靈活,這類方法的最大優勢在於可以表示複雜的上下文。在前面基於矩陣的分布表示方法中,最常用的上下文是詞。如果使用包含詞序信息的 n-gram 作為上下文,當 n 增加時, n-gram 的總數會呈指數級增長,此時會遇到維數災難問題。而神經網絡在表示 n-gram 時,可以通過一些組合方式對 n 個詞進行組合,參數個數僅以線性速度增長。有了這一優勢,神經網絡模型可以對更複雜的上下文進行建模,在詞向量中包含更豐富的語義信息。

  五、詞嵌入( word embedding)

1、概念

基於神經網絡的分布表示又稱為詞向量、詞嵌入,神經網絡詞向量模型與其它分布表示方法一樣,均基於分布假說,核心依然是上下文的表示以及上下文與目標詞之間的關係的建模。

前面提到過,為了選擇一種模型刻畫某個詞(下文稱「目標詞」)與其上下文之間的關係,我們需要在詞向量中capture到一個詞的上下文信息。同時,上面我們恰巧提到了統計語言模型正好具有捕捉上下文信息的能力。那麼構建上下文與目標詞之間的關係,最自然的一種思路就是使用語言模型。從歷史上看,早期的詞向量只是神經網絡語言模型的副產品。

2001年, Bengio 等人正式提出神經網絡語言模型( Neural Network Language Model ,NNLM),該模型在學習語言模型的同時,也得到了詞向量。所以請注意一點:詞向量可以認為是神經網絡訓練語言模型的副產品。

2、理解

前面提過,one-hot表示法具有維度過大的缺點,那麼現在將vector做一些改進:1、將vector每一個元素由整形改為浮點型,變為整個實數範圍的表示;2、將原來稀疏的巨大維度壓縮嵌入到一個更小維度的空間。如圖示:

這也是詞向量又名詞嵌入的緣由了。

  六、神經網絡語言模型與word2vec

好了,到目前為止我們已經對的分布式表示以及詞嵌入的概念的層級關係有了個理性的認識了,那這跟word2vec有什麼聯繫?

1、神經網絡語言模型

上面說,通過神經網絡訓練語言模型可以得到詞向量,那麼,究竟有哪些類型的神經網絡語言模型呢?個人所知,大致有這麼些個:

● Neural Network Language Model ,NNLM
● Log-Bilinear Language Model, LBL
● Recurrent Neural Network based Language Model,RNNLM
● Collobert 和 Weston 在2008 年提出的 C&W 模型
● Mikolov 等人提出了 CBOW( Continuous Bagof-Words)和 Skip-gram 模型

到這,估計有人看到了兩個熟悉的term:CBOW、skip-gram,有看過word2vec的同學應該對此有所了解。我們繼續。

2. word2vec與CBOW、Skip-gram

現在我們正式引出最火熱的另一個term:word2vec。

上面提到的5個神經網絡語言模型,只是個在邏輯概念上的東西,那麼具體我們得通過設計將其實現出來,而實現CBOW( Continuous Bagof-Words)和 Skip-gram 語言模型的工具正是well-known word2vec!另外,C&W 模型的實現工具是SENNA。

所以說,分布式詞向量並不是word2vec的作者發明的,他只是提出了一種更快更好的方式來訓練語言模型罷了。分別是:連續詞袋模型Continous Bag of Words Model(CBOW)和Skip-Gram Model,這兩種都是可以訓練出詞向量的方法,再具體代碼操作中可以只選擇其一,不過據論文說CBOW要更快一些。

順便說說這兩個語言模型。統計語言模型statistical language model就是給你幾個詞,在這幾個詞出現的前提下來計算某個詞出現的(事後)概率。CBOW也是統計語言模型的一種,顧名思義就是根據某個詞前面的C個詞或者前後C個連續的詞,來計算某個詞出現的概率。Skip-Gram Model相反,是根據某個詞,然後分別計算它前後出現某幾個詞的各個概率。

以「我愛北京天安門」這句話為例。假設我們現在關注的詞是「愛」,C=2時它的上下文分別是「我」,「北京天安門」。CBOW模型就是把「我」 「北京天安門」 的one hot表示方式作為輸入,也就是C個1xV的向量,分別跟同一個VxN的大小的係數矩陣W1相乘得到C個1xN的隱藏層hidden layer,然後C個取平均所以只算一個隱藏層。這個過程也被稱為線性激活函數(這也算激活函數?分明就是沒有激活函數了)。然後再跟另一個NxV大小的係數矩陣W2相乘得到1xV的輸出層,這個輸出層每個元素代表的就是詞庫裡每個詞的事後概率。輸出層需要跟ground truth也就是「愛」的one hot形式做比較計算loss。這裡需要注意的就是V通常是一個很大的數比如幾百萬,計算起來相當費時間,除了「愛」那個位置的元素肯定要算在loss裡面,word2vec就用基於huffman編碼的Hierarchical softmax篩選掉了一部分不可能的詞,然後又用nagetive samping再去掉了一些負樣本的詞所以時間複雜度就從O(V)變成了O(logV)。Skip gram訓練過程類似,只不過輸入輸出剛好相反。

補充下,Word embedding的訓練方法大致可以分為兩類:一類是無監督或弱監督的預訓練;一類是端對端(end to end)的有監督訓練。無監督或弱監督的預訓練以word2vec和auto-encoder為代表。這一類模型的特點是,不需要大量的人工標記樣本就可以得到質量還不錯的embedding向量。不過因為缺少了任務導向,可能和我們要解決的問題還有一定的距離。因此,我們往往會在得到預訓練的embedding向量後,用少量人工標註的樣本去fine-tune整個模型。

相比之下,端對端的有監督模型在最近幾年裡越來越受到人們的關注。與無監督模型相比,端對端的模型在結構上往往更加複雜。同時,也因為有著明確的任務導向,端對端模型學習到的embedding向量也往往更加準確。例如,通過一個embedding層和若干個卷積層連接而成的深度神經網絡以實現對句子的情感分類,可以學習到語義更豐富的詞向量表達。

3.個人對word embedding的理解

現在,詞向量既能夠降低維度,又能夠capture到當前詞在本句子中上下文的信息(表現為前後距離關係),那麼我們對其用來表示語言句子詞語作為NN的輸入是非常自信與滿意的。

另外一點很實用的建議,在你做某一項具體的NLP任務時如你要用到詞向量,那麼我建議你:要麼 1、選擇使用別人訓練好的詞向量,注意,得使用相同語料內容領域的詞向量;要麼 2、自己訓練自己的詞向量。我建議是前者,因為……坑太多了。

  七、後言

說到這裡,其實我並沒有想繼續說下去的打算了,即並沒有打算將word2vec的數學原理、詳解啥的統統來一頓講了,因為我發現網上關於講解word2vec的文章實在是太多了,多到幾乎所有的文章都是一樣的。所以我也沒有必要再copy一份過來咯。

所以,要詳細了解word2vec、cbow、skip-gram細節的請您仔細搜索。我相信,在了解了這一系列的前提上下文知識的背景下,你再去讀word2vec相關的細節文章時,一定不會感到有多吃力。

另外這也反映出來了一個更大的問題,即網絡文章缺少critical思維的原創性。

網上隨便一搜「word2vec」、「詞向量」,然後一大堆的關於word2vec、cbow、skip-gram數學公式的講解,並且還都是千篇一律的東西……但最讓人無法理解的是,基本上沒有人去詳細地提一提這些東西他的出現他的存在的上下文、他的發展的過程、他在整個相關技術框架的所處位置等等。這讓我很鬱悶……

其實順便分享下,在我個人的方法論思維中,一個帶有完整上下文以及結構構建良好的知識框架,在某種程度上,比一些細枝末節的詳細知識點來的重要的多了!因為,一旦構建了一個完備的知識結構框架,那麼剩下你要做的是將一些零零碎碎的細節進行填補而已;而反過來卻根本不行,知識堆砌只會讓你思維混亂,走不了多遠。

所以here我也呼籲各位blogger,大家能充分發揮自己的能動性,主動去創造一些沒有的東西,分享一些獨有的思維見解,也算是對中國網絡blog以及CS事業的推動貢獻啊!I mean,即便是copy別人的原來的東西,也最好是咀嚼咀嚼,消化後加上自己的東西再share啊!

  References:

《How to Generate a Good Word Embedding?》,Siwei Lai, Kang Liu, Liheng Xu, Jun Zhao
《基於神經網絡的詞和文檔語義向量表示方法研究》,來斯惟
《面向自然語言處理的分布式表示學習》,邱錫鵬
《Deep Learning 實戰之 word2vec》

http://www.cnblogs.com/iloveai/p/word2vec.html
http://www.hankcs.com/nlp/word2vec.html
http://licstar.NET/archives/328
https://zhuanlan.zhihu.com/p/22477976
http://blog.csdn.Net/itplus/article/details/37969519
http://www.tuicool.com/articles/fmuyamf
http://licstar.net/archives/620#comment-1542
http://blog.csdn.net/ycheng_sjtu/article/details/48520293

雷鋒網相關閱讀:

從NLP到「自然語言理解」,Facebook如何讓Messenger更懂人類?

生成式對抗網絡GAN最近在NLP領域有哪些應用?


實戰特訓:遠場語音交互技術  

智能音箱這麼火,聽聲智科技CTO教你深入解析AI設備語音交互關鍵技術!

課程連結:http://www.mooc.ai/course/80

加入AI慕課學院人工智慧學習交流QQ群:624413030,與AI同行一起交流成長

雷鋒網版權文章,未經授權禁止轉載。詳情見轉載須知。

相關焦點

  • 【獨家】自然語言處理(NLP)入門指南
    在線課程•  Dan Jurafsky 和 Chris Manning:自然語言處理[非常棒的視頻介紹系列]https://www.youtube.com/watch?v=nfoudtpBV68&list=PL6397E4B26D00A269 •  斯坦福CS224d:自然語言處理的深度學習[更高級的機器學習算法、深度學習和NLP的神經網絡架構]http://cs224d.stanford.edu/syllabus.html •  Coursera:自然語言處理簡介[由密西根大學提供的NLP
  • 自然語言處理NLP快速入門
    本文提供了一份簡要的自然語言處理介紹,幫助讀者對自然語言處理快速入門。 自然語言處理 (NLP) 是人工智慧的一個子領域,致力於使計算機能夠理解和處理人類語言,使計算機更接近於人類對語言的理解。計算機對自然語言的直觀理解還不如人類,他們不能真正理解語言到底想說什麼。簡而言之,計算機不能在字裡行間閱讀。 儘管如此,機器學習 (ML) 的最新進展使計算機能夠用自然語言做很多有用的事情!
  • 《自然語言處理入門》不是 NLP 學習路上的萬能藥
    我能這麼提這個問題是因為我試著按圖索驥找到過其中兩位讀者諮詢他們的意見,結果,你可能猜到了,他們甚至沒有認真讀過書,對於自己的「惡毒」評論也沒說出個所以然來。我也想藉此提醒諸君,在豆瓣或者大眾點評等網站上,儘量客觀表達你的使用體驗,如果能夠做到有理有據那就更好了,這是為數不多能體現我們普通人影響力的地方。
  • 實踐入門NLP:基於深度學習的自然語言處理
    特別是最近兩年,基於深度學習的自然語言處理逐漸取得了一定進展,在人機對話、問答系統、語言翻譯等方向的應用也一直是自然語言處理中的熱門話題,而這些應用的實現,基本依賴於底層技術和模型的進步,再加上自然語言處理領域也算是一個多學科交叉的行業,自然語言處理的未來發展對於很多相關學科和方向都具有深遠的影響力。
  • 帶新手走進自然語言處理,7本NLP專業書
    自然語言處理並不是一般地研究自然語言,而在於研製能有效地實現自然語言通信的計算機系統,特別是其中的軟體系統。因而它是計算機科學的一部分。        自然語言處理(NLP)是計算機科學,人工智慧,語言學關注計算機和人類(自然)語言之間的相互作用的領域。1. 統計自然語言處理(第2版)評價:★★★☆ 3.5/5.0星
  • NLP入門+實戰必讀:一文教會你最常見的10種自然語言處理技術
    大數據文摘作品編譯:糖竹子、吳雙、錢天培自然語言處理(NLP)是一種藝術與科學的結合,旨在從文本數據中提取信息。從自動翻譯、文本分類到情緒分析,自然語言處理成為所有數據科學家的必備技能之一。在這篇文章中,你將學習到最常見的10個NLP任務,以及相關資源和代碼。為什麼要寫這篇文章?
  • 國內自然語言處理(NLP)研究組
    /natural-language-computing/www.microsoft.com百度自然語言處理百度自然語言處理 - 理解語言,擁有智能,改變世界nlp.baidu.com阿里巴巴達摩院語言技術實驗室
  • NLP入門+實戰必讀:一文教會你最常見的10種自然語言處理技術(附代碼)
    大數據文摘作品編譯:糖竹子、吳雙、錢天培自然語言處理(NLP)是一種藝術與科學的結合,旨在從文本數據中提取信息。在它的幫助下,我們從文本中提煉出適用於計算機算法的信息。從自動翻譯、文本分類到情緒分析,自然語言處理成為所有數據科學家的必備技能之一。
  • Python自然語言處理(NLP)入門教程
    NLTK是Python的自然語言處理工具包,在NLP領域中,最常使用的一個Python庫。什麼是NLP?簡單來說,自然語言處理(NLP)就是開發能夠理解人類語言的應用程式或服務。這裡討論一些自然語言處理(NLP)的實際應用例子,如語音識別、語音翻譯、理解完整的句子、理解匹配詞的同義詞,以及生成語法正確完整句子和段落。
  • 斯坦福NLP團隊發布最新自然語言處理Python庫
    【導讀】斯坦福NLP團隊,於1月29日發布了新版的自然語言處理Python庫:StandfordNLP,不同於以前java系的CoreNLP,
  • NLP也分李逵和李鬼?關於自然語言處理你不知道的事
    作為人工智慧和語言學領域的分支學科,自然語言處理簡單來說,就是把自然語言(如英語或漢語普通話)轉換成計算機能夠用於理解這個世界的數據(數字)。同時,這種對世界的理解有時被用於生成能夠體現這種理解的自然語言文本(即自然語言生成)。自然語言處理的英語是Natural Language Processing,縮寫作 NLP。 但你知道嗎?
  • 這把神器,讓你用 Python 一口氣掌握 53 種自然語言處理!
    它不但包含了完整的語義分析工具鏈,還帶有 73 個不同的高精度神經網絡模型,能解析 53 種不同的人類語言。是不是很牛×啊?今天的教程裡,我就手把手帶你在 Python 上使用 StanfordNLP,進行一些自然語言處理實戰。關注優達學城,私信回復關鍵詞 NLP (注意是大寫),領取全套「StanfordNLP」官方文檔。
  • NLP研究入門之道:自然語言處理簡介
    而機器翻譯到現在仍無法與人類翻譯水平相比,從此可以看出自然語言處理有多麼困難!自然語言處理興起於美國。第二次世界大戰之後,二十世紀五十年代,當電子計算機還在襁褓之中時,利用計算機處理人類語言的想法就已經出現。當時,美國希望能夠利用計算機將大量俄語材料自動翻譯成英語,以窺探蘇聯科技的最新發展。
  • NLP自然語言處理組
    黃書劍 副教授、博士生導師、江蘇省優青主頁:http://nlp.nju.edu.cn/huangsj/        分析理解人類語言是人工智慧的重要問題之一。南京大學自然語言處理課題組從事NLP領域研究工作近40年,國內最早從事該領域研究的科研團體之⼀,先後承擔過該領域的國家科技攻關項目、863項目、國家自然科學基金和江蘇省自然科學基金以及對外合作項目的研製,積累了大量的該領域研究工作所涉及到的理論、技術和經驗。
  • 中文NLP福利!大規模中文自然語言處理語料
    新智元推薦來源:AINLP作者:徐亮【新智元導讀】本文介紹一個中文自然語言處理語料庫項目:nlp_chinese_corpus ,初步貢獻了幾個已經預處理好的中文語料,包括維基、新聞和百科語料,可直接下載使用。
  • Awesome-Chinese-NLP:中文自然語言處理相關資料
    推薦Github上一個很棒的中文自然語言處理相關資料的Awesome資源:Awesome-Chinese-NLP ,Github連結地址,點擊文末
  • 史丹福大學NLP組Python深度學習自然語言處理工具Stanza試用
    眾所周知,史丹福大學自然語言處理組出品了一系列NLP工具包,但是大多數都是用Java寫得,對於Python用戶不是很友好。
  • 教你用Python進行自然語言處理(附代碼)
    自然語言處理是數據科學中的一大難題。在這篇文章中,我們會介紹一個工業級的python庫。自然語言處理(NLP)是數據科學中最有趣的子領域之一,越來越多的數據科學家希望能夠開發出涉及非結構化文本數據的解決方案。儘管如此,許多應用數據科學家(均具有STEM和社會科學背景)依然缺乏NLP(自然語言處理)經驗。
  • NLP Chinese Corpus項目:大規模中文自然語言處理語料
    作者徐亮(實在智能算法專家) 創建了一個中文自然語言處理語料庫項目:nlp_chinese_corpus ,初步貢獻了幾個已經預處理好的中文語料,包括維基、新聞和百科語料。希望大家一起為該項目貢獻語料,感興趣的同學可以直接關注該項目github地址,和作者直接聯繫,點擊文末"閱讀原文"直達github連結,可下載相關語料:大規模中文自然語言處理語料 Large Scale Chinese Corpus for NLPhttps://github.com/brightmart/nlp_chinese_corpus為中文自然語言處理領域發展貢獻語料
  • 【NLP】自然語言處理基礎微課程|語言學午餐
    小編痛下決心,同黑龍江大學自然語言處理實驗室(微信公眾號ID:hlju_nlp,在今天的另一則推送中專文介紹)的小夥伴們合作,計劃在本學期完成一門介紹自然語言處理的「微課程」。該課程將於下周三(9月17日)正式上線。下文是課程大綱,歡迎大家按時「上課」!