2017-02-17 2 views
1

У меня есть модель LDA и вероятности документа.Извлечь матрицу вероятностей словесных слов в gensim LdaModel

# build the model on the corpus 
ldam = LdaModel(corpus=corpus, num_topics=20, id2word=dictionary) 
# get the document-topic probabilities 
theta, _ = ldam.inference(corpus) 

Мне также необходимо распределить слова для всех тем, то есть матрицы вероятностей по тематическому слову. Есть ли способ извлечь эту информацию?

Спасибо!

ответ

3

Тема перспектива матрица (лямбда) доступна через:

topics_terms = ldam.state.get_lambda() 

Если вы хотите распределение вероятностей просто нормализовать его:

topics_terms_proba = np.apply_along_axis(lambda x: x/x.sum(),1,topics_terms) 
+0

, когда я использую 'ldam.state.get_lambda() 'Я получаю матрицу numpy, но нет имен столбцов. Как определить слова? –

+0

Чтобы узнать, какое слово соответствует данному индексу, используйте 'ldam.id2word'. Например, 'ldam.id2word [0]' - это слово, соответствующее первому столбцу матрицы. – arthur

Смежные вопросы