Word2Vec、FastText、Glove训练词向量及使用

Word2Vec词向量训练及使用

Word2Vec的词向量训练在先前的 使用word2vec训练中文维基百科 文章中已经有详细的介绍,这里就不作过多的重复。主要流程为编译后进行训练:

Word2vec模型的使用

使用 unicode_errors=’ignore’ 参数主要是为解决此报错问题:

输出内容:

Fasttext词向量训练与使用

同样在训练之前需要先对官方提供的工具进行编译和安装:

在使用前,我们现来看看示例训练代码word-vector-example.sh:

其中,核心代码为:

训练参数含义:

参考链接:https://fasttext.cc/docs/en/options.html

最终训练指令为:

Fasttext词向量使用

输出内容:

Glove词向量训练与使用

使用Glove训练的方法有很多种,这里介绍的是官方提供的C语言版本。在训练之前首先要下载源码并编译:

编译完成后默认会在glove目录下生成一个 build 目录,里面生成了4个训练需要用到的工具:

在介绍如何使用这些工具前先来看下示例训练代码demo.sh的内容:

从示例代码可以知道,训练总共分为4步,对应上面的四个工具,顺序依次为vocab_count –> cooccur –> shuffle –> glove:

每一步的作用:

  • vocab_count:从语料库$CORPUS中统计词频(备注:中文语料要先分好词),输出文件$VOCAB_FILE。每行为词语 词频 ,-min-count 5指示词频低于5的词舍弃,-verbose 2控制屏幕打印信息的,设为0表示不输出。
  • cooccur:从语料库中统计词共现,输出文件为$COOCCURRENCE_FILE,格式为非文本的二进制,-memory 4.0指示bigram_table缓冲器,-vocab-file指上一步得到的文件,-verbose 2同上,-window-size 5指示词窗口大小。
  • shuffle:对$COOCCURRENCE_FILE重新整理,输出文件$COOCCURRENCE_SHUF_FILE
  • glove:训练模型,输出词向量文件。-save-file、-threads、-input-file和-vocab-file直接按照字面应该就可以理解了,-iter表示迭代次数,vector-size表示向量维度大小,-binary控制输出格式0: save as text files; 1: save as binary; 2: both

Glove词向量使用

Glove想要在gensim中使用前需要先将其转换为word2vec模型,具体流程为:

输出内容:

总结

针对同一份数据,Glove和Fasttext的训练时间较短,Word2Vec训练耗时较长。其结果看,Glove训练后的结果有些奇怪,感觉没有达到语义相关,更多体现在共现上。

其他参考资料:

微信支付标点符 wechat qrcode
支付宝标点符 alipay qrcode

分层时间记忆HTM学习笔记

分层时间记忆算法(Hierarchical Temporal Memory),全称HTM Cortical L

Expedia异常检测项目Adaptive Alerting

Adaptive Alerting(AA)是Expedia开源的异常检测项目,整个项目也是完整一套监控体系,包

格兰杰因果关系检验学习笔记

格兰杰因果关系检验简介 格兰杰因果关系检验(英语:Granger causality test)是一种假设检定

发表评论

电子邮件地址不会被公开。 必填项已用*标注