以下是使用R text2vec软件包进行LDA主题建模的代码:
library(text2vec)
tokens = docs$text %>% # docs$text: a colection of text documents
word_tokenizer
it = itoken(tokens, ids = docs$id, progressbar = FALSE)
v = create_vocabulary(it) %>%
prune_vocabulary(term_count_min = 10, doc_proportion_max = 0.2)
vectorizer = vocab_vectorizer(v)
dtm = create_dtm(it, vectorizer, type = "dgTMatrix")
lda_model = text2vec::LDA$new(n_topics = 10, doc_topic_prior = 0.1, topic_word_prior = 0.01)
doc_topic_distr = lda_model$fit_transform(x = dtm, n_iter = 1000,
convergence_tol = 0.001, n_check_convergence = 25,
progressbar = FALSE)
据我了解,有两组变量,分别命名为public和private,请参见下图:
我想知道如何访问“ doc_len”的私有变量。我尝试了lda_model $ doc_len和lda_model $ private $ doc_len,但是它们返回了“ NULL”。
我需要的原因是命令“ lda_model $ plot()”在R控制台中绘制LDAvis,但是我需要在我自己的闪亮应用程序页面中绘制它。为此,我想提取以下链接中讨论的以下函数的所有参数:“ https://github.com/cpsievert/LDAvis/issues/27”。
我感谢您的答复,并帮助您提取lda模型的私有参数或如何在自己的闪亮应用程序页面中使用“ lda_model $ plot()”绘制LDAvis。
谢谢, 山姆
答案 0 :(得分:1)
出于某些目的,私有字段是私有的-它们专门为用户隐藏,而不是公共API的一部分(将来可以轻松更改或删除)。 将LDAvis嵌入到闪亮的应用程序中的正确方法是将LDAvis json存储在磁盘上,然后在闪亮的应用程序中将其打开。像这样的东西应该起作用:
lda_model$plot(out.dir = "SOME_DIR", open.browser = FALSE)
有光泽:
output$myChart <- renderVis(readLines("SOME_DIR/lda.json"))
之所以有效,是因为...
传递给了LDAvis::createJSON
和LDAvis::serVis
(如文档所述):
$plot(lambda.step = 0.1, reorder.topics = FALSE, ...)
使用https://cran.r-project.org/package=LDAvis包绘制LDA模型。 ...将被传递给LDAvis :: createJSON和LDAvis :: serVis函数