r - R中潜在狄利克雷分配(LDA)中特定TOPIC的TERM概率是多少

标签 r lda topic-modeling topicmodels

我在 R 中工作,包“topicmodels”。我正在努力锻炼并更好地理解代码/包。在我阅读的大多数教程和文档中,我看到人们用 5 或 10 个最可能的术语来定义主题。 这是一个例子:

    library(topicmodels)
    data("AssociatedPress", package = "topicmodels")
    lda <- LDA(AssociatedPress[1:20,],  k = 5)
    topics(lda)
    terms(lda)
    terms(lda,5)

所以代码的最后一部分返回与我定义的 5 个主题相关的 5 个最可能的术语。

在 lda 对象中,我可以访问 gamma 元素,其中包含每个文档属于每个主题的概率。因此,基于此我可以提取概率大于我喜欢的任何阈值的主题,而不是为每个人提供相同数量的主题。

但我的第二步是了解哪些词与主题关联最强。我可以使用 terms(lda) 函数来提取它,但这给了我这么多 N。

在输出中我还找到了

    lda@beta

其中包含每个主题每个单词的 beta,但这是一个 Beta 值,我很难解释它。它们都是负值,虽然我看到一些值在 -6 左右,另一些在 -200 左右,但我不能将其解释为概率或度量来查看哪些词以及某些词与主题的关联程度。有没有一种方法可以提取/计算任何可以解释为此类度量的内容。

非常感谢 弗雷德里克

最佳答案

beta 矩阵为您提供维度为#topics x #terms 的矩阵。这些值是对数似然,因此您对它们进行了 exp。给定概率的类型 P(word|topic) 和这些概率加起来只有 1 如果你对单词求和而不是对主题 P(all words|topic) = 1 而不是 P(word|all topics) = 1。 您正在搜索的是 P(topic|word) 但实际上我不知道如何在这种情况下访问或计算它。我猜你需要 P(word) 和 P(topic)。 P(主题)应该是: colSums(lda@gamma)/sum(lda@gamma)

如果您查看 Gamma 矩阵,它会变得更加明显,即#document x #topics。给定的概率是 P(topic|document),可以解释为“给定文档 y,主题 x 的概率是多少”。所有主题的总和应该是 1 但不是所有文档的总和。

关于r - R中潜在狄利克雷分配(LDA)中特定TOPIC的TERM概率是多少,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43982970/

相关文章:

r - "Ops"组通用方法和 match.call 用于延迟评估

r - 数据框和 is.nan()

nlp - LDA对于短文本有什么缺点?

r - 主题模型: cross validation with loglikelihood or perplexity

R中的行采样

r - R randomForest rfcv 方法实际上是否说明选择了哪些特征?

python - scikit-learns LDA 函数中的错误 - 绘图显示非零相关

stop-words - 使用主题模型,我们应该如何设置一个 "stop words"列表?

topic-modeling - MALLET 中 Topic Models 的增量训练

python-3.x - 如何创建附加主题建模可视化?