- 使用之前做完處理的 wiki_seg.txt
- 用 GloVe 訓練詞向量,需要有四個步驟 vocab_count → cooccur → shuffle → glove
vocab_count
$ $ build/vocab_count -min-count 5 -verbose 2 < wiki_seg.txt > zh_wiki_vocab
vocab_count
從語料庫(wiki_seg.txt
)中統計詞頻
輸出文件 zh_wiki_vocab
,每行為詞語 詞頻
-min-count 5
指詞頻低於5的我們不要
-verbose 2
控制 terminal 印出訊息,設為 0 表示不輸出
cooccur
$ build/cooccur -memory 4.0 -vocab-file zh_wiki_vocab -verbose 2 -window-size 5 < wiki_seg.txt> zh_wiki_cooccurence.bin
cooccur
從語料庫中統計一起出現的詞
輸出文件 zh_wiki_cooccurence.bin
,格式為非文本的二進制
-memory 4.0
指bigram_table
緩衝器
-vocab-file
指上一步得到的文件
-verbose 2
同上
-window-size 5
指詞窗口大小
shuffle
$ build/shuffle -memory 4.0 -verbose 2 < zh_wiki_cooccurence.bin >zh_wiki_shuff.bin
shuffle
對 zh_wiki_cooccurence.bin
重新整理
輸出文件zh_wiki_shuff.bin
GloVe
$ build/glove -save-file zh_wiki_glove.vectors -threads 8 -input-file zh_wiki_shuff.bin -vocab-file zh_wiki_vocab -x-max 10 -iter 5 -vector-size 300 -binary 2 -verbose 2
glove
訓練模型,輸出詞向量文件。
-save-file
→ zh_wiki_glove.vectors
-threads
→ 8
-input-file
→ zh_wiki_shuff.bin
-vocab-file
→ zh_wiki_vocab
-iter
表示迭代次數
-vector-size
表示向量維度大小
-binary
控制輸出格式0: save as text files; 1: save as binary; 2: both
訓練後得到的二進制詞向量模型格式與原始 c 版本 word2vec 的 vector 格式也相同,可以通過統一的方法加載使用。