词向量实践(gensim)

Posted cyandn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了词向量实践(gensim)相关的知识,希望对你有一定的参考价值。

词向量训练步骤:

  1. 分词并去停用词
  2. 词频过滤
  3. 训练

 

项目完整地址:https://github.com/cyandn/practice/tree/master/Word2Vec

 

gensim中Word2Vec参数解释:

技术图片

主要参数介绍如下:

  1. sentences:我们要分析的语料,可以是一个列表,或者从文件中遍历读出(word2vec.LineSentence(filename) )。
  2. size:词向量的维度,默认值是100。这个维度的取值一般与我们的语料的大小相关,如果是不大的语料,比如小于100M的文本语料,则使用默认值一般就可以了。如果是超大的语料,建议增大维度。
  3. window:即词向量上下文最大距离,window越大,则和某一词较远的词也会产生上下文关系。默认值为5,在实际使用中,可以根据实际的需求来动态调整这个window的大小。如果是小语料则这个值可以设的更小。对于一般的语料这个值推荐在[5;10]之间。
  4. sg:即我们的word2vec两个模型的选择了。如果是0, 则是CBOW模型;是1则是Skip-Gram模型;默认是0即CBOW模型。
  5. hs:即我们的word2vec两个解法的选择了。如果是0, 则是Negative Sampling;是1的话并且负采样个数negative大于0, 则是Hierarchical Softmax。默认是0即Negative Sampling。
  6. negative:即使用Negative Sampling时负采样的个数,默认是5。推荐在[3,10]之间。
  7. cbow_mean:仅用于CBOW在做投影的时候,为0,则算法中的xw为上下文的词向量之和,为1则为上下文的词向量的平均值。
  8. min_count:需要计算词向量的最小词频。这个值可以去掉一些很生僻的低频词,默认是5。如果是小语料,可以调低这个值。
  9. iter:随机梯度下降法中迭代的最大次数,默认是5。对于大语料,可以增大这个值。
  10. alpha:在随机梯度下降法中迭代的初始步长。算法原理篇中标记为η,默认是0.025。
  11. min_alpha: 由于算法支持在迭代的过程中逐渐减小步长,min_alpha给出了最小的迭代步。

 

存在的问题:

感觉 stop_words.txt 停用词去的有点狠。。

 

以上是关于词向量实践(gensim)的主要内容,如果未能解决你的问题,请参考以下文章

gensim加载词向量文件

基于词向量匹配的对话系统 工程实践

自然语言处理之使用gensim.Word2Vec训练词向量进行词义消歧

Gensim Word2Vec 从预训练模型中选择少量词向量

如何将 Gensim doc2vec 与预训练的词向量一起使用?

python gensim使用word2vec词向量处理英文语料