1、词向量建模的word2vec模型和用于长文本向量建模的doc2vec模型
在Gensim中实现word2vec模型非常简单。首先,我们需要将原始的训练语料转化成一个sentence的迭代器;每一次迭代返回的sentence是一个word(utf8格式)的列表:
classMySentences(object):def __init__(self, dirname):
self.dirname=dirnamedef __iter__(self):for fname inos.listdir(self.dirname):for line inopen(os.path.join(self.dirname, fname)):yieldline.split()
sentences= MySentences('/some/directory') #a memory-friendly iterator
接下来,我们用这个迭代器作为输入,构造一个Gensim内建的word2vec模型的对象(即将原始的one-hot向量转化为word2vec向量):
model = gensim.models.Word2Vec(sentences)
我们也可以指定模型训练的参数,例如采用的模型(Skip-gram或是CBoW);负采样的个数;embedding向量的维度等。
Word2vec对象还支持online learning。我们可以将更多的训练数据传递给一个已经训练好的word2vec对象,继续更新模型的参数:
model = gensim.models.Word2Vec.load('/tmp/mymodel')
model.train(more_sentences)
若要查看某一个word对应的word2ve