TypeError: 'numpy.float32' object is not iterable - Shuang0420/Shuang0420.github.io GitHub Wiki

这是在用gensim的doc2vec时infer向量遇到的错误。

错误代码

# infer the vector
doc_words1=['今天','有','啥','奖励']
invec1 = model.infer_vector(doc_words1, alpha=0.1, min_alpha=0.0001, steps=5)
sims = model.docvecs.most_similar(invec1)
print sims

错误

Traceback (most recent call last):
  File "doc2vecTest.py", line 66, in 
    sims= model.docvecs.most_similar(invec1)
  File "/usr/local/lib/python2.7/site-packages/gensim/models/doc2vec.py", line 484, in similarity
    return dot(matutils.unitvec(self[d1]), matutils.unitvec(self[d2]))
  File "/usr/local/lib/python2.7/site-packages/gensim/models/doc2vec.py", line 341, in __getitem__
    return vstack([self[i] for i in index])
  File "/usr/local/lib/python2.7/site-packages/gensim/models/doc2vec.py", line 341, in __getitem__
    return vstack([self[i] for i in index])
TypeError: 'numpy.float32' object is not iterable

解决

# infer the vector
doc_words1=['今天','有','啥','奖励']
invec1 = model.infer_vector(doc_words1, alpha=0.1, min_alpha=0.0001, steps=5)
sims = model.docvecs.most_similar([invec1])
print sims
⚠️ **GitHub.com Fallback** ⚠️