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







