为什么我的潜在狄利克雷分配主题混合了从未同时出现的词?

数据挖掘 Python 主题模型 低密度脂蛋白
2021-10-13 02:46:01

我有一份关于糖尿病的文件,一份关于达芬奇的文件,还有一份关于动画和计算机图形的文件。我将所有这些文档组合成一个 LDA,并得到了一个类似下面的主题。我按降序列出了前 30 个术语。

TOPIC 83:['生产','公司','约翰','重量','运动','信息','绘画','原创','培训','人','健康','生活', 'jesus', 'feature', 'body', 'lucretia', 'computer', 'graphics', 'time', 'madonna', 'story', 'florence', 'type', 'animated', “保罗”、“糖尿病”、“动画”、“运动”、“彼得”、“电影”]

许多这些词在任何文档中都不会同时出现。例如,“lucretia”不会与“exercise”同时出现。然而,这些术语是如何在同一个主题中放在前 30 个单词中的呢?(大约 20K 字中的 30 个)

也许这与我的特定实现有关?我正在使用 Python 的gensim库。还是一般来说是LDA的缺陷?

2个回答

这可能部分是由于您选择的主题数量,但两个词在给定主题中排名靠前的事实并不一定意味着这两个词会经常出现在同一个文档中。考虑一个通常对应于“医学”的主题。您可能有许多与心脏病相关的医疗文件和许多与受伤相关的医疗文件。它们都可能通过“诊断”、“治疗”、“患者”等常用术语联系起来。但您不一定会期望“心脏”和“主动脉”等词会出现在包含“”等词的文档中扭伤”和“骨折”,尽管它们都与医学的一般话题有关。如果要选择更多的主题,

它通常是 LDA 的一个特性(我不会称之为缺陷)。通常,您会得到一些定义非常明确的主题和一些非常模糊的主题(最好称为“杂项”左右)。

我还建议不要过度解释主题建模中的主题。只是稍微改变一下(例如随机种子、取出一些文本、对语料库应用一些“小”修改)就会改变大量的主题。