1. 环境及语料
1.1 环境
- Python
- GloVe
1.2 语料
- 处理之后的中文Wiki
处理步骤参考我的这篇博客:使用中文维基百科进行Word2Vec实验。处理之后得到文件:corpus.zhwiki.segwithb.txt
2. 实验
2.1 GloVe
- 获取GloVe,命令:wget http://www-nlp.stanford.edu/software/GloVe-1.2.zip
- j解压缩:unzip GloVe-1.2.zip
- cd GloVe-1.2
- make
2.2 vocab_count
- 命令:build/vocab_count -min-count 3 -verbose 2 < corpus.zhwiki.segwithb.txt > zhs_wiki_vocab
vocab_count从语料库(corpus.zhwiki.segwithb.txt是上面第一步处理好的语料库)中统计词频,输出文件 zhs_wiki_vocab,每行为词语 词频;-min-count 5指示词频低于5的词舍弃,-verbose 2控制屏幕打印信息的,设为0表示不输出
2.3 cooccur
- 命令:build/cooccur -memory 4.0 -vocab-file zhs_wiki_vocab -verbose 2 -window-size 5 < corpus.zhwiki.segwithb.txt > zhs_wiki_cooccurence.bin
cooccur 从语料库中统计词共现,输出文件 zhs_wiki_cooccurence.bin,格式为非文本的二进制;-memory 4.0指示bigram_table缓冲器,-vocab-file指上一步得到的文件,-verbose 2同上,-window-size 5指示词窗口大小。
2.4 shuffle
- 命令: build/shuffle -memory 4.0 -verbose 2 < zhs_wiki_cooccurence.bin > zhs_wiki_shuff.bin
shuffle 对 zhs_wiki_cooccurence.bin 重新整理,输出文件zhs_wiki_shuff.bin
2.5 Training
- 命令:build/glove -save-file zhs_wiki_glove.vectors.300d.txt -threads 8 -input-file zhs_wiki_shuff.bin -vocab-file zhs_wiki_vocab -x-max 10 -iter 5 -vector-size 300 -binary 2 -verbose 2
glove 训练模型,输出词向量文件。-save-file 、-threads 、-input-file 和-vocab-file 直接按照字面应该就可以理解了,-iter 表示迭代次数,-vector-size 表示向量维度大小,-binary 控制输出格式0: save as text files; 1: save as binary; 2: both
可以根据自己的需求选择训词向量的维度,常选择100、200、300维