Word2Vec——使用GloVe训练中文词向量
准备语料
准备好相关的中文语料库。
此外, 采用Leavingseason提供的预处理好的中文语料库进行训练。

准备源码
可从GitHub存储位置https://github.com/stanfordnlp/GloVe获取斯坦福GloVe开源代码包;解压完成后,请将包含语料的(txt文件)放置于GloVe-master文件夹中。

修改训练语料地址
执行 demo.sh 文件,并对其中的部分内容进行设置。
由于该脚本默认会从网络上获取语料用于训练,
若希望使用自己准备的素材进行训练,
应注释掉相应的代码行以避免影响本地数据加载。

修改参数设置,将CORPUS设置成语料的名字
CORPUS=text8 要生成词向量的文本
VOCAB_FILE=vocab.txt 得到的词和词频
COOCCURRENCE_FILE=cooccurrence.bin
COOCCURRENCE_SHUF_FILE=cooccurrence.shuf.bin
BUILDDIR=build
SAVE_FILE=vectors
VERBOSE=2
MEMORY=4.0 内存
VOCAB_MIN_COUNT=5 最小词频数
VECTOR_SIZE=50 词向量维度
MAX_ITER=15 训练迭代次数
WINDOW_SIZE=15 上下文窗口数
BINARY=2 保存文件类型(2进制)
NUM_THREADS=8 线程数
X_MAX=10
代码解读
执行bash文件
进入到主文件夹下
make
代码解读

bash demo.sh
代码解读

需要注意的是:较大的训练数据会导致运行时间延长;为了确保资源稳定运行,请考虑使用nohup来执行程序
nohup bash demo.sh >output.txt 2>&1 &
代码解读
经过训练后会生成一个名为vetors.txt的文件,在打开文档的第一行插入vacob_size和vector_size这两个变量名的同时,在打开文档的第一行插入这两个变量名的同时,在打开文档的第一行插入这两个变量名的同时,在打开文档的第一行插入这两个变量名的同时,在打开文档的第一行插入这两个变量名的同时,
这样做的原因是为了确保后续使用word2vec模型的load函数能够顺利加载这些参数并完成向量词表示的学习过程。
与此同时,在训练过程中可以看到这些参数的具体数值和更新情况,
因此建议在开始模型训练前先准备好必要的配置参数设置,
以便后续能够更好地控制模型的学习过程和结果输出。

参数说明
导航至glove目录后建议先参考README.txt文件中对本程序进行了详细说明,并其中主要介绍了该程序包含四个关键组件:词向量统计(vocab_count)、余弦相似度计算(cooccur)、数据随机化处理(shuffle)以及最终生成结果(glove)。
-
vocab_count 负责计算输入文本中的词汇频率统计,并将结果以每行"单词 词频"的形式保存至 vocab.txt 文件中。
-
cooccur 负责统计词语之间的共现关系,在类似 word2vec 模型中考虑窗口内任意两个连续出现的词语,并将这些共现关系存储为 cooccurrence.bin 的二进制文件。
-
shuffle 对 cooccur 产生的共现结果进行重新排序处理;ord2vec 模型则在此基础上考虑窗口内任意两个连续出现的词语,并将这些信息存储为 cooccurrence.bin 的二进制文件。
-
randomization: 对2中的共现结果进行重新排列 -
glove: glove算法的训练过程涉及相关文件(1&3),最终将输出两个向量文件:vectors.txt(可以直接访问) 和 vectors.bin(二进制格式),下文将重点研究vectors.txt
