Производительность модели темы LDA - реализация когерентности темы для scikit-learn - PullRequest
0 голосов
/ 30 августа 2018

У меня есть вопрос об измерении / расчете согласованности тем для моделей LDA, встроенных в scikit-learn.

Тема согласованности является полезным показателем для измерения интерпретируемости человеком данной тематической модели LDA. CoherenceModel от Gensim позволяет рассчитывать когерентность темы для данной модели LDA (включены несколько вариантов).

Меня интересует использование LDA * scikit-learn LDA , а не LDA * gensim для простоты использования и документирования ( примечание: я хотел бы избежать использования gensim для scikit -обучить обертку, т.е. фактически использовать LDA склеарна). По моим исследованиям, похоже, нет научного эквивалента Gensim CoherenceModel.

Есть ли способ либо:

1 - Подача модели LDA scikit-learn в конвейер gensim CoherenceModel, либо путем ручного преобразования модели scikit-learn в формат gensim, либо через оболочку scikit-learn в оболочку gensim (я видел оболочку наоборот) для создания когерентности темы?

Или

2 - Вручную рассчитать согласованность тем из модели LDA scikit-learn и матриц CountVectorizer / Tfidf?

Я провел немало исследований по реализации для этого варианта использования в Интернете, но не видел каких-либо решений. Единственные выводы, которые у меня есть, - это документированные уравнения из научной литературы.

Если у кого-нибудь есть какие-либо знания о подобных реализациях, или если вы могли бы указать мне правильное направление для создания ручного метода для этого, это было бы здорово. Спасибо!

* Примечание: я понимаю, что в scikit-learn для измерения производительности доступны недоумение и логарифмическая вероятность, но это не так предсказуемо из того, что я прочитал.

Ответы [ 2 ]

0 голосов
/ 14 апреля 2019

Ввод модели LDA scikit-learn в конвейер CoherenceModel компании Gensim

Насколько я знаю, не существует "легкого способа" сделать это. Вам придется вручную переформатировать структуры данных sklearn, чтобы они были совместимы с gensim. Я не пытался сделать это сам, но это кажется мне ненужным шагом, который может занять много времени. Существует старая попытка Python 2.7 для gensim-sklearn-wrapper , на которую вы, возможно, захотите взглянуть, но она устарела - возможно, вы можете получить некоторую информацию / вдохновение от этого.

Вручную рассчитать согласованность тем из модели LDA Scikit-Learn и матриц CountVectorizer / Tfidf?

Суммирование векторов, в которых вы нуждаетесь, может быть легко достигнуто с помощью цикла. Вы можете найти примеры кода для «ручного» * ​​1013 * вычисления когерентности для NMF . Конечно, расчет зависит от конкретной меры, но sklearn должен довольно легко вернуть вам данные, необходимые для анализа.

Ресурсы

Мне неясно, почему вы бы категорически исключили gensim - конвейер когерентности тем довольно обширен, и документация существует.

См., Например, эти три руководства (в блокнотах Jupyter).

Формулы для нескольких мер когерентности можно найти в этой статье здесь .

0 голосов
/ 06 апреля 2019

Генсим - это эксклюзивная текстовая библиотека.

Это гораздо более мощный и многофункциональный инструмент для анализа текста.

Пожалуйста, проверьте,

LDA MALLET - это более точно, чем другие реализации LDA

РАСПРЕДЕЛЕННОЕ LDA - ускоряет LDA с помощью параллельного программирования

...