记一次自己手写训练基于负采样的skip-gram的Word2vec。
从wki上获取了原始中文xml格式的数据,大约1.82G。
通过官方链接提供的文本抽取工具WikiExtractor.py,共抽取了1082567条词条。
由于数据量对于自己的模型太大,无法训练。便根据pku_sim_test.txt文件中的词频,概率抽取了140M的数据。
最终数据量如下:
句子总数:514078
总词数:21370318
(unique)词数:829062
词频词典、word2id字典、id2word字典
- word2vec中的路径“./data/wiki_zh_mini.txt”为分词后的语料文档。(由于太大[限制100M],无法上传)
- 所有的输出都放在的output文件中。
- 中间文件下采样后的数据、根据窗口采样后的数据也都保存下来了。
- 使用了多GPU进行训练。
- 效率很低,只适合小语料(玩)。
- 相似度存在负值,不知道为什么(虽然应该有),但gensim却没有。