当前位置:   article > 正文

Gensim之Word2Vec使用手册_train word2vec by yourself with gensim package

train word2vec by yourself with gensim package

1.介绍

一句话,Gensim中的Word2Vec类就是用来训练词向量的,这个类实现了词向量训练的两种基本模型skip-gramCBOW,可以通过后面的参数设置来选择。但是,在Gensim这个模块中训练词向量的方法还有很多:gensim.models.doc2vec.Doc2Vec,gensim.models.fasttext.FastText,gensim.models.wrappers.VarEmbed等等都能得到词向量。

2.Word2Vec类

2.1 Word2Vec类初始化参数

在下面介绍参数时,可能不会列举完,完整的参数见word2vec.py源码。
注:参数表这一列,等号右边的值表示默认值

参数表 含义
sentences=None 语料句子,必须是一个可迭代的(参见后面例子)
size=100 训练后词向量的维度
alpha=0.025 训练网络的初始学习率,之后会线性降低
min_alpha=0.0001 降低到最小的学习率
window=5 当前词和预测词之间的最大间隔
min_count=5 忽略词频<5的词语
max_vocab_size=None 限制最大词数,防止内存溢出
workers=3 设置线程数,越高训练速度(前提是你有这么多)
sg=0 训练模型的选择,1表示skip-gram,0表示CBOW
hs=0 训练网络代价函数的选择
iter=5 迭代次数

2.2 示例

2.2.1 训练及保存模型

# 示例1

from gensim.test.utils import common_texts
from gensim.models import Word2Vec

print(common_texts)
train_model = Word2Vec(common_texts, size=100, window=5, min_count=1, workers=4)
train_model.save('./MyModel')

train_model.wv.save_word2vec_format('./mymodel.txt', binary=False)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

训练模型

只需要给Word2Vec类赋上参数,就可以直接训练了。其中common_texts是一段内置的语料,如下:

[[‘human’, ‘interface’, ‘computer’], [‘survey’, ‘user’, ‘computer’, ‘system’, ‘response’, ‘time’], [‘eps’, ‘user’, ‘interface’, ‘system’], [‘system’, ‘human’, ‘system’, ‘eps’], [‘user’, ‘response’, ‘time’], [‘trees’], [‘graph’, ‘trees’], [‘graph’, ‘minors’, ‘trees’], [‘graph’, ‘minors’, ‘survey’]]

可以看到整体格式是[['A','B'],['C','D','E']],其中这个list表示所有的文本(此处表示2个文本,里面的A,B等表示单词,如果是中文则表示分词的结果,后面也会用中文演示)

保存模型

在示例1中,第8行和第10行都是用来保存训练模型的(简称save和format_save),而两者之间的相同点就是:都可以复用,即载入之后可以得到对应单词的词向量;不同点

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号