1

这是使用 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)

据我了解,有两组变量,分别命名为公共和私有,请参见下图:

在此处输入图像描述

我想知道如何访问“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。

谢谢,山姆

4

1 回答 1

3

私有字段是私有的,它们是专门为用户隐藏的,而不是公共 API 的一部分(将来可以轻松更改或删除)。将 LDAvis 嵌入到闪亮的应用程序的正确方法是将 LDAvis json 存储在磁盘上,然后在闪亮的应用程序中打开它。类似的东西应该可以工作:

lda_model$plot(out.dir = "SOME_DIR", open.browser = FALSE)

闪亮:

output$myChart <- renderVis(readLines("SOME_DIR/lda.json"))

这是有效的,因为...传递给LDAvis::createJSONLDAvis::serVis(如文档所述):

$plot(lambda.step = 0.1, reorder.topics = FALSE, ...)

使用https://cran.r-project.org/package=LDAvis包绘制 LDA 模型。... 将传递给 LDAvis::createJSON 和 LDAvis::serVis 函数

于 2018-09-11T08:01:44.770 回答