【发布时间】:2018-04-05 11:40:24
【问题描述】:
我正在使用gensim 3.0.1。
我有一个 TaggedDocument 列表,其中包含 "label_17" 形式的唯一标签,但是当我训练 Doc2Vec 模型时,它以某种方式将标签拆分为符号,因此 model.docvecs.doctags 的输出如下:
{'0': Doctag(offset=5, word_count=378, doc_count=40),
'1': Doctag(offset=6, word_count=1330, doc_count=141),
'2': Doctag(offset=7, word_count=413, doc_count=50),
'3': Doctag(offset=8, word_count=365, doc_count=41),
'4': Doctag(offset=9, word_count=395, doc_count=41),
'5': Doctag(offset=10, word_count=420, doc_count=41),
'6': Doctag(offset=11, word_count=408, doc_count=41),
'7': Doctag(offset=12, word_count=426, doc_count=41),
'8': Doctag(offset=13, word_count=385, doc_count=41),
'9': Doctag(offset=14, word_count=376, doc_count=40),
'_': Doctag(offset=4, word_count=2009, doc_count=209),
'a': Doctag(offset=1, word_count=2009, doc_count=209),
'b': Doctag(offset=2, word_count=2009, doc_count=209),
'e': Doctag(offset=3, word_count=2009, doc_count=209),
'l': Doctag(offset=0, word_count=4018, doc_count=418)}
但是在标记文档的初始列表中,每个文档都有自己唯一的标签。
模型训练的代码如下:
model = Doc2Vec(size=300, sample=1e-4, workers=2)
print('Building Vocabulary')
model.build_vocab(data)
print('Training...')
model.train(data, total_words=total_words_count, epochs=20)
因此,我无法像 model.docvecs['label_17'] 这样为我的文档编制索引并获取 KeyError。
如果我将数据传递给构造函数而不是构建词汇表,也会发生同样的事情。
为什么会这样?谢谢。
【问题讨论】:
标签: python-3.x gensim doc2vec