Вывод тем с помощью молотка, используя сохраненное состояние темы

Я использовал следующую команду для создания тематической модели из некоторых документов:

bin/mallet train-topics --input topic-input.mallet --num-topics 100 --output-state topic-state.gz

Однако я не использовал параметр --output-model для создания сериализованного объекта обучающего материала. Есть ли способ использовать файл состояния для определения тем для новых документов? Обучение идет медленно, и мне понадобится несколько дней, чтобы переучиться, если мне придется создавать сериализованную модель с нуля.


person sandesh247    schedule 19.07.2011    source источник


Ответы (3)


Мы не использовали инструменты командной строки, поставляемые с молотком, мы просто использовали API-интерфейс mallet для создания сериализованной модели для выводов нового документа. Два момента требуют особого уведомления:

  • Вам нужно сериализовать каналы, которые вы использовали сразу после завершения обучения (в моем случае это SerialPipes)
  • И, конечно же, модель также должна быть сериализована после того, как вы закончите обучение (в моем случае это ParallelTopicModel)

Пожалуйста, сверьтесь с java-документом:

person Mountain    schedule 25.02.2013

Восстановление модели из файла состояния кажется новой функцией в mallet 2.0.7 согласно примечания к выпуску.

Возможность восстановления моделей из gzip-архивов "состояний". В новом TopicTrainer используйте аргумент --input-state [имя файла]. Обратите внимание, что вы можете редактировать этот файл вручную. Любой токен с темой, установленной на -1, будет немедленно пересчитан при загрузке.

person John Lehmann    schedule 30.09.2011

Если вы имеете в виду, что хотите увидеть, как новые документы вписываются в ранее обученную тематическую модель, то я боюсь, что нет простой команды, которую вы могли бы использовать, чтобы сделать это правильно. Класс cc.mallet.topics.LDA в исходном коде mallet 2.0.7 предоставляет такую ​​утилиту, попробуйте понять ее и использовать в своей программе. P.S. Если мне не изменяет память, есть проблема с реализацией функции в этом классе:

public void addDocuments(InstanceList additionalDocuments, 
                         int numIterations, int showTopicsInterval,
                         int outputModelInterval, String outputModelFilename,
                         Randoms r)

Вы должны его переписать.

person Shockley    schedule 02.08.2013