我有一个1字的文档,我想将其转换成其词袋表示法:
所以doc
是['party']
,而id2word.doc2bow(doc)
是[(229, 1)]
,这意味着该单词是已知的。
但是,如果我用get_document_topics()
呼叫doc_bow
,结果将是一个空列表:
id2word = lda.id2word
# ..
doc_bow = id2word.doc2bow(doc)
t = lda.get_document_topics(doc_bow)
try:
label, prob = sorted(t, key=lambda x: -x[1])[0]
except Exception as e:
print('Error!')
raise e
我在这里唯一可能的解释是,该文档(单个单词)无法分配给 any 主题。这是我看到这个的原因吗?
答案 0 :(得分:0)
这是我解决此问题的方法:
在文件gensim / models / ldamodel.py中,您需要将epsilon的值编辑为更大的值。
DTYPE_TO_EPS = {
np.float16: 1e-5,
np.float32: 1e-35, #line to change
np.float64: 1e-100,
}
还要确保将get_document_topics的minimum_probability参数设置为非常小的值。