这个例子展示了如何使用Latent Dirichlet Allocation (LDA)主题模型和t-SNE图来可视化文档的集群。
潜在Dirichlet分配(LDA)模型是一种主题模型,它发现文档集合中的底层主题,并推断主题中的单词概率。每个主题的单词概率向量描述了主题的特征。您可以使用LDA模型通过比较每个文档的主题概率(也称为主题混合)来评估文档相似性。
加载LDA模型factoryReportsLDAModel
它使用详细描述不同故障事件的工厂报告数据集进行培训。有关如何使LDA模型适合文本数据集合的示例,请参见使用主题模型分析文本数据.
负载factoryReportsLDAModelmdl
mdl = ldaModel with properties: 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]
使用词汇云将主题形象化。
numTopics = mdl.NumTopics;图tiledlayout (“流”)标题(“LDA的话题”)为i = 1:numTopics nexttile wordcloud(mdl,i);标题(“主题”+ i)结束
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