Вопрос или проблема
Я работаю над созданием нескольких моделей Top2Vec на потоках Reddit. В основном я изменяю размеры кластеров HDBScan, чтобы получить разные кластеры встраиваний Doc2Vec, представляющие разное количество тем.
Я пытаюсь сравнить разные модели, используя их оценку согласованности. Я пытался использовать оценку согласованности Gensim, но неудачно. Я получил сообщение об ошибке, указывающее, что слово в темах не включено в словарь.
Я также пытался использовать tmtooklit. Хотя я легко получил матрицу терминов документов (DTM), мне не удалось получить распределение слов по темам, используя Top2Vec.
Вопросы:
- Могу ли я решить любую из указанных выше проблем (получить словарь, чтобы перечислить все необходимые термины, или получить распределение слов по темам)?
- Существуют ли другие метрики, которые можно использовать для сравнения моделей Top2Vec?
Возможно вычислить оценки согласованности, но, боюсь, вам действительно нужно будет реализовать это самостоятельно на основе определений согласованности. В Top2Vec нет распределений слов по темам. Вместо этого вам нужно будет рассматривать рейтинг слов по темам с точки зрения их удаленности от вектора темы в объединённом пространстве встраивания темы/слова/документа. Такой рейтинг достаточен для многих типов оценок согласованности.
Я столкнулся с той же проблемой, когда изменил значения min_count с 50 на 5 для Top2Vec, и в моем случае слова, которые не входят в словарь (чаще всего это одно слово), появляются почти во всех случаях в конце списка слов по теме. В моем случае было достаточно предоставить Gensim только топ-20 слов для каждой темы, и он рассчитал метрику, потому что остальные 30 слов по умолчанию не учитываются при расчете метрик согласованности. Если это не ваш случай, я думаю, что будет необходимо определить функции с нуля.
Другими метриками, которые используются для оценки тем моделей, являются перплексность или разнообразие, но метрики согласованности являются более близкими к человеческому суждению, что является ещё одним действительно дорогим способом оценки моделей тем.
Ответ или решение
Измерение коэффициента согласованности для моделей Top2Vec
В процессе анализа текста на Reddit с использованием моделей Top2Vec возникает необходимость в сравнении различных моделей, основанных на их показателях согласованности. В данной статье мы рассмотрим основные проблемы, с которыми вы столкнулись, и предложим возможные решения, а также обсудим альтернативные метрики для оценки моделей.
Проблема 1: Ошибка отсутствующих слов в словаре при расчете согласованности с Gensim
Когда вы получаете ошибку от Gensim о том, что слово в темах отсутствует в словаре, это может быть связано с тем, что некоторые слова не соответствуют параметрам min_count
или не включены в модель из-за других критериев. Для анализа согласованности важно, чтобы все слова в ваших темах были учтены в словаре.
Решение:
-
Сокращение числа слов: Если вы используете множество слов для каждой темы, можете попробовать ограничить вывод тем до 20-30 самых значимых слов. Как упомянуто в вашем случае, Gensim может корректно работать с сокращённым списком, что минимизирует вероятность ошибок.
-
Адаптация словаря: Убедитесь, что ваша модель Top2Vec сформирована с использованием параметров
min_count
, которые позволяют включить больше слов. Попробуйте изменить этот параметр и перезапустить модель. -
Создание собственного словаря: В некоторых случаях может потребоваться создание собственного словаря, который включает все слова, применяемые в вашем анализе. Это можно сделать, извлекая слова из тем и добавляя их в специальный словарь, который затем будет использоваться для дальнейших вычислений.
Проблема 2: Получение распределения слов по темам
Top2Vec не предоставляет прямого доступа к распределению слов по темам, как это делают другие модели, такие как LDA. Вместо этого необходимо использовать ранжирование слов по их расстоянию от векторов тем в объединенном пространстве векторов.
Решение:
-
Ранжирование слов: Используйте векторные представления тем и слов, чтобы определить, какие слова наиболее близки к каждой теме. Вы можете вычислить косинусное расстояние между вектором темы и векторами слов, чтобы создать список наиболее подходящих слов для каждой темы.
-
Кастомная реализация функционала: В некоторых случаях может потребоваться программная реализация алгоритмов, использующих концепции тематики и согласованности. Обратите внимание на определение коэффициентов согласованности, таких как UMass или UCI, и настройте ваши функции соответственно.
Дополнительные метрики для сравнения моделей Top2Vec
Помимо коэффициента согласованности, вы можете рассмотреть следующие метрики:
-
Перплексия: Позволяет измерить, насколько хорошо модель предсказывает данные. Это общая метрика, используемая в языковых моделях, однако не всегда отражает человеческое восприятие тем.
-
Диверсификация тем: Измеряет, насколько темы разнородны и разнообразны. Разнообразие тем может быть важным аспектом для оценки качества модели, особенно в контексте больших наборов данных.
-
Экспертная оценка: Проведение экспертизы с участием людей для анализа ментора является еще одним способом оценки согласованности и полезности тем. Несмотря на свою высокую стоимость, этот метод обеспечивает наиболее приближенную к человеческому восприятию оценку качества моделей.
В заключение, работа с моделями Top2Vec в требованиях анализа текста подразумевает соответствие определённым спецификациям и иногда требует кастомизации. Используя предложенные методы, вы сможете оптимизировать свой анализ и эффективно сравнить различные модели.