AttributeError:' list'对象没有属性'单词'在python gensim模块中

时间:2018-01-04 07:15:55

标签: python machine-learning nlp gensim doc2vec

在使用doc2vec进行培训时,我收到了此错误:

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

这是我的代码:

# Extracting titles from csv to list
with open(query+'_titles.csv', 'rb') as f:
    reader = csv.reader(f)
    titlelist = list(reader)
# build
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 。必须有一些我真正缺少的东西。

1 个答案:

答案 0 :(得分:1)

Doc2Vec不仅需要句子列表,还需要标记的句子列表。来自this discussion on DS.SE

  

word2vec中,没有必要标记单词,因为每个单词   在词汇表中有自己的语义。但是如果是的话   doc2vec,需要指定多少个单词或   句子传达语义,因此算法可以   将其识别为单个实体。出于这个原因,我们正在指定   句子或段落的标签或标签取决于级别   传达了语义。

因此,Gensim期待以下输入:

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

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