AttributeError: ‘list’ object has no attribute ‘words’ in python gensim module

在使用doc2vec训练时,我遇到了以下错误:

AttributeError: 'list' object has no attribute 'words' in python gensim module

这是我的代码:

# 从csv文件中提取标题到列表中with open(query+'_titles.csv', 'rb') as f:    reader = csv.reader(f)    titlelist = list(reader)# 构建模型model = doc2vec.Doc2Vec(size=30, window=1, alpha=0.01, min_count=2, sample=1e-5, workers=100)model.build_vocab(titlelist)titlearray = np.asarray(titlelist)print 'Training Model...'

我使用的是Python 2.7.11,gensim版本是3.2.0,如果这有帮助的话。一定是我遗漏了什么重要的东西。


回答:

Doc2Vec不仅需要句子列表,还需要带有标签的句子列表。根据DS.SE上的讨论

word2vec中,不需要给词语标记标签,因为每个词在词汇表中都有自己的语义含义。但在doc2vec的情况下,需要指定多少个词或句子传达一个语义含义,以便算法能够将其识别为一个单一实体。因此,我们根据传达的语义含义的层次,为句子或段落指定标签或标记。

因此,Gensim期望以下输入:

sentences = [doc2vec.TaggedDocument(sentence, 'tag') for sentence in titlelist]model.build_vocab(sentences)

显然,您可能希望根据句子设置不同的标签,以获得有意义的向量。顺便问一下,您确定要以二进制模式读取CSV文件吗?

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注