Я получил модель темы LDA, используя игрушечный корпус следующим образом:
documents = ['Human machine interface for lab abc computer applications',
'A survey of user opinion of computer system response time',
'The EPS user interface management system',
'System and human system engineering testing of EPS',
'Relation of user perceived response time to error measurement',
'The generation of random binary unordered trees',
'The intersection graph of paths in trees',
'Graph minors IV Widths of trees and well quasi ordering',
'Graph minors A survey']
texts = [[word for word in document.lower().split()] for document in documents]
dictionary = corpora.Dictionary(texts)
id2word = {}
for word in dictionary.token2id:
id2word[dictionary.token2id[word]] = word
Я обнаружил, что, когда я использую небольшое количество тем для получения модели, Gensim дает полный отчет о тематическом распределении по всем потенциальным темам для тестового документа. Например:.
test_lda = LdaModel(corpus,num_topics=5, id2word=id2word)
test_lda[dictionary.doc2bow('human system')]
Out[314]: [(0, 0.59751626959781134),
(1, 0.10001902477790173),
(2, 0.10001375856907335),
(3, 0.10005453508763221),
(4, 0.10239641196758137)]
Однако, когда я использую большое количество тем, отчет больше не завершен:
test_lda = LdaModel(corpus,num_topics=100, id2word=id2word)
test_lda[dictionary.doc2bow('human system')]
Out[315]: [(73, 0.50499999999997613)]
Мне кажется, что темы с вероятностью, меньшей чем некоторый порог (я заметил, что 0.01 более конкретный) опускаются из вывода.
Мне интересно, связано ли это поведение с некоторыми эстетическими соображениями? И как я могу получить распределение остатка массы вероятности по всем другим темам?
Спасибо за ваш добрый ответ!