我试图将LDA安装到LDA-C格式的语料库中。我已经让它为HDP模型工作,但我似乎无法让它在gensim中适用于LDA。我希望得到每个文档的主题概率向量以及每个主题的单词概率分布。
这是可行的HDP模型
.dat文件具有LDA-C格式的语料库,而.vocab文件具有唯一的单词
corpus = gensim.corpora.belicorpus.BeliCorpus('ap.dat','ap.vocab')
d = gensim.corpora.Dictionary()
d.token2id = dict(enumerate(l[:-1] for l in open('ap.vocab')))
hdp = gensim.models.HdpModel(corpus,d.token2id)
alpha, beta = hdp.hdp_to_lda()
# save topic prior
numpy.savetxt(corpus_name+'.alpha',alpha)
# save word distribution for each topic
numpy.savetxt(corpus_name+'.beta',beta)
# save topic distribution for each document in market matrix format
doc_hdp = hdp[corpus]
gensim.corpora.MmCorpus.save_corpus(corpus_name+'.mm',doc_hdp)
这是LDA的实现,我得到了正确的向量,但我似乎无法找到一个能给我前辈或单词分布/主题的函数:
corpus=gensim.corpora.bleicorpus.BleiCorpus('ap.dat','ap.vocab')
d = gensim.corpora.Dictionary()
d.token2id = dict(enumerate(l[:-1] for l in open('ap.vocab')))
lda = gensim.models.LdaModel(corpus,num_topics=10,id2word=d.token2id)