我不理解lda.collapsed.gibbs.sampler命令的输出部分。 我不明白的是为什么不同主题中相同单词的数字不同? 例如,为什么单词" test"当主题8得到37个时,第二个主题中有4个。不同主题中相同单词的数量是否应该是相同的整数或0?
或者我是否误解了某些内容并且这些数字不代表主题中的单词数量?
$topics
tests-loc fail test testmultisendcookieget
[1,] 0 0 0 0
[2,] 0 0 4 0
[3,] 0 0 0 0
[4,] 0 1 0 0
[5,] 0 0 0 0
[6,] 0 0 0 0
[7,] 0 0 0 0
[8,] 0 0 37 0
[9,] 0 0 0 0
[10,] 0 0 0 0
[11,] 0 0 0 0
[12,] 0 2 0 0
[13,] 0 0 0 0
[14,] 0 0 0 0
[15,] 0 0 0 0
[16,] 0 0 0 0
[17,] 0 0 0 0
[18,] 0 0 0 0
[19,] 0 0 0 0
[20,] 0 0 0 0
[21,] 0 0 0 0
[22,] 0 361 1000 0
[23,] 0 0 0 0
[24,] 0 0 0 0
[25,] 0 0 0 0
[26,] 0 0 0 0
[27,] 0 0 0 0
[28,] 0 1904 12617 0
[29,] 0 0 0 0
[30,] 0 0 0 0
[31,] 0 0 0 0
[32,] 0 1255 3158 0
[33,] 0 0 0 0
[34,] 0 0 0 0
[35,] 0 0 0 0
[36,] 1 0 0 1
[37,] 0 1 0 0
[38,] 0 0 0 0
[39,] 0 0 0 0
[40,] 0 0 0 0
[41,] 0 0 0 0
[42,] 0 0 0 0
[43,] 0 0 0 0
[44,] 0 0 0 0
[45,] 0 2 0 0
[46,] 0 0 0 0
[47,] 0 0 0 0
[48,] 0 0 4 0
[49,] 0 0 0 0
[50,] 0 1 0 0
这是我运行的代码。
library(lda)
data=read.documents(filename = "data.ldac")
vocab=read.vocab(filename = "words.csv")
K=100
num.iterations=100
alpha=1
eta=1
result = lda.collapsed.gibbs.sampler(data, K,vocab, num.iterations, alpha,eta, initial = NULL, burnin = NULL, compute.log.likelihood = FALSE,trace = 0L, freeze.topics = FALSE)
options(max.print=100000000)
result
PS。很抱歉这篇长文和我的英文不好。
答案 0 :(得分:3)
LDA中的主题分布就是:多项分布。这些对应于上面的矩阵行。在任何给定主题中查看单词的概率不限于任何主题的固定值(或零)。也就是说,'test'这个词在一个主题中可能有3%的发生率,在另一个主题中发生的几率为1%。
n.b。如果要将矩阵转换为概率,只需将行标准化并添加先前的平滑常量。这里的函数只返回上次吉布斯采样扫描中的原始分配数。