将Gensim LDA拟合到SciKit朴素贝叶斯分类器中

时间:2015-11-19 16:02:16

标签: python scikit-learn gensim

我有一个我正在研究的gensim LDA模型,我想要融入sciKit朴素贝叶斯分类器,类似于sciKit的TfidfTransformer():

 lda = ldamodel.LdaModel(corpus=self.corpus, num_topics=num_topics)

TfidfTransformer()的形状是一个稀疏的numpy矩阵:

<2014x4604 sparse matrix of type '<type 'numpy.float64'>'
    with 117869 stored elements in Compressed Sparse Row format>

有一些关于如何使用sciKit Vectorizer并将其输入gensim模型的帖子,但我想做相反的事情,例如:

 classifier = MultinomialNB()
 classifier.fit(lda_model, train_class)

我该怎么做呢?我假设来自TfidfTransformer.fit_transform()的矩阵是文档数组中每个单词的tfidf分数矩阵,如:

  [[.1234, .234, .345], # document 1
  [.098, .987, .876],   # document 2
 [.555, .666, .777]]    # document 3

如果是这样的话,我可以用它的分数替换每个单词并将该矩阵输入分类器。但是我无法说出来,因为我无法看到很多内容。

编辑:我能够打印numpy数组的第一个条目,它本身就是一个numpy数组,所以我打印了第一个条目并得到了:

 (0, 3911)     0.22756829025
 (0, 3826)     0.161385996776
 (0, 3815)     0.100930582918
 (0, 3627)     0.158255401295
 (0, 3621)     0.194939740341
 (0, 3620)     0.100757250634
 (0, 3527)     0.0734744409855
 (0, 3246)     0.109635312627

左边的列必须是tfidf分数,但我不确定该权利是什么。我假设wordids和文档id?

0 个答案:

没有答案