word2vector 使用方法 計算語義相似度


參考:http://techblog.youdao.com/?p=915#LinkTarget_699
word2vector是一個把詞轉換成詞向量的一個程序,能夠把詞映射到K維向量空間,甚至詞與詞之間 的向量操作還能和語義相對應。如果換個思路,把詞當做feature,那么word2vec就可以把feature映射到K維向量空間,

一、什么是 word2vec? 

采用的模型有 CBOW(Continuous Bag-Of-Words,即連續的詞袋模型)和 Skip-Gram 兩種

word2vec 通過訓練,可以把對文本內容的處理簡化為 K 維向量空間中的向量 運算,而向量空間上的相似度可以用來表示文本語義上的相似度。

。因此,word2vec 輸出的詞向量可以被用來做很多 NLP 相關的工作,比如聚類、找同義詞、詞性分 析等等

二、快速入門

簡單介紹cmake makefile.txt → makefile make的關系

首先編寫一個與平台無關的CMakelist.txt文本文件,這個文本文件是為了制定整個編譯流程,然后通過cmake path(makelist.txt所在位置,在這個目錄下就是 dian .) 生成本地化的Makefile文件 ,最后make 編譯文件

總的來說就是

  1. 編寫cmakelist.txt(跨平台的文件來制定整個編譯流程)
  2. cmake .生成本地化的makefile
  3. make 編譯 word2vec 工具

然后你想運行***腳本就sh ***.sh

demo-word.sh 中的代碼如下,

主要工作為:

1) 編譯(make)

2) 下載訓練數據 text8,如果不存在。text8 中為一些空格隔開的英文單 詞,但不含標點符號,一共有 1600 多萬個單詞。

3) 訓練,大概一個小時左右,取決於機器配置

4) 調用 distance,查找最近的詞  

 

上github下載之后,打開文件夾你能看到很多.sh的腳本

這時候除了開心就是開心

因為運行腳本就ok了

首先敲入 make   (由於有makefile文件直接這樣就可以了 更何況沒有makelist.txt cmake 也沒有用)

簡單介紹cmake makefile.txt → makefile make的關系

首先編寫一個與平台無關的CMakelist.txt文本文件,這個文本文件是為了制定整個編譯流程,然后通過cmake path(makelist.txt所在位置,在這個目錄下就是 dian .) 生成本地化的Makefile文件 ,最后make 編譯文件

總的來說就是

  1. 編寫cmakelist.txt(跨平台的文件來制定整個編譯流程)
  2. cmake .生成本地化的makefile
  3. make

然后你想運行***腳本就sh ***.sh

比如說我想知道一個詞與誰的距離最近

這個腳本里的內容首先會檢查你有沒有test8這個訓練語料

如果沒有它會自動下載,

下載之后就開始訓練了

之后你可以輸入三個單詞

paris france berlin(分開的)

之后你會看到Germany出現在第一個位置

如果你不想運行腳本你也可以直接執行可執行的程序 比如:你可以在vectors.txt看到test8中的詞轉成了50維的詞向量

nohup ./word2vec -train text8 -output vectors.txt -cbow 1 -size 50 -window 8 -negative 25 -hs 0 -sample 1e-4 -threads 20 -iter 1 > test.log 2>&1 &

總之一句話,認真看腳本。。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM