Gensim LDA模型Phi值含义解析及文档词-主题概率验证
关于Gensim LdaModel.get_document_topics返回值的疑问
问题背景
从文档视角出发,想要获取Gensim LdaModel中每个文档对应的主题词概率,运行以下代码后得到结果:
lda_model = LdaModel(corpus, id2word=dictionary, num_topics=50) # phi relevance of the document 1 phi_doc1 = lda_model.get_document_topics(corpus[1], minimum_probability=0.05, per_word_topics=True)[2] phi_doc1 --- [(52, [(8, 19.999924)]), (69, [(8, 666.9981)]), (241, [(8, 30.999844)]), (482, [(8, 0.9999151)]), (593, [(8, 5.9999304)])]
查看帮助文档后仍有疑惑:
Phi relevance values, multiplied by the feature length,
for each word-topic combination.
Each element in the list is a pair of a word's id and
a list of the phi values between this word and each topic...
解答
返回值的具体含义
这个返回值是词-主题的phi关联值乘以该词在当前文档中的出现次数,结构拆解如下:
- 外层列表的每个元素是元组
(词ID, [(主题ID, 计算后关联值)]) - 每个元组里的数值,是原始phi关联值(代表词与主题的关联概率)乘以该词在当前文档中的出现次数(即特征长度)
- 你设置了
minimum_probability=0.05,所以只有主题概率超过0.05的词-主题组合会被保留,结果里所有组合都对应主题8,说明文档1中只有主题8的概率达标
是否为“文档层面的主题对应词概率”
不是直接的概率值。如果要得到文档层面的词-主题概率,需要把返回的数值除以该词在当前文档中的出现次数,得到原始phi值——这个值可以理解为在给定当前文档和主题的条件下,生成该词的近似概率,或者说该词对这个主题的贡献概率。
举个例子:结果里词ID69对应的数值是666.9981,假设该词在文档1中出现了100次,那么原始phi值就是666.9981/100≈6.67,这个值反映了该词在文档1中与主题8的关联强度,数值越高,说明该词越能代表文档1中的主题8。
内容的提问来源于stack exchange,提问作者Leila
相关产品推荐
相关产品推荐

