Динамическое моделирование тем с помощью Gensim / какой код? - PullRequest
0 голосов
/ 18 мая 2018

Я хочу использовать динамическое моделирование тем Blei et al.(http://www.cs.columbia.edu/~blei/papers/BleiLafferty2006a.pdf) для большого корпуса из почти 3800 патентных документов. Есть ли у кого-нибудь опыт использования DTM в пакете gensim? Я выделил две модели:

  1. models.ldaseqmodel - Динамическая темаМоделирование в Python Ссылка
  2. models.wrappers.dtmmodel - Динамические тематические модели (DTM) Ссылка

Какой из них вы использовали,Если вы использовали оба, какой из них «лучше»? Другими словами, какой из них вы / предпочитаете?

1 Ответ

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

Оба пакета работают нормально и функционально идентичны.Какой из них вы можете использовать, зависит от вашего варианта использования.Есть небольшие различия в функциях каждой модели и небольшие различия в именовании, что может немного сбивать с толку, но для большинства случаев использования DTM не имеет большого значения, какой вы выберете.

Идентичны ли выходы модели?

Не совсем так.Однако они очень, очень близки к идентичности (98% +) - я полагаю, что большинство различий происходит от немного различного подхода к вероятностям в генеративном процессе.До сих пор я еще не сталкивался со случаем, когда разница в шестой или седьмой цифре после десятичной точки имеет какое-либо существенное значение.Интерпретация тем, которые ваши модели находят, имеет значение гораздо больше, чем одна версия, находящая более высокую загрузку темы для некоторого слова на 0,00002

Большая разница между двумя моделями: dtmmodel - это оболочка Python для оригинальной реализации C ++ из blei-lab , что означает, что python будет запускать двоичные файлы, а ldaseqmodel полностью написано на python.

Зачем использовать dtmmodel?

  • код на C ++ быстрее, чем реализация на python
  • поддерживает модель влияния документов из Gerrish / Blei 2010 (потенциально интересную для вашего исследования, см. эту статью дляреализация.

Зачем использовать ldaseqmodel?

  • проще в установке (простой оператор import против загрузки двоичных файлов)
  • можно использовать sstats от модели LDA с предварительной подготовкой - полезно с LdaMulticore
  • , чтобы легче понять работу кода

Я в основном использую ldaseqmodel, но это для удобства.РодныеОднако было бы здорово иметь поддержку DIM.

Что делать?

Попробуйте каждый из них, скажем, на небольшой выборке и посмотрите, чтомодели возвращаются.3800 документов - это не огромный корпус (при условии, что патенты не имеют сотен страниц каждый), и я предполагаю, что после предварительной обработки (удаление стоп-слов, изображений и метаданных) ваш словарь также не будет слишком большим(я бы предположил, что в патентах много стандартных и легальных фраз).Выберите тот, который лучше всего подходит для вас или обладает необходимыми вам возможностями.

Полный анализ в любом случае может занять несколько часов, если вы позволите своему коду работать в одночасье, практических различий мало, в конце концов, вас волнует, завершится ли онв 3 или 5 утра?Если время выполнения критически важно, я бы предположил, что dtmmodel будет более полезным.

Для примеров реализации вы можете взглянуть на следующие ноутбуки: ldaseqmodel и dtmmodel

...