【问题标题】:lda.collapsed.gibbs.sampler model and top words rankinglda.collapsed.gibbs.sampler 模型和热门词排名
【发布时间】:2014-02-15 23:54:56
【问题描述】:

我有一个由函数 lda.collapsed.gibbs.sampler 生成的模型,来自 lda 包,我需要知道最重要的词的“相关性”。 使用时

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

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

提前致谢!

【问题讨论】:

  • 你能解释一下你所说的主题百分比是什么意思吗?您是指该主题产生任何这些单词的概率吗?或者可能是吉布斯分配给这些主题词对的部分?
  • 第二个,我想。我想知道这些词在这个话题中有多少“分量”。我不太确定它的正式表达方式:(

标签: r statistics lda


【解决方案1】:

我认为这样的东西可能是你想要的:

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 的每一行进行排序以获得最上面的单词(如果您设置by.score=FALSE,这基本上就是top.topic.words 所做的事情)。将其按排序顺序排列后,您就可以看到,对于每个主题,该词相对于整个主题出现了多少计数。为此,我除以 result$topic_sums,其中包含该主题的作业总数。最后,我使用cumsum,这样您就可以看到该主题中单词的运行总权重。

【讨论】:

    猜你喜欢
    • 2015-08-04
    • 2014-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 2010-10-30
    • 1970-01-01
    相关资源
    最近更新 更多