Может ли LDAvis анализировать результаты vowpal_wabbit LDA?

#lda #vowpalwabbit #pyldavis

#lda #vowpalwabbit #pyldavis

Вопрос:

LDAvis предоставляет отличный способ визуализации и изучения тематических моделей. LDAvis требует 5 параметров:

  1. phi (матрица с размерами, количество терминов умноженное на количество тем)
  2. тета (матрица с размерами, количество документов умноженное на количество тем)
  3. количество слов в документе (целочисленный вектор)
  4. словарь (вектор символов)
  5. частота слов во всем корпусе (целочисленный вектор)

Короткая версия моего вопроса такова: после установки модели 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 в целом).