Doc2vec:model.docvecs的长度仅为10

时间:2017-12-21 16:27:44

标签: python nlp gensim doc2vec

我正在尝试doc2vec 600000行的句子,我的代码如下:

model = gensim.models.doc2vec.Doc2Vec(size= 100, min_count = 5,window=4, iter = 50, workers=cores)
model.build_vocab(res) 
model.train(res, total_examples=model.corpus_count, epochs=model.iter)

#len(res) = 663406

#length of unique words 15581
print(len(model.wv.vocab))

#length of doc vectors is 10
len(model.docvecs)

# each of length 100
len(model.docvecs[1])

我如何解释这个结果?为什么矢量长度只有10,每个尺寸为100?当'res'的长度是663406时,它没有意义。我知道这里有问题。

Understanding the output of Doc2Vec from Gensim package中,他们提到docvec的长度由“大小”决定,这一点并不清楚。

1 个答案:

答案 0 :(得分:2)

tags的{​​{1}}应该是一个标记列表。如果您改为提供字符串,例如TaggedDocument,则会将其视为与字符列表相同:

tags='73215'

最后,您的整个训练集中只有10个标签,只有10个不同组合的数字。

您的tags=['7', '3', '2', '1', '5'] 为100表示​​您在构建len(model.docvec[1])训练数据时没有完全出现此错误,但可能类似。

查看TaggedDocument中的第一项,查看其res属性是否合理,以及tags中的每一项,以查看正在使用的内容而不是您想要的内容。< / p>