Я только недавно начал использовать LDA в своей работе, однако каждый раз, когда я использовал LDA (в R), возвращаемые темы в основном эквивалентны в высших терминах.По сути, есть только одна скрытая тема, которую можно отличить от моих результатов.Эта проблема возникала последовательно на разных наборах данных, разных тем и разных источников.Примечание: все наборы данных находятся в 10000 строк - возможно, они слишком малы?
Я использую этот код;
data_DL_dtm <- NPS_Clientidentified %>%
filter(!is.na(Comment)) %>%
unnest_tokens(word, Comment) %>%
anti_join(stop_words) %>%
anti_join(custom_stop_words) %>%
count(`Full Name`, word) %>%
cast_dtm(`Full Name`, word, n)
nrow(data_DL_tidy)
DL_lda <- LDA(data_DL_dtm, k = 3, control = list(seed = 1234))
DL_topics <- tidy(DL_lda, matrix="beta")
DL_top_terms <- DL_topics %>%
group_by(topic) %>%
top_n(10, beta) %>%
ungroup() %>%
arrange(topic, -beta)
DL_top_terms %>%
mutate(term = reorder(term, beta)) %>%
ggplot(aes(term, beta, fill = factor(topic))) +
geom_col(show.legend = FALSE) +
facet_wrap(~ topic, scales = "free") +
coord_flip()
Что дает мне это:
https://i.imgur.com/zE2SeFX.png
Я бы не ожидал, что система будет отображаться как верхний термин для каждой темы.
Я что-то здесь упускаю?ИЛИ есть ли способ улучшить мои модели LDA?