Установка настраиваемых параметров в stm

Используя этот вариант:

library(quanteda)

dfmat_ire <- dfm(data_corpus_irishbudget2010)
library("quanteda.textmodels")
quant_dfm <- dfm(data_corpus_irishbudget2010,
                 remove_punct = TRUE, remove_numbers = TRUE,
                 remove = stopwords("english"))
set.seed(100)
if (require("stm")) {
    my_lda_fit20 <- stm(quant_dfm, K = 20, verbose = FALSE, init.type = "LDA")
    plot(my_lda_fit20)
}

Как можно установить параметры α и β для lda?


person Nathalie    schedule 23.06.2020    source источник


Ответы (1)


Похоже, вам нужно предоставить init.type = "Custom" и control=list(custom.beta=...). Из ссылки:

custom.beta Если init.type=Custom, вы можете передать свою собственную инициализацию бета-версии дистрибутивов тематических слов, чтобы использовать ее в качестве инициализации. Пожалуйста, обратите внимание, что это требует некоторой осторожности, чтобы быть уверенным, что он предоставляется в точно правильном формате. Количество тем и словарный запас должны точно совпадать. Словарь должен быть в том же порядке. Значения не должны быть патологическими (например, установка вероятности одного слова равной 0 во всех темах). Бета должна быть отформатирована так же, как часть возвращенного stm modelобъекта stmobj$beta$logbeta. Это должен быть список длины и количества уровней ковариаты содержимого. Каждый элемент списка представляет собой матрицу K на V, содержащую вероятность зарегистрированного слова в зависимости от темы. Если вы используете эту опцию, мы рекомендуем вам использовать max.em.its=0 со случайной инициализацией модели, проверить возвращенную форму stmobj$beta$logbeta и убедиться, что она соответствует вашей форме.

person slava-kohut    schedule 23.06.2020
comment
спасибо, а это опять вариант lda (латентный семантический анализ)? - person Nathalie; 23.06.2020
comment
Да. Хорошие сообщения здесь и здесь. - person slava-kohut; 23.06.2020