3

我训练了一个 gensim.models.doc2vec.Doc2Vec 模型
d2v_model = Doc2Vec(sentences, size=100, window=8, min_count=5, workers=4) 我可以通过 docvec = d2v_model.docvecs[0] 获取文档向量

如何从训练有素的模型中获取词向量?

4

2 回答 2

13

Doc2Vec 继承自 Word2Vec,因此您可以像在 Word2Vec 中一样直接通过索引模型来访问词向量:

wv = d2v_model['apple']

但是请注意,像纯 DBOW ( dm=0) 这样的 Doc2Vec 训练模式不需要或创建词向量。(纯 DBOW 仍然可以很好地和快速地用于许多目的!)如果您确实从这样的模型访问词向量,它们将只是自动随机初始化的向量,没有任何意义。

只有当 Doc2Vec 模式本身共同训练词向量时,如在 DM 模式(默认dm=1)或在 DBOW ( dm=0, dbow_words=1) 中添加可选的词训练时,词向量和文档向量才会同时学习。

于 2016-05-28T19:20:29.660 回答
0

如果您想获得所有经过训练的文档向量,您可以轻松使用 model.docvecs.doctag_syn0. 如果要获取索引文档,可以使用model.docvecs[i]. 如果您正在训练 Word2Vec 模型,您可以获得model.wv.syn0. 如果您想获得更多信息,请查看此 github 问题链接:( https://github.com/RaRe-Technologies/gensim/issues/1513 )

于 2018-08-14T02:58:15.540 回答