gensim word2vec - 使用在线文字嵌入更新的数组维度

时间:2017-02-21 02:35:32

标签: python numpy gensim

来自gensim 0.13.4.1的Word2Vec在运行中更新单词向量不起作用。

autoSplits(4, 128)

工作正常;但是,

model.build_vocab(sentences, update=False)

没有。

我正在使用this website来尝试模仿他们所做的事情;因此我在某些时候使用以下脚本:

model.build_vocab(sentences, update=True)

然而,当它与model = gensim.models.Word2Vec() sentences = gensim.models.word2vec.LineSentence("./text8/text8") model.build_vocab(sentences, keep_raw_vocab=False, trim_rule=None, progress_per=10000, update=False) model.train(sentences) 一起运行时,使用update=False会给我以下追溯:

update=True

1 个答案:

答案 0 :(得分:10)

我能够重现你的错误。我认为当模型尚未训练时你正在调用update=True。你应该只在预先训练后调用它。

这有效:

import gensim

model = gensim.models.Word2Vec()
sentences = gensim.models.word2vec.LineSentence("text8")
model.build_vocab(sentences, update=False)
model.train(sentences)

model.build_vocab(sentences, update=True)
model.train(sentences)

但这会失败:

import gensim

model = gensim.models.Word2Vec()
sentences = gensim.models.word2vec.LineSentence("text8")
model.build_vocab(sentences, update=True)
model.train(sentences)

ValueError: all the input array dimensions except for the concatenation axis must match exactly

使用最新版本的gensim 0.13.4.1。