R:LDA Topicmodels-条款的分布在哪里?
主题是TermDocumentMatrix中术语=单词的多项式分布。使用k=5的标准数据集作为主题数R:LDA Topicmodels-条款的分布在哪里?,r,tm,topic-modeling,R,Tm,Topic Modeling,主题是TermDocumentMatrix中术语=单词的多项式分布。使用k=5的标准数据集作为主题数 library(topicmodels) data("AssociatedPress", package = "topicmodels") k <- 5 lda <- LDA(AssociatedPress[1:20,], control = list(alpha = 0.1), k) lda中似乎没有存储我所需数据的对象。我知道gamma给出了文档中主题的分布,但是我如何访问
library(topicmodels)
data("AssociatedPress", package = "topicmodels")
k <- 5
lda <- LDA(AssociatedPress[1:20,], control = list(alpha = 0.1), k)
lda中似乎没有存储我所需数据的对象。我知道gamma给出了文档中主题的分布,但是我如何访问术语中主题的分布?看起来beta在fit对象中以k*n矩阵的形式返回。因此,您可以通过以下方式检查与lda的通话: 这些条款也在那里lda@terms,因此您可以使用它们创建一个数据框来查找特定的数据框:
betas <- data.frame(t(lda@beta))
betas$term <- lda@terms
names(betas) <- c(paste("topic", seq(k), sep="."), "term")
head(betas)
如果你浏览更多的表格,你会看到哪些术语的beta值不是-100。例如:
> betas[19,]
topic.1 topic.2 topic.3 topic.4 topic.5 term
19 -181.7717 -176.7156 -6.919684 -196.3646 -6.398595 able
您可以使用posteriorlda$术语查看主题在术语上的后验分布
betas <- data.frame(t(lda@beta))
betas$term <- lda@terms
names(betas) <- c(paste("topic", seq(k), sep="."), "term")
head(betas)
topic.1 topic.2 topic.3 topic.4 topic.5 term
1 -100 -100 -100 -100 -100 aaron
2 -100 -100 -100 -100 -100 abandon
3 -100 -100 -100 -100 -100 abandoned
4 -100 -100 -100 -100 -100 abandoning
5 -100 -100 -100 -100 -100 abbott
6 -100 -100 -100 -100 -100 abboud
> betas[19,]
topic.1 topic.2 topic.3 topic.4 topic.5 term
19 -181.7717 -176.7156 -6.919684 -196.3646 -6.398595 able
library(topicmodels)
data("AssociatedPress", package = "topicmodels")
lda <- LDA(AssociatedPress[1:20,], control = list(alpha = 0.1), k = 2)
terms <- as.data.frame(t(posterior(lda)$terms))
head(terms)
1 2
aaron 3.720076e-44 3.720076e-44
abandon 3.720076e-44 3.720076e-44
abandoned 3.720076e-44 3.720076e-44
abandoning 3.720076e-44 3.720076e-44
abbott 3.720076e-44 3.720076e-44
abboud 3.720076e-44 3.720076e-44