2014-12-08 125 views
1

代碼的最後部分:如何通過gensim將訓練集的分佈保存在訓練有素的LDA模型上?

lda = models.LdaModel(corpus_tfidf, id2word = dic, num_topics = 64) 
corpus_lda = lda[corpus_tfidf] 

我想知道如何保存corpus_lda進一步使用?

+0

你的意思是你想保存'lda'模型嗎?我在問,因爲你的代碼使'corpus_lda'包含每個培訓文檔的主題分佈。 – 2014-12-08 09:53:03

+0

我知道corpus_lda包含主題分佈,這就是我想要保存的,我想將分佈保存爲2173 * 64(2173是我的培訓文檔編號,64是主題)矩陣,但不知道如何保存它。 – 2014-12-08 10:12:12

+1

快速解決方案是使用[cPickle](https://docs.python.org/2/library/pickle.html#module-cPickle)模塊並將主題分發矩陣轉儲到文件中,然後使用無論何時你想使用它,相同的模塊都可以加載矩陣。 – 2014-12-08 12:07:49

回答

2

Gensim具有以下功能:寫入語料庫磁盤:

from Gensim import corpora 
corpora.MmCorpus.serialize('pathandfilename.mm', corpus_lda) 

要載入保存的語料庫使用:

corpus_lda = corpora.MmCorpus('pathandfilename.mm') 

有保存模型(查看教程或references)類似的功能。 可以使用不同的語料庫格式,我相信矩陣市場曾經是Gensim使用的標準格式,但是最近增加了indexedcorpus格式,它具有一些附加功能(您可能已經猜到了一個索引)。

+0

非常感謝! – 2014-12-09 01:27:48