Почему получаются разные результаты при выводе темы MALLET для одного и пакета документов?

Я пытаюсь выполнить моделирование темы LDA с помощью Mallet 2.0.7. Я могу обучить модель LDA и получить хорошие результаты, судя по результатам тренировки. Кроме того, я могу использовать встроенный в этот процесс логический вывод и получать аналогичные результаты при повторной обработке моего тренировочного файла. Однако, если я возьму отдельный файл из большего обучающего набора и обработаю его с помощью логического вывода, я получу совсем другие результаты, что не очень хорошо.

Я понимаю, что логический вывод должен использовать фиксированную модель и только локальные для этого документа функции, поэтому я не понимаю, почему я получаю какие-либо другие результаты при обработке 1 файла или 1k из моего обучающего набора. Я не делаю среза частоты, которая могла бы показаться глобальной операцией, которая могла бы иметь такой эффект. Вы можете увидеть другие параметры, которые я использую в приведенных ниже командах, но в основном они используются по умолчанию. Изменение количества итераций на 0 или 100 не помогло.

Импортировать данные:

bin/mallet import-dir \
  --input trainingDataDir \
  --output train.data \
  --remove-stopwords TRUE \
  --keep-sequence TRUE \
  --gram-sizes 1,2 \
  --keep-sequence-bigrams TRUE

Поезд:

time ../bin/mallet train-topics
  --input ../train.data \
  --inferencer-filename lda-inferencer-model.mallet \
  --num-top-words 50 \
  --num-topics 100 \
  --num-threads 3 \
  --num-iterations 100 \
  --doc-topics-threshold 0.1 \
  --output-topic-keys topic-keys.txt \
  --output-doc-topics doc-topics.txt

Темы, назначенные во время обучения для одного файла, в частности, № 14 касается вина, что является правильным:

998 file:/.../29708933509685249 14  0.31684981684981683 
> grep "^14\t" topic-keys.txt 
14  0.5 wine spray cooking car climate top wines place live honey sticking ice prevent collection market hole climate_change winery tasting california moldova vegas horses converted paper key weather farmers_market farmers displayed wd freezing winter trouble mexico morning spring earth round mici torrey_pines barbara kinda nonstick grass slide tree exciting lots 

Выполнить вывод для всего пакета поезда:

../bin/mallet infer-topics \
  --input ../train.data \
  --inferencer lda-inferencer-model.mallet \
  --output-doc-topics inf-train.1 \
  --num-iterations 100

Оценка вывода на поезд - очень похоже:

998 /.../29708933509685249 14 0.37505087505087503 

Выполнить вывод для другого файла обучающих данных, состоящего только из этого 1 текстового файла:

../bin/mallet infer-topics \
  --input ../one.data \
  --inferencer lda-inferencer-model.mallet \
  --output-doc-topics inf-one.2 \
  --num-iterations 100

Вывод для одного документа создает темы 80 и 36, которые сильно различаются (14 дает около 0 баллов):

0 /.../29708933509685249 80 0.3184778184778185 36 0.19067969067969068
> grep "^80\t" topic-keys.txt 
80  0.5 tips dog care pet safety items read policy safe offer pay avoid stay important privacy services ebay selling terms person meeting warning poster message agree sellers animals public agree_terms follow pets payment fraud made privacy_policy send description puppy emailed clicking safety_tips read_safety safe_read stay_safe services_stay payment_services transaction_payment offer_transaction classifieds_offer 
8
задан Frank 3 April 2013 в 23:29
поделиться