Word2vec實(shí)驗(yàn)
概述:實(shí)驗(yàn)測(cè)試了Google的word2vec (C版本)的源代碼,以及使用Twitter數(shù)據(jù)集重新進(jìn)行了測(cè)試
輸入 :源代碼給出的輸入文件為通過(guò)demo-word .sh給出的鏈接下載得到,大小約為100Mb,類型未知,網(wǎng)站和源代碼都沒有給出,但是dat文件(搜狗的新聞數(shù)據(jù))和txt文件(Twitter數(shù)據(jù))都可以運(yùn)行。
-
輸出 :輸出為一個(gè)vectors.bin文件
通過(guò)python程序轉(zhuǎn)碼之后變成txt文件,可以查看每一個(gè)單詞的向量
在當(dāng)前工作目錄下在terminal輸入./distance vectors.bin運(yùn)行后,輸入任意英文單詞,會(huì)返回相似的詞語(yǔ),按照預(yù)先距離從大到小排列
其中text8的詞匯表大小為71291,訓(xùn)練詞數(shù)為16718843,在運(yùn)行的過(guò)程中terminal就會(huì)顯示詞匯表大小“Vocab size:“和訓(xùn)練詞的大小“Words in train file:”
-
更換數(shù)據(jù)集 :更換數(shù)據(jù)集的代碼為./word2vec -train xxxx -output vectors.bin -cbow 0 -size 48 -window 5 -negative 0 -hs 1 -sample 1e-4 -threads 20 -binary 1 -iter 100
其中,-train text8 表示的是輸入文件是text8,-output vectors.bin 輸出文件是vectors.bin,-cbow 0表示不使用cbow模型,默認(rèn)為Skip-Gram模型。-size 48 每個(gè)單詞的向量維度是48,-window 5 訓(xùn)練的窗口大小為5,-negative 0 -hs 1不使用NEG方法,使用HS方法。-sampe指的是采樣的閾值,如果一個(gè)詞語(yǔ)在訓(xùn)練樣本中出現(xiàn)的頻率越大,那么就越會(huì)被采樣。-binary為1指的是結(jié)果二進(jìn)制存儲(chǔ),為0是普通存儲(chǔ),-thread為線程數(shù), -iter為迭代次數(shù)。
本次更換為Twitter的數(shù)據(jù)集,文件類型為txt,大小約為100Mb,去除數(shù)字等無(wú)用數(shù)據(jù)之后,在terminal通過(guò)上述方式得到輸出文件vectors-ch.bin ,詞匯表大小為96301,訓(xùn)練詞數(shù)為9427804,轉(zhuǎn)換為twitter.txt后可以看到各個(gè)詞的詞向量
相同輸入得到的不同結(jié)果:
本次實(shí)驗(yàn)測(cè)試了look,father,school和java四個(gè)詞語(yǔ)
Twitter數(shù)據(jù)集結(jié)果:
look:
look-Twitter.png
father:
father-Twitter.png
school:
school-Twitter.png
java
java-Twitter.png
text數(shù)據(jù)集結(jié)果:
look:
look-text.png
father:
father-text.png
school:
school-text.png
java
java-text.png







