1. 技术应用:word2vec实验

1.1. 数据来源

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

1.2. 抽取文章正文

• 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

Copy

1.3. 分词

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

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

1.4. 计算模型

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

./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是普通存储(普通存储的时候是可以打开看到词语和对应的向量的)。

1.5. 验证模型

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