Scikit learn 使用scikit learn查找LDA每个主题的文档数

Scikit learn 使用scikit learn查找LDA每个主题的文档数,scikit-learn,lda,Scikit Learn,Lda,我将跟随scikit learn LDA示例,并试图了解如何(如果可能的话)显示有多少文档被标记为具有这些主题中的每一个。我一直在仔细阅读LDA模型的文档,但不知道从哪里可以得到这个号码。以前是否有人能够使用scikit learn做到这一点?LDA计算每个文档的主题概率列表,因此您可能希望将文档主题解释为该文档概率最高的主题 如果dtm是您的文档术语矩阵,而lda是您的潜在Dirichlet分配对象,则可以使用transform()函数和pandas探索主题混合: docsVStopics=l

我将跟随scikit learn LDA示例,并试图了解如何(如果可能的话)显示有多少文档被标记为具有这些主题中的每一个。我一直在仔细阅读LDA模型的文档,但不知道从哪里可以得到这个号码。以前是否有人能够使用scikit learn做到这一点?

LDA计算每个文档的主题概率列表,因此您可能希望将文档主题解释为该文档概率最高的主题

如果
dtm
是您的文档术语矩阵,而
lda
是您的潜在Dirichlet分配对象,则可以使用
transform()
函数和
pandas
探索主题混合:

docsVStopics=lda.transform(dtm)
docsVStopics=pd.DataFrame(docsVStopics,列=[“主题”+str(i+1)表示范围内的i(N_主题)])
打印(“创建了(%dx%d)文档主题矩阵。”%(docsVStopics.shape[0],docsVStopics.shape[1]))
docsVStopics.head()
您可以轻松找到每个文档最可能的主题:

最有可能的主题=docsVStopics.idxmax(axis=1)
然后获取计数:

最有可能的主题.groupby(最有可能的主题).count()

虽然我没有使用scikit中的LDA,但我知道fit_transform方法返回一个numpy形状数组[n_样本,n_特征\u新]。n_features_new应该是您在构造函数中设置的主题数量,它们表示每个文档中每个主题的“数量”(即一个主题属于多个主题)。您应该将返回数组中最大值的索引作为文档最可能的主题。