gensim:当我加载谷歌预训练的word2vec模型时,'Doc2Vec'对象没有属性'intersect_word2vec_format'



当我加载谷歌预先训练的word2vec以使用我自己的数据训练doc2vec模型时,我收到此错误。这是我代码的一部分:

model_dm=doc2vec.Doc2Vec(dm=1,dbow_words=1,vector_size=400,window=8,workers=4)
model_dm.build_vocab(document)
model_dm.intersect_word2vec_format('home/xxw/Downloads/GoogleNews-vectors-negative300.bin',binary=True)
model_dm.train(document)

但是我得到了这个错误:

"Doc2Vec"对象没有属性"intersect_word2vec_format">

你能帮我解决错误吗?我从 https://s3.amazonaws.com/dl4j-distribution/GoogleNews-vectors-negative300.bin.gz 那里得到了谷歌模型,我认为我的gensim是最新版本。

最近的重构使Doc2Vec不再与此方法共享超类。您也许可以在model_dm.wv对象上调用该方法,但我不确定。否则,如果您确实需要该步骤,您可以查看源代码并模仿代码以达到相同的效果。

但请注意,Doc2Vec不需要词向量作为输入:它可以从您自己的训练数据中学习所需的一切。来自其他地方的词向量是否有帮助将取决于很多因素 - 你自己的数据越大,或者越独特,来自其他地方的预加载向量就越少,甚至在你自己的训练完成时产生任何残余影响。

关于您的明显设置的其他注意事项:

  • dbow_words=1dm=1模式下不会有任何影响 - 该模式已经固有地训练了词向量。(它仅在dm=0DBOW 模式下有效,如果您需要词向量,它会添加额外的交错词训练。通常,没有词向量训练的普通 DBOW 是一种快速有效的选择。

  • 最新版本的 gensim 需要更多的参数来训练,并且请注意,使用此算法的典型已发布工作使用 10-20 次(有时更多(传递数据(可以通过epochs参数指定为train()(,而不是默认值(在某些版本的 gensim 中(5。

最新更新