Подтвердить что ты не робот

Скрытое распределение Дирихле, подводные камни, советы и программы

Я экспериментирую с скрытым распределением Дирихле для обсуждения и назначения темы, и я ищу совет.

  • Какая программа является "лучшей", где лучше всего сочетается самая простая в использовании, лучшая предварительная оценка, быстрая
  • Как включить свои интуиции в актуальность. Скажем, я думаю, что знаю, что некоторые предметы в корпусе действительно в той же категории, как и все статьи того же автора. Могу ли я добавить это в анализ?
  • Любые неожиданные подводные камни или подсказки, которые я должен знать, прежде чем приступать к работе?

Я бы предпочел, что для любой программы есть R или Python, но я ожидаю (и принимаю), что буду иметь дело с C.

4b9b3361

Ответ 1

  • http://mallet.cs.umass.edu/ является IMHO самым потрясающим пакетом LDA для plug-n-play там. Он использует выборку Gibbs для оценки темы и имеет очень простой интерфейс командной строки с множеством дополнительных колоколов-n-whistles (несколько более сложных моделей, оптимизация гиперпараметров и т.д.).

  • Лучше всего позволить алгоритму выполнять свою работу. Могут быть варианты LDA (и pLSI и т.д.), Которые позволяют вам делать что-то вроде полунаблюдения. На данный момент я ничего не знаю.

  • Я обнаружил, что удаление стоп-слов и других действительно высокочастотных слов, казалось, значительно улучшало качество моих тем (оценивалось, глядя на верхние слова каждой темы, а не на строгую метрику). Я угадываю вызвав/лемматизация.

Ответ 2

  • Вы упомянули предпочтение R, вы можете использовать два пакета topicmodels (медленный) или lda (быстро). Python имеет deltaLDA, pyLDA, Gensim и т.д.

  • Моделирование темы с указанными темами или словами сложно из коробки, Дэвид Анджейвски имеет код Python, который кажется сделать это. Существует реализация С++ контролируемой LDA здесь. И много документов по смежным подходам (DiscLDA, Маркированный LDA но не в удобной для меня форме, для меня в любом случае...

  • Как говорит @adi92, удаление стоп-слов, пробелов, чисел, знаков препинания и прекращения всех улучшает многое. Одна возможная ошибка - это неправильное (или неуместное) количество тем. В настоящее время нет простой диагностики того, насколько много тем оптимально подходит для коприза размера размера и т.д. Существуют некоторые меры качества темы, доступные в MALLET (самый быстрый), которые очень удобны.

Ответ 3

В дополнение к обычный источники, кажется, что наиболее активная область, о которой идет речь, находится на расписания тем-моделей. Из моего первоначального опроса самым простым пакетом для понимания является пакет LDA Matlab.

Это не легкий материал, поэтому я не удивлен, что трудно найти хорошие ресурсы на нем.

Ответ 4

Для такого анализа я использовал LingPipe: http://alias-i.com/lingpipe/index.html. Это библиотека Java с открытым исходным кодом, части которой я использую напрямую или порт. Чтобы включить свои собственные данные, вы можете использовать классификатор, например, наивные заливы. мой опыт со статистическим nlp ограничен, но он обычно следует за циклом настройки классификаторов, обучения и поиска результатов, настройки.

Ответ 5

i второй. Mallet lda использует структуру данных sparselda и распределенное обучение, поэтому v быстро. включение оптимизации гиперпараметра даст лучший результат, imo.