Как сделать би-грамматическое моделирование темы, используя аккуратный текст в r? - PullRequest
0 голосов
/ 29 июня 2018

Поэтому я попытался использовать пакет tidytext для моделирования темы bigrams, выполнив шаги на веб-сайте tidytext: https://www.tidytextmining.com/ngrams.html.

Мне удалось добраться до части "word_counts", где R вычисляет частоту каждой биграммы.

"word_counts" вернул следующее:

   customer_id       word          n
   <chr>            <chr>        <int>
 1 00000001234  sample text        45
 2 00000002345  good morning       30
 3 00000003456  happy friday       24

Следующим шагом было поместить информацию сверху в формат dtm

Мой код указан ниже:

lda_dtm <- word_counts %>%
  cast_dtm(customer_id, word, n)

Предупреждение выдано:

Warning message:
Trying to compute distinct() for variables not found in the data:
- `row_col`, `column_col`
This is an error, but only a warning is raised for compatibility reasons.
The operation will return the input unchanged. 

Но «lda_dtm» выглядит в правильном формате.

lda_dtm
<<DocumentTermMatrix (documents: 9517, terms: 341545)>>
Non-/sparse entries: 773250/3249710515
Sparsity           : 100%
Maximal term length: NA
Weighting          : term frequency (tf)

Однако, когда я попытался запустить lda, это не сработало.

burnin <- 4000
iter <- 300
thin <- 500
seed <-list(2003,5,63,100001,765)
nstart <- 5
best <- TRUE
k <- 6

out_LDA <- LDA(lda_dtm, 
                            k = k, 
                            method="Gibbs", 
                            control = list(nstart=nstart, 
                                           seed = seed, 
                                           best=best, 
                                           burnin = burnin, 
                                           iter = iter, 
                                           thin = thin))

Было выдано следующее предупреждение:

Error in seq.default(CONTROL_i@iter, control@burnin + control@iter, by = control@thin) : 
  wrong sign in 'by' argument

Я не вижу учебника по моделированию тем на веб-сайте с текстами для текста bi-grams , учебник был специально для униграмм . Как мне отрегулировать формат, чтобы он работал с bi-грамм ?

1 Ответ

0 голосов
/ 29 июня 2018

1: сообщение, которое вы получаете от cast_dtm, на самом деле приходит от cast_sparse. Есть две проблемы, # 120 и # 121, на github, которые занимаются этим. На данный момент это исправлено в пакете на github, но это еще не релизы к крану.

Если хотите, вы можете установить его с github с помощью devtools::install_github("juliasilge/tidytext").

2: ошибка, которую вы получаете от LDA, не имеет ничего общего с 1. Если вы просто запустите out_LDA <- LDA(lda_dtm, k = k) LDA будет работать нормально. Проблема заключается в вашем варианте управления thin. Это должно быть меньше или равно значению параметра. В вашем случае это установлено как 500, а iter на 300. Отсюда и ошибка. Вы можете видеть ошибку, появляющуюся, когда thin на 1 выше, чем iter.

...