Тематическая модель LDA с использованием пакета R text2vec и LDAvis в блестящем приложении - PullRequest
0 голосов
/ 11 сентября 2018

Вот код для моделирования тем LDA с пакетом R text2vec:

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, пожалуйста, смотрите изображение ниже:

enter image description here

Мне интересно, как я могу получить доступ к закрытой переменной "doc_len".Я пробовал lda_model $ doc_len и lda_model $ private $ doc_len, но они вернули "NULL".

Причина, по которой мне нужно, заключается в том, что команда "lda_model $ plot ()" строит LDA в консоли R, но мне нужно отобразить ее на своей собственной блестящей странице приложения.Для этого я хочу извлечь все параметры для следующей функции, как описано в приведенной ниже ссылке: «https://github.com/cpsievert/LDAvis/issues/27".

Я ценю ваш ответ и помогаю либо для извлечения частных параметров модели lda, либо для построения графика LDAvis.с "lda_model $ plot ()" на собственной блестящей странице приложения.

Спасибо, Сэм

1 Ответ

0 голосов
/ 11 сентября 2018

Личные поля являются частными для определенной цели - они специально скрыты для пользователя и не являются частью публичного 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, ...)

построить модель LDA с использованием https://cran.r -project.org / package = LDAvis package. ... будет передано в функции LDAvis :: createJSON и LDAvis :: serVis

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...