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

2022-03-30 02:31:30 字數 1846 閱讀 1726

參考:

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 編譯檔案

總的來說就是

編寫cmakelist.txt(跨平台的檔案來制定整個編譯流程)

cmake .生成本地化的makefile

make 編譯 word2vec 工具

然後你想執行***指令碼就sh ***.sh

demo-word.sh 中的**如下,

主要工作為:

1) 編譯(make)

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

4) 呼叫 distance,查詢最近的詞  

這時候除了開心就是開心

因為執行指令碼就ok了

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

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

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

總的來說就是

編寫cmakelist.txt(跨平台的檔案來制定整個編譯流程)

cmake .生成本地化的makefile

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 &

總之一句話,認真看指令碼。。。。

word2vector入門教程

w2v參考文章1 另外一篇是關於skip gram和cbow的介紹。skip gram cbow 邏輯比較清晰的綜述文章 綜述文章 數學原理很清晰很短的一篇文章 也有關於負取樣的簡單說明 參考文章 我們先來看乙個問題,假如有乙個句子 the dog bark at the mailman 假如用向量...

word2vector 理解入門

我們先來看乙個問題,假如有乙個句子 the dog bark at the mailman 假如用向量來表示每個單詞,我們最先想到的是用one hot 編碼的方式來表達每個單詞,具體來說。the 可以表示為 1,0,0,0,0 dog 可以表示為 0,1,0,0,0 bark 可以表示為 0,0,1...

word2vector的原理,結構,訓練過程

之前用word2vector模型,上網找原理,出現各種csdn上的解答。看了一下,都是copy某個人寫的東西,而且什麼cbow,什麼skip gram,什麼哈夫曼樹,層次softmax,概念很多,繞都給繞暈了。看了很多遍,只知道個大概,具體還是沒看懂。今天重新整理關於word2vector的原理。以...