如何使用 r 中的整洁文本进行二元语法主题建模?
How to do bi-grams topic modeling using tidy text in r?
所以我尝试按照 tidytext 网站上的步骤使用 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
我在 tidy text 网站上没有看到 bi-grams 的主题建模教程,该教程专门针对 unigrams .我应该如何调整格式以使其与 bi-grams 一起使用?
1:您从cast_dtm收到的消息实际上来自cast_sparse。 github 上有两个问题,#120 和#121 处理这个问题。目前这已在 github 的软件包中修复,但尚未发布。
如果需要,您可以使用 devtools::install_github("juliasilge/tidytext")
从 github 安装它。
2:你从LDA得到的错误与1无关。如果你只是运行 out_LDA <- LDA(lda_dtm, k = k)
LDA会运行就好了。问题出在你的控制选项thin
。这应该小于或等于 iter 参数。在您的情况下,它设置为 500,而 iter 设置为 300。因此出现错误。可以看到thin比iter大1时出现的错误。
所以我尝试按照 tidytext 网站上的步骤使用 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
我在 tidy text 网站上没有看到 bi-grams 的主题建模教程,该教程专门针对 unigrams .我应该如何调整格式以使其与 bi-grams 一起使用?
1:您从cast_dtm收到的消息实际上来自cast_sparse。 github 上有两个问题,#120 和#121 处理这个问题。目前这已在 github 的软件包中修复,但尚未发布。
如果需要,您可以使用 devtools::install_github("juliasilge/tidytext")
从 github 安装它。
2:你从LDA得到的错误与1无关。如果你只是运行 out_LDA <- LDA(lda_dtm, k = k)
LDA会运行就好了。问题出在你的控制选项thin
。这应该小于或等于 iter 参数。在您的情况下,它设置为 500,而 iter 设置为 300。因此出现错误。可以看到thin比iter大1时出现的错误。