get_document_topics()返回空主题列表

时间:2018-07-03 14:45:00

标签: gensim

我有一个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 主题。这是我看到这个的原因吗?

1 个答案:

答案 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参数设置为非常小的值。