使用LDA模型可视化文档集群
这个例子展示了如何使用潜狄利克雷分配(Latent Dirichlet Allocation, LDA)主题模型和t-SNE图可视化文档的聚类。
潜狄利克雷分配(LDA)模型是一种主题模型,它在文档集合中发现底层主题,并推断主题中的单词概率。每个主题的词概率向量描述了主题。通过比较每个文档的主题概率,也称为主题混合,可以使用LDA模型来评估文档的相似度。
负载LDA模型
加载LDA模型factoryReportsLDAModel
它使用详细描述不同故障事件的工厂报告数据集进行训练。有关展示如何将LDA模型适合文本数据集合的示例,请参见使用主题模型分析文本数据。
负载factoryReportsLDAModelmdl
mdl = ldaModel具有属性:NumTopics: 7 WordConcentration: 1 TopicConcentration: 0.5755 corpustopicprobability: [0.1587 0.1573 0.1551 0.1534 0.1340 0.1322 0.1093] documenttopicprobability: [480×7 double] topicwordprobability: [158×7 double]词汇:[1×158 string] TopicOrder: 'initial-fit-probability' FitInfo: [1×1 struct]
使用词云可视化主题。
numTopics = mdl.NumTopics;图tiledlayout (“流”)标题(“LDA的话题”)为i = 1:numTopics nexttile wordcloud(mdl,i);标题(“主题”+ i)结束
使用t-SNE可视化文档集群
t分布随机邻居嵌入(t-SNE)算法将高维向量投影到二维空间。这种嵌入使得高维向量之间的相似性很容易可视化。通过根据t-SNE算法绘制文档主题混合图,可以可视化相似文档的聚类。
项目主题混合在DocumentTopicProbabilties
进入二维空间使用tsne
函数。
XY = tsne (mdl.DocumentTopicProbabilities);
对于情节组,确定每个文档的顶部主题。
[~, topTopics] = max (mdl.DocumentTopicProbabilities [], 2);
对于情节标签,找到每个话题的前三个单词。
为i = 1:numTopics top = topkwords(mdl,3,i);topWords (i) =加入(顶部。词,”、“);结束
绘制投影的主题混合使用gscatter
函数。指定顶部主题作为分组变量,并显示一个图例,其中包含每个主题的顶部单词。
图gscatter (XY (: 1), XY (:, 2), topTopics)标题(“主题混合”)传说(topWords…位置=“southoutside”,…NumColumns = 2)
t-SNE图突出了在原始高维数据中出现的簇。
另请参阅
tokenizedDocument
|fitlda
|ldaModel
|wordcloud