目录

使用gensim训练word2vec模型--中文维基百科语料

文章简介:为了写论文,使用 gensim 训练 word2vec 模型,如下记录了进行训练的过程

准备

TODO

依赖准备

将 XML 的 Wiki 数据转换为 text 格式

  • pipenv run python 1_process.py build/zhwiki-latest-pages-articles.xml.bz2 build/wiki.zh.txt

31 分钟运行完成 282855 篇文章,得到一个 931M 的 txt 文件

中文繁体替换成简体

  • opencc-1.0.1-win32/opencc -i build/wiki.zh.txt -o build/wiki.zh.simp.txt -c opencc-1.0.1-win32/t2s.json

大约使用了 15 分钟

结巴分词

  • pipenv run python 2_jieba_participle.py

大约使用了 30 分钟

Word2Vec 模型训练

  • pipenv run python 3_train_word2vec_model.py

大约使用了 30 分钟,且全程 cpu 使用率达到 90%+

模型测试

  • pipenv run python 4_model_match.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
d:\Project\wiki_zh_word2vec (develop)
λ pipenv run python 4_model_match.py
国际足球 0.5256255865097046
足球队 0.5234458446502686
篮球 0.5108680725097656
足球运动 0.5033905506134033
国家足球队 0.494105726480484
足球比赛 0.4919792115688324
男子篮球 0.48382389545440674
足球联赛 0.4837716817855835
体育 0.4835757911205292
football 0.47945135831832886

查看结果

可以使用 linux 的 head 或者 tail 命令查看运行的结果。

  • head -n 100 wiki.zh.simp.txt > wiki.zh.simp_head_100.txt,直接查看 wiki.zh.simp_head_100.txt 即可
  • 没有 head 命令,可以安装gow,或者直接下载cmder,进入就可以使用 head 命令了

结果

  • 至此,使用 python 对中文 wiki 语料的词向量建模就全部结束了,wiki.zh.text.vector 中是每个词对应的词向量,可以在此基础上作文本特征的提取以及分类。所有代码都已上传至本人 GitHub中,欢迎指教!
  • 感谢AimeeLee77,其代码为 Python2,我的项目exfly/wiki_zh_word2vec已经完全迁移到 python3,并向AimeeLee77提交了 pull request
  • wiki_zh_word2vec