Advertisement

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)。

  1. vocab_count 负责计算输入文本中的词汇频率统计,并将结果以每行"单词 词频"的形式保存至 vocab.txt 文件中。

  2. cooccur 负责统计词语之间的共现关系,在类似 word2vec 模型中考虑窗口内任意两个连续出现的词语,并将这些共现关系存储为 cooccurrence.bin 的二进制文件。

  3. shuffle 对 cooccur 产生的共现结果进行重新排序处理;ord2vec 模型则在此基础上考虑窗口内任意两个连续出现的词语,并将这些信息存储为 cooccurrence.bin 的二进制文件。

  4. randomization: 对2中的共现结果进行重新排列

  5. glove: glove算法的训练过程涉及相关文件(1&3),最终将输出两个向量文件:vectors.txt(可以直接访问) 和 vectors.bin(二进制格式),下文将重点研究vectors.txt

全部评论 (0)

还没有任何评论哟~