【问题标题】:Gensim doc2vec most similar gives unsupported operand type(s) errorGensim doc2vec 最相似给出不支持的操作数类型错误
【发布时间】:2019-03-22 15:08:47
【问题描述】:

当我尝试找出与我的示例文档最相似的文档时,我正在使用预训练的 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】:

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

    (另外:infer_document() 需要一个令牌列表,不是一个字符串。而且,这些令牌应该已经被预处理,就像任何训练数据用于训练模型。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-17
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多