我是 LDA 的新生,我想在我的工作中使用它。但是,也出现了一些问题。
为了获得最佳性能,我想估计最佳主题数。读完《寻找科学话题》后,我知道我可以先计算 logP(w|z),然后使用一系列 P(w|z) 的调和平均值来估计 P(w|T)。
我的问题是“一系列”是什么意思?
我是 LDA 的新生,我想在我的工作中使用它。但是,也出现了一些问题。
为了获得最佳性能,我想估计最佳主题数。读完《寻找科学话题》后,我知道我可以先计算 logP(w|z),然后使用一系列 P(w|z) 的调和平均值来估计 P(w|T)。
我的问题是“一系列”是什么意思?
不幸的是,没有硬科学可以为您的问题提供正确答案。据我所知,分层狄利克雷过程 (HDP)很可能是获得最佳主题数量的最佳方法。
如果您正在寻找更深入的分析,这篇关于 HDP的论文报告了 HDP 在确定组数方面的优势。
首先,有些人使用调和平均值来找到最佳主题数,我也尝试过,但结果并不令人满意。所以根据我的建议,如果你使用 R,那么包“ldatuning”将很有用。它有四个用于计算最优的指标参数数量。同样,基于困惑和对数似然的 V 折交叉验证也是最佳主题建模的非常好的选择。V 折交叉验证对于大型数据集来说有点耗时。您可以看到“A heuristic approach to determine a proper no.of topic在主题建模中”。重要链接: https ://cran.r-project.org/web/packages/ldatuning/vignettes/topics.html https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4597325/
设 k = 主题数
没有单一的最佳方法,我什至不确定是否有任何标准做法。
方法一:尝试不同的k值,选择可能性最大的那个。
方法二:代替LDA,看能不能用HDP-LDA
方法 3:如果 HDP-LDA 在您的语料库上不可行(由于语料库大小),则对您的语料库进行统一采样并在其上运行 HDP-LDA,取 HDP-LDA 给出的 k 值。对于围绕此 k 的小间隔,请使用方法 1。
由于我正在解决同样的问题,我只想添加 Wang 等人提出的方法。(2019) 在他们的论文《基于 LDA 的新闻文本主题识别模型优化》中。除了提供良好的概述外,他们还提出了一种新方法。首先训练一个 word2vec 模型(例如使用word2vec
包),然后应用能够找到密度峰值的聚类算法(例如从densityClust
包中),然后使用找到的聚类数作为 LDA 算法中的主题数。
如果时间允许,我会试试这个。我还想知道 word2vec 模型是否可以让 LDA 过时。