2017-03-17 96 views
1

据我所知,如果我在一个语料库的字典大小为1000并且没有主题(K)= 10的语料库上训练LDA模型,那么对于词典中的每个词我都应该有一个大小为10的向量向量中的每个位置都是该单词属于该特定主题的概率,对吗?如何获得gensim LDA中给定单词的主题词概率?

所以我的问题给出了一个单词,这个单词属于主题k的概率是多少,其中k可以从1到10,我如何在gensim lda模型中获得这个值?

我使用get_term_topics方法,但它不输出所有主题的所有概率。例如,

lda_model1.get_term_topics("fun") 
[(12, 0.047421702085626238)], 

但我想知道在所有其他主题中“fun”可能是什么概念?

回答

0

对于正在寻找ans的人,我找到了它。这些概率值在xx.expElogbeta numpy数组中。这个矩阵中的行数等于主题的数量,列的数量是字典的大小(单词)。因此,如果您获得特定列的值,则会得到属于所有主题的该单词的概率。

例如,

>>> data = np.load("model.expElogbeta.npy") 
>>> data.shape 
(20, 6481) # i have trained with 20 topics == no of rows 
>>> dict = corpora.Dictionary.load(dictf) 
>>> len(dict.keys()) 
6481 #columns of the npy array is the words in my dict 

SRC = https://groups.google.com/forum/?fromgroups=#!searchin/gensim/lda $ 20topic字$ 20matrix/gensim/Qoj7Agkx3qE/r9lyfihC4b4J

相关问题