Как понять вывод класса Topic Model в Mallet?

Пробуя код примеров в руководстве разработчика по тематическому моделированию, я действительно хочу понять смысл вывода этого кода.

Сначала в процессе работы выдает:

Coded LDA: 10 topics, 4 topic bits, 1111 topic mask
max tokens: 148
total tokens: 1333
<10> LL/token: -9,24097
<20> LL/token: -9,1026
<30> LL/token: -8,95386
<40> LL/token: -8,75353

0   0,5 battle union confederate tennessee american states 
1   0,5 hawes sunderland echo war paper commonwealth 
2   0,5 test including cricket australian hill career 
3   0,5 average equipartition theorem law energy system 
4   0,5 kentucky army grant gen confederates buell 
5   0,5 years yard national thylacine wilderness parks 
6   0,5 gunnhild norway life extinct gilbert thespis 
7   0,5 zinta role hindi actress film indian 
8   0,5 rings south ring dust 2 uranus 
9   0,5 tasmanian back time sullivan london century 

<50> LL/token: -8,59033
<60> LL/token: -8,63711
<70> LL/token: -8,56168
<80> LL/token: -8,57189
<90> LL/token: -8,46669

0   0,5 battle union confederate tennessee united numerous 
1   0,5 hawes sunderland echo paper commonwealth early 
2   0,5 test cricket south australian hill england 
3   0,5 average equipartition theorem law energy system 
4   0,5 kentucky army grant gen war time 
5   0,5 yard national thylacine years wilderness tasmanian 
6   0,5 including gunnhild norway life time thespis 
7   0,5 zinta role hindi actress film indian 
8   0,5 rings ring dust 2 uranus survived 
9   0,5 back london modern sullivan gilbert needham 

<100> LL/token: -8,49005
<110> LL/token: -8,57995
<120> LL/token: -8,55601
<130> LL/token: -8,50673
<140> LL/token: -8,46388

0   0,5 battle union confederate tennessee war united 
1   0,5 sunderland echo paper edward england world 
2   0,5 test cricket south australian hill record 
3   0,5 average equipartition theorem energy system kinetic 
4   0,5 hawes kentucky army gen grant confederates 
5   0,5 years yard national thylacine wilderness tasmanian 
6   0,5 gunnhild norway including king life devil 
7   0,5 zinta role hindi actress film indian 
8   0,5 rings ring dust 2 uranus number 
9   0,5 london sullivan gilbert thespis back mother 

<150> LL/token: -8,51129
<160> LL/token: -8,50269
<170> LL/token: -8,44308
<180> LL/token: -8,47441
<190> LL/token: -8,62186

0   0,5 battle union confederate grant tennessee numerous 
1   0,5 sunderland echo survived paper edward england 
2   0,5 test cricket south australian hill park 
3   0,5 average equipartition theorem energy system law 
4   0,5 hawes kentucky army gen time confederates 
5   0,5 yard national thylacine years wilderness tasmanian 
6   0,5 gunnhild including norway life king time 
7   0,5 zinta role hindi actress film indian 
8   0,5 rings ring dust 2 uranus number 
9   0,5 back london sullivan gilbert thespis 3 

<200> LL/token: -8,54771

Total time: 6 seconds

Итак, Вопрос1: что означает «Закодированный LDA: 10 тем, 4 бита тем, 1111 маска темы» в первой строке? Я знаю только, что это за "10 тем".

Вопрос2: что означает LL / Token в "‹10> LL / token: -9,24097 ‹20> LL / token: -9,1026 ‹30> LL / token: -8,95386‹ 40> LL / токен: -8,75353 "означает? это похоже на метрику для выборки Гибсса. Но разве он не монотонно увеличивается?

А после этого печатается следующее:

elizabeth-9 needham-9 died-7 3-9 1731-6 mother-6 needham-9 english-7 procuress-6 brothel-4 keeper-9 18th-8.......
0   0.008   battle (8) union (7) confederate (6) grant (4) tennessee (4) 
1   0.008   sunderland (6) years (6) echo (5) survived (3) paper (3) 
2   0.040   test (6) cricket (5) hill (4) park (3) career (3) 
3   0.008   average (6) equipartition (6) system (5) theorem (5) law (4) 
4   0.073   hawes (7) kentucky (6) army (5) gen (4) war (4) 
5   0.008   yard (6) national (6) thylacine (5) wilderness (4) tasmanian (4) 
6   0.202   gunnhild (5) norway (4) life (4) including (3) king (3) 
7   0.202   zinta (4) role (3) hindi (3) actress (3) film (3) 
8   0.040   rings (10) ring (3) dust (3) 2 (3) uranus (3) 
9   0.411   london (4) sullivan (3) gilbert (3) thespis (3) back (3) 
0   0.55

