Понимание LDA Преобразованный Корпус в Gensim

Я попытался исследовать содержимое корпуса BOW и LDA[BOW Corpus] (преобразованный моделью LDA, обученной на этом корпусе, скажем, с 35 темами), и обнаружил следующий вывод:

DOC 1 : [(1522, 1), (2028, 1), (2082, 1), (6202, 1)]  
LDA 1 : [(29, 0.80571428571428572)]  
DOC 2 : [(1522, 1), (5364, 1), (6202, 1), (6661, 1), (6983, 1)]  
LDA 2 : [(29, 0.83809523809523812)]  
DOC 3 : [(3079, 1), (3395, 1), (4874, 1)]  
LDA 3 : [(34, 0.75714285714285712)]  
DOC 4 : [(1482, 1), (2806, 1), (3988, 1)]  
LDA 4 : [(22, 0.50714288283121989), (32, 0.25714283145449457)]  
DOC 5 : [(440, 1), (533, 1), (1264, 1), (2433, 1), (3012, 1), (3902, 1), (4037, 1), (4502, 1), (5027, 1), (5723, 1)]  
LDA 5 : [(12, 0.075870715371114297), (30, 0.088821329943986921), (31, 0.75219107156801579)]  
DOC 6 : [(705, 1), (3156, 1), (3284, 1), (3555, 1), (3920, 1), (4306, 1), (4581, 1), (4900, 1), (5224, 1), (6156, 1)]  
LDA 6 : [(6, 0.63896110435842401), (20, 0.18441557445724915), (28, 0.09350643806744402)]  
DOC 7 : [(470, 1), (1434, 1), (1741, 1), (3654, 1), (4261, 1)]  
LDA 7 : [(5, 0.17142855723258577), (13, 0.17142856888458904), (19, 0.50476192150187316)]  
DOC 8 : [(2227, 1), (2290, 1), (2549, 1), (5102, 1), (7651, 1)]  
LDA 8 : [(12, 0.16776844589094803), (19, 0.13980868559963203), (22, 0.1728575716782704), (28, 0.37194624921210206)]  

Где DOC N - документ из BOW, корпус LDA N - преобразование DOC N по этой модели LDA.

Правильно ли я понимаю, что выходные данные для каждого преобразованного документа "LDA N" относятся к темам, к которым относится документ N? При таком понимании я вижу, что некоторые документы, такие как 4, 5, 6, 7 и 8, относятся к более чем одной теме, например DOC 8, относится к темам 12, 19, 22 и 28 с соответствующими вероятностями.

Не могли бы вы объяснить выход LDA N и исправить мое понимание этого вывода, тем более что в другом потоке ЗДЕСЬ - создателем самого Генсима было упомянуто, что документ принадлежит ОДНОЙ теме?

1 ответ

Ваше понимание результатов LDA от gensim верно. Что вы должны помнить, это то, что LDA[corpus] будут выводить только темы, которые превышают определенный порог (устанавливается при инициализации модели).

document belongs to ONE topic вопрос, который вам нужно принять решение самостоятельно. LDA дает вам распределение по темам для каждого документа, который вы вводите в него *. Затем необходимо принять решение о том, достаточно ли документа, имеющего (например) 50% темы, для того, чтобы этот документ принадлежал указанной теме.

(*) опять же вы должны иметь в виду, что LDA[corpus] покажет вам только те, которые превышают порог, а не весь дистрибутив. Вы также можете получить доступ ко всему дистрибутиву, используя

theta, _ = lda.inference(corpus)
theta /= theta.sum(axis=1)[:, None]
Другие вопросы по тегам