老实说,我对 LDA 并不熟悉,但我的一个项目需要使用 MALLET 的主题建模。
我的问题是:给定特定时间戳内的一组文档作为主题模型的训练数据,对于文档 + 或 - 训练数据的时间戳,使用模型(使用推理器)跟踪主题趋势有多合适. 我的意思是,如果在模型构建阶段,我们只提供我需要分析的数据集的一个子集,那么 MALLET 提供的主题分布是否是一个合适的指标来跟踪主题随时间的流行度。
谢谢。
你熟悉潜在语义索引吗?潜在狄利克雷分析只是做同样事情的不同方式,所以 LSI 或pLSI可能是获取有关 LDA 目标知识的更容易的起点。
所有这三种技术都以无监督的方式锁定主题(你告诉它要查找多少个主题),然后假设每个文档以不同的比例涵盖每个主题。根据您分配的主题数量,它们可能更像是您的语料库所涉及的子字段,并且可能不像人们在考虑新闻中的热门话题时所考虑的“主题”那样具体。
不知何故,我怀疑您想假设每个文档都代表一个特定的主题。LSI/pLSI/LDA 不这样做——它们将每个文档建模为主题的混合。这并不意味着你不会得到好的结果,或者这不值得尝试,但我怀疑(虽然我对 LSI 文献没有全面的了解)你会解决一个全新的研究问题.
(FWIW,我怀疑使用像k-Means这样的聚类方法更容易模拟每个文档只有一个主题的假设。)
您应该查看Princeton 的主题模型邮件列表。他们讨论与主题模型相关的理论和实践问题。
我知道随着时间的推移跟踪主题受欢迎程度的三种方法。
听起来您可能会从动态主题建模方法中受益,该方法着眼于主题如何随时间变化。这里有一个关于 Blei 工作的精彩视频概述,他的主页上有一堆 PDF 。他有一个C包可以做到这一点。
一个相关的方法是 Alice Oh 的主题字符串方法,她通过 LDA 从时间片中获取文本的主题,然后使用主题相似度度量将来自不同时间片的主题链接到字符串(视频、PDF)中。看起来 MALLET 可能是主题字符串分析的一部分,但她没有提到她是如何进行 LDA 分析的。
最简单的方法可能是 David Mimno 在他的论文中所做的,他根据主题中单词的时间分布来计算主题的平均年份。他参与了 MALLET 的开发,所以它可能完全是用那个包完成的。