Первая строка в этой части, вероятно, посвящена теме токена, не так ли?

Вопрос 3: по первой теме

0   0.008   battle (8) union (7) confederate (6) grant (4) tennessee (4)   

0,008 считается "распределением тем", это распределение этой темы по всему корпусу? Тогда, похоже, возникает конфликт: тема 0, как показано выше, будет иметь свой токен в скопе 8 + 7 + 6 + 4 + 4 + ... раз; а в теме сравнения 7 есть 4 + 3 + 3 + 3 + 3 ... раз узнал в корпусе. В результате тема 7 должна иметь меньшее распространение, чем тема 0. Вот чего я не могу понять. Более того, что это за «0 0,55» в конце?

Большое спасибо за то, что прочитали этот длинный пост. Надеюсь, вы ответите на него, и надеюсь, что это может быть полезно для других, интересующихся Маллетом.

Лучший


person Matt    schedule 09.12.2011    source источник


Ответы (3)


Я не думаю, что знаю достаточно, чтобы дать исчерпывающий ответ, но вот некоторые из них ... для Q1 вы можете проверить некоторые code, чтобы узнать, как рассчитываются эти значения. Для второго квартала LL - это логарифм вероятности модели, деленный на общее количество токенов, это мера того, насколько вероятно, что данные предоставлены модели. Увеличение значений означает, что модель улучшается. Они также доступны в R пакетах для тематического моделирования. Q2, да, думаю, это правильно для первой строчки. Q3, хороший вопрос, мне не сразу понятно, возможно, (x) - это какой-то индекс, частота токена кажется маловероятной ... Предположительно, большинство из них - это какая-то диагностика.

Более полезный набор диагностик может быть получен с bin\mallet run cc.mallet.topics.tui.TopicTrainer ...your various options... --diagnostics-file diagnostics.xml, который даст большое количество показателей качества темы. Их определенно стоит посмотреть.

Чтобы получить полный рассказ обо всем этом, я бы посоветовал написать электронное письмо Дэвиду Мимно в Принстон, который (главный?) Разработчик MALLET, или написать ему через список на http://blog.gmane.org/gmane.comp.ai.mallet.devel, а затем публиковать ответы здесь для тех из нас, кто интересуется внутреннее устройство МОЛЛЕТА ...

person Ben    schedule 13.12.2011
comment
Я слышал, что кто-то смотрел этот пост - я сейчас в Корнелле, а не в Принстоне, и я слежу за SO-сообщениями с тегами #mallet, что намного лучше, чем электронная почта. - person David Mimno; 18.04.2019

я понимаю, что:

0   0.008   battle (8) union (7) confederate (6) grant (4) tennessee (4)   
  • 0 - номер темы.
  • 0.008 - вес такой темы
  • battle (8) union (7) [...] - ключевые слова в этой теме. Цифры - это случаи появления слова в теме.

В результате вы также получите файл .csv. Я думаю, что он содержит самые важные данные о процессе. Для каждой строки вы найдете следующие значения:

0   0   285 10   page make items thing work put dec browsers recipes expressions 

То есть:

  1. Уровень дерева
  2. ID темы
  3. Всего слов
  4. Всего документов
  5. Топ-10 слов

Немного поздно, но я надеюсь, что это кому-то поможет

person gal007    schedule 29.04.2016

Что касается вопроса 3, я считаю, что 0,008 («распределение тем») относится к предыдущему \ альфа-распределению по темам для документов. Маллет оптимизирует этот априор, по сути позволяя некоторым темам иметь больший «вес». Похоже, Маллет считает, что тема 0 составляет небольшую часть вашего корпуса.

Счетчики токенов представляют только слова с наибольшим счетом. Оставшееся количество для темы 0 может быть, например, 0, а оставшееся количество для темы 9 может быть 3. Таким образом, на тему 9 может приходиться гораздо больше слов в вашем корпусе, чем на тему 0, даже если подсчеты для верхних слов равны ниже.

Мне нужно было бы проверить код для «0 0,55» в конце, но это, вероятно, оптимизированное значение \ beta (которое, я почти уверен, не выполнено асимметрично).

person drevicko    schedule 10.03.2014