Gensim doc2vec最相似的给出了不支持的操作数类型错误

问题描述 投票:0回答:1

当我试图找到与我的样本文档最相似的文档时,我正在使用预先训练的doc2vec模型。它给了我不支持的操作数类型错误。

from gensim.models import Doc2Vec

filename = "doc2vec.bin"
doc1 =["This is a sample document."]

model = Doc2Vec.load(filename)

inferred_vector = model.infer_vector(doc1)

sims = model.docvecs.most_similar(positive=[inferred_vector],topn=1)

print(sims)

这给了我以下错误

 File "D:\doc2vectest.py", line 10, in <module>
    sims = model.docvecs.most_similar(positive=[inferred_vector],topn=1)
  File "C:\Users\admin\Anaconda3\lib\site-packages\gensim\models\keyedvectors.py", line 1667, in most_similar
    self.init_sims()
  File "C:\Users\admin\Anaconda3\lib\site-packages\gensim\models\keyedvectors.py", line 1630, in init_sims
    self.vectors_docs_norm = _l2_norm(self.vectors_docs, replace=replace)
  File "C:\Users\admin\Anaconda3\lib\site-packages\gensim\models\keyedvectors.py", line 2346, in _l2_norm
    dist = sqrt((m ** 2).sum(-1))[..., newaxis]
TypeError: unsupported operand type(s) for ** or pow(): 'list' and 'int'
machine-learning nlp gensim word-embedding doc2vec
1个回答
0
投票

您预先训练的模型可能与您环境中的gensim版本不兼容。模型的起源在哪里?

(另外:infer_document()需要一个令牌列表,而不是一个字符串。并且,这些令牌应该与用于训练模型的任何训练数据完全相同地进行预处理。)

© www.soinside.com 2019 - 2024. All rights reserved.