#lda #vowpalwabbit #pyldavis
#lda #vowpalwabbit #pyldavis
Вопрос:
LDAvis предоставляет отличный способ визуализации и изучения тематических моделей. LDAvis требует 5 параметров:
- phi (матрица с размерами, количество терминов умноженное на количество тем)
- тета (матрица с размерами, количество документов умноженное на количество тем)
- количество слов в документе (целочисленный вектор)
- словарь (вектор символов)
- частота слов во всем корпусе (целочисленный вектор)
Короткая версия моего вопроса такова: после установки модели LDA с помощью vowpal wabbit, как получить phi и theta?
тета представляет собой смесь тем для каждого документа и, следовательно, должна составлять 1 для каждого документа. phi представляет вероятность термина, заданного темой, и, таким образом, должен составлять 1 для каждой темы.
После запуска LDA с помощью vowpal wabbit ( vw
) в модели сохраняются некоторые веса. Удобочитаемую версию этой модели можно получить, загрузив специальный файл с одним документом на термин в словаре при отключении обучения (по -t
параметру), например
vw -t -i weights -d dictionary.vw --readable_model readable.model.txt
Согласно документации vowpal wabbit, все столбцы ожидают, что первый из readable.model.txt
них теперь «представляет распределение тем по словам».
Вы также можете генерировать прогнозы с vw
помощью, т. Е. для набора документов
vw -t -i weights -d some-documents.txt -p predictions.txt
Оба predictions.txt
и readable.model.txt
имеют измерение, которое отражает количество входных данных (строк) и количество тем (столбцов), и ни одно из них не является распределением вероятностей, поскольку они не суммируются с 1 (ни по строке, ни по столбцу).
Я понимаю, что vw
это не для слабонервных и что с моей стороны потребуется некоторое программирование / написание сценариев, но я уверен, что должен быть какой-то способ получить theta и phi из некоторого вывода vw
. Я застрял на этой проблеме уже несколько дней, пожалуйста, дайте мне несколько советов.
Ответ №1:
Я не знаю, как напрямую использовать pyLDAvis с Vowpal Wabbit. Однако, поскольку вы уже используете инструмент python, вы могли бы использовать оболочку Gensim и pyLDAvis вместе.
Оболочка python для VowpalWabbit была предложена в gensim (<4.0.0). Вы можете просто использовать Gensim, как если бы вы обучали модель с помощью самого Gensim после использования vwmodel2ldamodel
.
Этот обходной путь может быть самым простым, если вы не знакомы с внутренними компонентами Vowpal Wabbit (и LDA в целом).