2016-12-28 27 views
0

Как может быть или не быть очевидным из вопроса, я довольно новичок в R, и я мог бы немного помочь в этом.Возможно ли найти заднюю вероятность тем, сгенерированных с помощью LDAvis, встречающихся в данном документе? Как, если так?

При создании моделей темы я экспериментировал с LDA и LDAvis - кодом в (A) и (B) ниже. LDA в (A) позволяет мне найти заднюю вероятность тем, возникающих в каждом документе внутри моего корпуса, которые я использовал для запуска регрессий с переменными из других наборов данных. (B), подход генерации тем, использующий LDAvis, генерирует «лучшие», более согласованные темы, чем через (A), но мне не удалось выяснить, как найти заднюю вероятность тем, возникающих в данном документе с подходом LDAvis или свести его к минимуму как невыполнимую задачу.

Все советы приветствуются.

Спасибо!

()

set.seed(1) 
require(topicmodels) 
set.seed(1) 
P5LDA4 <- LDA(P592dfm, control=list(seed=1), k = 23) 
set.seed(1) 
terms(P5LDA4, k =30) 

#find posterior probability 
postTopics <- data.frame(posterior(P5LDA4)$topics) 
postTopics 

(B)

# MCMC and model tuning parameters: 
K <- 23 
G <- 5000 
alpha <- 0.02 
eta <- 0.02 
# convert to lda format 
dfmlda <- convert(newdfm, to = "lda") 
# fit the model 
library(lda) 
set.seed(1) 
t1 <- Sys.time() 
fit <- lda.collapsed.gibbs.sampler(documents = dfmlda$documents, K = K, 
           vocab = dfmlda$vocab, 
           num.iterations = G, alpha = alpha, 
           eta = eta, initial = NULL, burnin = 0, 
           compute.log.likelihood = TRUE) 
t2 <- Sys.time() 
t2 - t1 
#Time difference of 3.13337 mins 
save(fit, file = "./fit.RData") 
load("./fit.RData") 
library(LDAvis) 
set.seed(1) 
json <- createJSON(phi = t(apply(t(fit$topics) + eta, 2, function(x) x/sum(x))), 
       theta = t(apply(fit$document_sums + alpha, 2, function(x) x/sum(x))), 
       doc.length = ntoken(newdfm), 
       vocab = features(newdfm), 
       term.frequency = colSums(newdfm)) 
serVis(json, out.dir = "./visColl", open.browser = TRUE) 

ответ

0

В программном коде B, вы уже вычислить кзади при создании JSON.

  1. theta: матрица D × K является задней частью распространения документа.
  2. phi: матрица K × W является задней частью распределения по темам.

Надеюсь, что это поможет!