【问题标题】:Why Gensim doc2vec give AttributeError: 'list' object has no attribute 'words'?为什么 Gensim doc2vec 给出 AttributeError: 'list' object has no attribute 'words'?
【发布时间】:2016-04-14 16:23:41
【问题描述】:

我正在尝试使用以下代码来试验 gensim doc2vec。据我从教程中了解到,它应该可以工作。但是它给出了 AttributeError: 'list' object has no attribute 'words'。

from gensim.models.doc2vec import LabeledSentence, Doc2Vec
document = LabeledSentence(words=['some', 'words', 'here'], tags=['SENT_1']) 
model = Doc2Vec(document, size = 100, window = 300, min_count = 10, workers=4)

那么我做错了什么?请提供任何帮助。谢谢你。我正在使用 python 3.5 和 gensim 0.12.4

【问题讨论】:

标签: python-3.x gensim word2vec


【解决方案1】:

gensim.models.doc2vec 的输入应该是LabeledSentence 上的迭代器(比如一个列表对象)。试试:

model = Doc2Vec([document], size = 100, window = 1, min_count = 1, workers=1)

我减小了 windowmin_count 的大小,以便它们对给定的输入有意义。如果您还没有,也可以在Doc2Vec 上阅读这个不错的教程。

【讨论】:

  • 感谢您的帮助。但我得到了这个错误。溢出错误:Python int 太大而无法转换为 C long。你知道为什么吗?谢谢。
  • 您在哪一步收到此错误?你能发布你的错误跟踪吗?
  • 我认为它在下面:文件“C:\Anaconda3\envs\sandbox\lib\site-packages\gensim\models\word2vec.py”,第 944 行,在 seeded_vector 中一次 = random.RandomState (uint32(self.hashfxn(seed_string))) OverflowError: Python int too large to convert to C long
  • 您的输入与问题中的输入相同吗?请提供 MCVE (stackoverflow.com/help/mcve)
  • 是的。 from gensim.models.doc2vec import LabeledSentence, Doc2Vec document = LabeledSentence(words=['some', 'words', 'here'], tags=['SENT_1']) model = Doc2Vec([document], size = 100, window = 1,min_count = 1,workers=1)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 2020-06-17
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 2015-09-26
相关资源
最近更新 更多