在 shinyApp 中使用 R text2vec 包和 LDAvis 的 LDA 主题模型
LDA topic model using R text2vec package and LDAvis in shinyApp
这是使用 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,但我需要在我自己闪亮的应用程序页面中绘制它。为此,我想提取下面 link 中讨论的以下函数的所有参数:“https://github.com/cpsievert/LDAvis/issues/27”。
非常感谢您的回复和帮助提取 lda 模型的私有参数或如何在自己闪亮的应用程序页面中使用 "lda_model$plot()" 绘制 LDAvis。
谢谢,
山姆
私有字段出于某种目的是私有的 - 它们专门为用户隐藏,而不是 public API 的一部分(将来可以轻松更改或删除)。
将 LDAvis 嵌入 shiny app 的正确方法是将 LDAvis json 存储在磁盘上,然后在 shiny app 中打开它。类似的东西应该有效:
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, ...)
plot LDA model using https://cran.r-project.org/package=LDAvis package. ... will be passed to LDAvis::createJSON and LDAvis::serVis functions
这是使用 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,但我需要在我自己闪亮的应用程序页面中绘制它。为此,我想提取下面 link 中讨论的以下函数的所有参数:“https://github.com/cpsievert/LDAvis/issues/27”。
非常感谢您的回复和帮助提取 lda 模型的私有参数或如何在自己闪亮的应用程序页面中使用 "lda_model$plot()" 绘制 LDAvis。
谢谢, 山姆
私有字段出于某种目的是私有的 - 它们专门为用户隐藏,而不是 public API 的一部分(将来可以轻松更改或删除)。 将 LDAvis 嵌入 shiny app 的正确方法是将 LDAvis json 存储在磁盘上,然后在 shiny app 中打开它。类似的东西应该有效:
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, ...)
plot LDA model using https://cran.r-project.org/package=LDAvis package. ... will be passed to LDAvis::createJSON and LDAvis::serVis functions