【NLP】預訓練詞向量

玩轉詞向量:用fastText預訓練向量做個智能小程序 

我沒有訓練任何機器學習模型,而是下載了使用 fastText 庫創造的預訓練英語詞向量:https://fasttext.cc/docs/en/english-vectors.html。這些向量是在英語文本上訓練的,但和人類不一樣,這個學習算法沒有任何預先的英語知識。在閱讀維基百科幾個小時之後,它很好地學習到了英語語法以及很多真實世界概念之間的語義關係。只要文本足夠,它也能使用德語、泰語、漢語或其它任何語言做到這一點。

n-gram 和將詞表示爲向量等思想已經存在了很長時間,但直到 2013 年 Word2vec 的論文和實現發表之後(https://arxiv.org/abs/1301.3781),才表明這些方法「能以遠遠更低的計算成本實現準確度的極大提升」。Tomas Mikolov 爲 Word2Vec 和 fastText 這兩個項目都立下過汗馬功勞。我現在纔開始學習,但好事不嫌晚。

 

如何使用“預訓練的詞向量”,做文本分類

IMDB數據集的解釋

Google詞向量word2vec的使用

  • 在自然語言處理中常常使用預訓練的word2vec,這個預訓練的詞向量可以使用google的GoogleNews-vectors-negative300.bin
  • ​​GoogleNews-vectors-negative300.bin是訓練好的300維的新聞語料詞向量
  • 本函數的作用:將詞轉換成詞向量。沒有在該word2vec中的詞采用其他的方式構建,如採用均勻分佈或者高斯分佈等隨機初始化。

 

再理解一波“預訓練詞向量”

因爲兩者訓練的語料不一樣, Pre-Trained GloVe 做了比較多的pre-process, 然後word2vec 沒有做. 然後大部分downstream task 都是處理過的詞,用GloVe 確實要好一些。從算法角度,這兩東西半斤八兩,但release 出來的pre-trained embedding,GloVe的pre-processing對細節處理更好一些。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章