我有一个我正在研究的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?