lda.collapsed.gibbs.sampler模型和热门词汇排名

时间:2014-01-24 20:33:28

标签: r statistics lda

我有一个由lda包中的函数 lda.collapsed.gibbs.sampler 生成的模型,我需要知道顶部单词的“相关性”。 使用

    top.topic.words(result$topics, 10, by.score=TRUE)

我得到了每个主题的前10个单词列表,但是我希望看到这10个单词所代表的主题的百分比。我猜信息存在,因为有一个“得分”,但我并不熟悉Gibbs采样器的统计方法。

提前致谢!

1 个答案:

答案 0 :(得分:3)

我认为这样的事情可能就是你想要的:

for (ii in 1:nrow(result$topics)) {
  print(
    head(
      cumsum(
        sort(result$topics[ii,], decreasing=TRUE)
      ),
      n = 20
    ) / result$topic_sums[ii]
  ) 
}

让我们分解吧。如果你想要吉布斯分配的一小部分,那么这很容易。 LDA例程返回每个(字,主题)对的赋值数。所以你要做的就是对result$topics的每一行进行排序以得到顶部单词(这基本上是top.topic.words设置by.score=FALSE时的作用。按照排序顺序排列后,您可以看到,对于每个主题,该单词与整个主题的计数有多少。为此,我除以result$topic_sums,其中包含该主题的总分配数。最后,我使用cumsum,以便您可以看到该主题中单词的运行总重量。