首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于R text2vec包和LDAvis在shinyApp中的LDA主题模型

基于R text2vec包和LDAvis在shinyApp中的LDA主题模型
EN

Stack Overflow用户
提问于 2018-09-11 04:58:59
回答 1查看 840关注 0票数 1

下面是使用R text2vec包进行LDA主题建模的代码:

代码语言:javascript
复制
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()“绘制lda_model$plot()。

谢谢你,山姆

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-11 08:01:44

私有字段出于某种目的是私有的--它们是专门为用户隐藏的,而不是公共API的一部分(将来可以很容易地更改或删除)。将LDAvis嵌入到一个闪亮的应用程序的正确方法是将LDAvis json存储在磁盘上,然后在一个闪亮的应用程序中打开它。就像应该起作用的东西:

代码语言:javascript
复制
lda_model$plot(out.dir = "SOME_DIR", open.browser = FALSE)

在闪亮的:

代码语言:javascript
复制
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函数

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52268925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档