我在R中使用text2vec进行主题建模时正在寻找最佳主题数

时间:2019-10-11 21:19:22

标签: r text-mining lda topic-modeling

我正在对230k文本运行lda主题建模机制,同时大部分使用R中的text2vec库。

我看过一些教程,其中提到了如何使用不同的算法运行相干图,以便选择最佳的“ k”个主题herehere,但是没有一个匹配text2vec。在text2vec.org中,我可以得到一个教程,但是最后,他们鼓励我开始使用超参数,以便从中获得最佳的建模,但是我正在寻找所有可能选择中的真正最佳选择。

在建模之前预先掌握代码

library(text2vec)
library(SnowballC)
library(stringr)
#Define preprocessing function and tokenization function
prep_fun = function(x) {
       x %>% 
         str_to_lower                         %>%   #make text lower case
         str_replace_all("[^[:alpha:]]", " ") %>%   #remove non-alpha symbols - bye punctuation & #
         str_replace_all("\\s+", " ")         %>%   #collapse multiple spaces 
         str_replace_all("\\W*\\b\\w\\b\\W*", " ")  #Non individual letters
    }

tok_fun <- function(x) {
  tokens <- word_tokenizer(x)
  lapply(tokens, SnowballC::wordStem, language="en")
}

it_text <- itoken(data$text, 
                  preprocessor = prep_fun, 
                  tokenizer = tok_fun, 
                  ids = data$id,
                  progressbar = F)
vocab <- create_vocabulary(it_text, ngram = c(ngram_min = 1L, ngram_max = 3L), 
                          stopwords = stopwords)
pruned_vocab <- prune_vocabulary(vocab, 
                                term_count_min =  max(vocab$term_count)*.01, 
                                doc_proportion_max = 0.5,    
                                doc_proportion_min = 0.001)   
vectorizer <- vocab_vectorizer(pruned_vocab)
dtm <- create_dtm(text, vectorizer,type = "dgTMatrix", progressbar = FALSE)

0 个答案:

没有答案