技术应用:word2vec实验

数据来源

中文维基百科数据下载:
zhwiki-latest-pages-articles.xml.bz2
enwiki-latest-pages-articles.xml.bz2

抽取文章正文

  • Ubuntu 18
  • Python 3
sudo apt-get install python3-pip
pip3 install setuptools
git clone https://github.com/attardi/wikiextractor.git
cd wikiextractor/
sudo python setup.py install
python3 wikiextractor/WikiExtractor.py -b 1000M -o result.txt zhwiki-latest-pages-articles.xml

分词

这里我们使用HanLP进行的分词

注意:需要将繁体中文转换成简体中文, 然后进行分词

计算模型

注意:需要下载并编译好环境

./word2vec -train tt.txt -output vectors.bin -cbow 1 -size 80 -window 5 -negative 80 -hs 0 -sample 1e-4 -threads 20 -binary 1 -iter 15

  • tt.txt是刚才分词后的输出文件
  • vectors.bin是训练后输出的文件
  • cbow 0表示不使用cbow模型,默认为Skip-Gram模型。
  • size 80 每个单词的向量维度是80,
  • window 5 训练的窗口大小为5就是考虑一个词前五个和后五个词语(实际代码中还有一个随机选窗口的过程,窗口大小小于等于5)。
  • negative 0 不适用NEG方法
  • hs 1 不使用NEG方法,使用HS方法。
  • sampe指的是采样的阈值,如果一个词语在训练样本中出现的频率越大,那么就越会被采样。
  • binary为1指的是结果二进制存储,为0是普通存储(普通存储的时候是可以打开看到词语和对应的向量的)。

验证模型

训练完成后,执行命令:
./distance vectors.bin

posted @ 2020-04-20 08:28  duchaoqun  阅读(275)  评论(0编辑  收藏  举报