ldaModel
潜狄利克雷分配(LDA)模型
描述
潜狄利克雷分配模型(latent Dirichlet allocation, LDA)是一种主题模型,它发现文档集合中的潜在主题,并推断主题中的单词概率。如果模型使用n-grams袋模型拟合,那么软件将n-grams视为单独的单词。
创建
方法创建LDA模型fitlda
函数。
属性
NumTopics
- - - - - -选题数量
正整数
LDA模型中的主题数,指定为正整数。
TopicConcentration
- - - - - -话题集中
积极的标量
主题浓度,指定为正标量。该函数将每个主题的浓度设置为TopicConcentration / NumTopics
.有关更多信息,请参见潜狄利克雷分配.
WordConcentration
- - - - - -词集中
1
(默认)|负的标量
字浓度,指定为非负标量。软件将每个单词的浓度设置为WordConcentration / numWords
,在那里numWords
输入文档的词汇表大小。有关更多信息,请参见潜狄利克雷分配.
CorpusTopicProbabilities
- - - - - -输入文档集的主题概率
向量
输入文档集的主题概率,指定为一个向量。LDA模型的语料库主题概率是在用于拟合LDA模型的整个数据集中观察每个主题的概率。CorpusTopicProbabilities
是1 × -吗K向量,K是主题的数量。的k第Th项CorpusTopicProbabilities
对应于观察主题的概率k.
DocumentTopicProbabilities
- - - - - -每个输入文档的主题概率
矩阵
每个输入文档的主题概率,以矩阵形式指定。LDA模型的文档主题概率是用于拟合LDA模型的每个文档中观察每个主题的概率。DocumentTopicProbabilities
是一个D——- - - - - -K矩阵D是用于符合LDA模型的文档数量,以及K是主题的数量。的(d、k)第Th项DocumentTopicProbabilities
对应于观察主题的概率k在文档d.
如果有任何主题的概率为零(CorpusTopicProbabilities
包含零),则对应的列DocumentTopicProbabilities
而且TopicWordProbabilities
是0。
一行的顺序DocumentTopicProbabilities
与培训数据中文档的顺序相对应。
TopicWordProbabilities
- - - - - -每个主题的单词概率
矩阵
每个主题的单词概率,指定为一个矩阵。LDA模型的主题词概率是在LDA模型的每个主题中观察到每个词的概率。TopicWordProbabilities
是一个V——- - - - - -K矩阵,V字数是多少词汇表
而且K是主题的数量。的(v, k)第Th项TopicWordProbabilities
对应于观测词的概率v在主题k.
如果有任何主题的概率为零(CorpusTopicProbabilities
包含零),则对应的列DocumentTopicProbabilities
而且TopicWordProbabilities
是0。
一行的顺序TopicWordProbabilities
对应于单词的顺序词汇表
.
TopicOrder
- - - - - -主题的顺序
“initial-fit-probability”
(默认)|“无序”
主题顺序,指定为以下之一:
“initial-fit-probability”
-根据初始模型拟合的语料库主题概率对主题进行排序。这些概率是CorpusTopicProbabilities
初始属性ldaModel
返回的对象fitlda
.的重新开始
函数不会对结果的主题进行重新排序ldaModel
对象。“无序”
-不要对主题进行排序。
FitInfo
- - - - - -拟合LDA模型时记录的信息
结构体
拟合LDA模型时记录的信息,指定为具有以下字段的结构体:
TerminationCode
-退出时的优化状态0 -达到迭代极限。
1 -对数似然公差满足。
TerminationStatus
-返回的终止代码说明NumIterations
-执行的迭代次数NegativeLogLikelihood
-传递到的数据的负对数似然fitlda
困惑
-传递到的数据的Perplexityfitlda
解算器
-使用的求解器的名称历史
-保存优化历史的结构StochasticInfo
-结构持有信息的随机求解器
数据类型:结构体
词汇表
- - - - - -模型中的单词列表
字符串向量
模型中的单词列表,指定为字符串向量。
数据类型:字符串
对象的功能
例子
拟合LDA模型
若要重现本例中的结果,请设置rng
来“默认”
.
rng (“默认”)
加载示例数据。该文件sonnetsPreprocessed.txt
包含莎士比亚十四行诗的预处理版本。该文件每行包含一首十四行诗,用空格分隔单词。从中提取文本sonnetsPreprocessed.txt
,以换行符将文本分割为文档,然后对文档进行标记。
文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData = split(str,换行符);documents = tokenizedDocument(textData);
使用创建单词袋模型bagOfWords
.
bag = bagOfWords(文档)
带有属性的单词:[154x3092 double]词汇:["最公平的" "生物" "欲望"…NumWords: 3092 NumDocuments: 154
拟合四个主题的LDA模型。
numTopics = 4;mdl = fitlda(包,numTopics)
初始主题分配在0.135588秒内采样。===================================================================================== | 迭代每个相对| | |时间培训|主题| | | | | |迭代变化困惑浓度浓度| | | | | |(秒)日志(L) | | |迭代 | ===================================================================================== | 0 | 0.06 | 1.000 | 1.215 e + 03 | | 0 | | 1 | 0.02 | 1.0482 e-02 e + 03 | 1.128 | 1.000 | 0 | | 2 | 0.02 | 1.7190 e 03 e + 03 | 1.115 | 1.000 | 0 | | 3 | 0.021.118 e + 03 | 1.000 | 4.3796 e-04 | | 0 | | 4 | 0.02 | 9.4193 e-04 e + 03 | 1.111 | 1.000 | 0 | | 5 | 0.03 | 3.7079 e-04 e + 03 | 1.108 | 1.000 | 0 | | 6 | 0.01 | 9.5777 e-05 e + 03 | 1.107 | 1.000 | 0 | =====================================================================================
mdl = ldaModel与属性:NumTopics: 4 WordConcentration: 1 TopicConcentration: 1 corpustopicprobability: [0.2500 0.2500 0.2500 0.2500 0.2500] documenttopicprobability: [154x4 double] topicwordprobability: [3092x4 double]词汇:[“最公平的”“生物”…FitInfo: [1x1 struct]
使用词汇云来可视化主题。
数字为topicIdx = 1:4 subplot(2,2,topicIdx) wordcloud(mdl,topicIdx);标题(主题:“+ topicIdx)结束
LDA主题的最高概率词
创建一个LDA主题概率最高的单词表。
若要重现结果,请设置rng
来“默认”
.
rng (“默认”)
加载示例数据。该文件sonnetsPreprocessed.txt
包含莎士比亚十四行诗的预处理版本。该文件每行包含一首十四行诗,用空格分隔单词。从中提取文本sonnetsPreprocessed.txt
,以换行符将文本分割为文档,然后对文档进行标记。
文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData = split(str,换行符);documents = tokenizedDocument(textData);
使用创建单词袋模型bagOfWords
.
bag = bagOfWords(文档);
拟合20个主题的LDA模型。若要抑制详细输出,请设置“详细”
为0。
numTopics = 20;mdl = fitlda(包,numTopics,“详细”, 0);
找出第一个主题的前20个单词。
K = 20;topicIdx = 1;tbl = topkwords(mdl,k,topicIdx)
台=20×2表单词分数________ _________“眼睛”0.11155“美”0.05777“有“0.055778”还“0.049801”真“0.043825”矿“0.033865”找“0.031873”黑“0.025897”看“0.023905”是“0.023905”种“0.021913”见“0.021913”发现“0.017929”罪“0.015937”三“0.013945”金“0.0099608”\
找到第一个主题的前20个单词,并对分数使用逆平均缩放。
tbl = topkwords(mdl,k,topicIdx,“缩放”,“inversemean”)
台=20×2表单词分数________ ________“眼睛”1.2718“美丽”0.59022“有“0.5692”仍然“0.50269”真“0.43719”矿“0.32764”找到“0.32544”黑“0.25931”是“0.23755”看“0.22519”种“0.21594”见“0.21594”发现“0.17326”罪“0.15223”三“0.13143”金“0.090698”相关
使用缩放分数作为大小数据创建一个词云。
图wordcloud (tbl.Word tbl.Score);
LDA模型的文档主题概率
获取用于拟合LDA模型的文档的文档主题概率(也称为主题混合)。
若要重现结果,请设置rng
来“默认”
.
rng (“默认”)
加载示例数据。该文件sonnetsPreprocessed.txt
包含莎士比亚十四行诗的预处理版本。该文件每行包含一首十四行诗,用空格分隔单词。从中提取文本sonnetsPreprocessed.txt
,以换行符将文本分割为文档,然后对文档进行标记。
文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData = split(str,换行符);documents = tokenizedDocument(textData);
使用创建单词袋模型bagOfWords
.
bag = bagOfWords(文档);
拟合20个主题的LDA模型。若要抑制详细输出,请设置“详细”
为0。
numTopics = 20;mdl = fitlda(包,numTopics,“详细”, 0)
mdl = ldaModel与属性:NumTopics: 20 WordConcentration: 1 TopicConcentration: 5 corpustopicprobability:[0.0500 0.0500 0.0500 0.0500 0.0500…[中文]概率:[3092x20 double]词汇:["最公平的" "生物"…FitInfo: [1x1 struct]
查看训练数据中第一个文档的主题概率。
topicmixture = mdl. documenttopicprobability;图栏(topicmixture (1,:))“文档1主题概率”)包含(“主题指数”) ylabel (“概率”)
预测文档的顶级LDA主题
若要重现本例中的结果,请设置rng
来“默认”
.
rng (“默认”)
加载示例数据。该文件sonnetsPreprocessed.txt
包含莎士比亚十四行诗的预处理版本。该文件每行包含一首十四行诗,用空格分隔单词。从中提取文本sonnetsPreprocessed.txt
,以换行符将文本分割为文档,然后对文档进行标记。
文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData = split(str,换行符);documents = tokenizedDocument(textData);
使用创建单词袋模型bagOfWords
.
bag = bagOfWords(文档)
带有属性的单词:[154x3092 double]词汇:["最公平的" "生物" "欲望"…NumWords: 3092 NumDocuments: 154
拟合20个主题的LDA模型。
numTopics = 20;mdl = fitlda(包,numTopics)
初始主题分配在0.043761秒内采样。===================================================================================== | 迭代每个相对| | |时间培训|主题| | | | | |迭代变化困惑浓度浓度| | | | | |(秒)日志(L) | | |迭代 | ===================================================================================== | 0 | 0.01 | 5.000 | 1.159 e + 03 | | 0 | | 1 | 0.04 | 5.4884 e-02 e + 02 | 8.028 | 5.000 | 0 | | 2 | 0.04 | 4.7400 e 03 e + 02 | 7.778 | 5.000 | 0 | | 3 | 0.047.602 e + 02 | 5.000 | 3.4597 e 03 | | 0 | | 4 | 0.04 | 3.4662 e 03 e + 02 | 7.430 | 5.000 | 0 | | 5 | 0.04 | 2.9259 e 03 e + 02 | 7.288 | 5.000 | 0 | | 6 | 0.03 | 6.4180 e-05 e + 02 | 7.291 | 5.000 | 0 | =====================================================================================
mdl = ldaModel与属性:NumTopics: 20 WordConcentration: 1 TopicConcentration: 5 corpustopicprobability:[0.0500 0.0500 0.0500 0.0500 0.0500…[中文]概率:[3092x20 double]词汇:["最公平的" "生物"…FitInfo: [1x1 struct]
预测一组新文档的主要主题。
newDocuments = tokenizedDocument([“名字有什么关系?”玫瑰不管叫什么名字都一样芬芳。”“如果音乐是爱情的食粮,那就继续演奏吧。”]);topicIdx = predict(mdl,newDocuments)
topicIdx =2×119日8
使用词云将预测的主题可视化。
图subplot(1,2,1) wordcloud(mdl,topicIdx(1));标题(“主题”+ topicIdx(1)) subplot(1,2,2) wordcloud(mdl,topicIdx(2));标题(“主题”+ topicIdx (2))
更多关于
潜狄利克雷分配
一个潜在狄利克雷分配LDA模型是一种文档主题模型,它发现文档集合中的潜在主题,并推断主题中的单词概率。的集合进行LDA建模D文档作为主题混合 ,在K以词概率向量为特征的主题 .该模型假设主题混合 ,以及主题 浓度参数遵循狄利克雷分布 而且 分别。
主题混合
概率向量是长度吗K,在那里K是主题的数量。条目
是主题的概率吗我出现在d文档。的行对应的主题混合DocumentTopicProbabilities
的属性ldaModel
对象。
的话题
概率向量是长度吗V,在那里V是词汇表中的单词数。条目
对应于的概率v中出现的词汇我主题。的话题
的列对应TopicWordProbabilities
的属性ldaModel
对象。
考虑到这些话题 狄利克雷先验 对于主题混合物,LDA假设文档的生成过程如下:
对主题混合进行抽样 .随机变量 概率向量是长度吗K,在那里K是主题的数量。
对于文档中的每个单词:
对主题索引进行抽样 .随机变量z是从1到1的整数吗K,在那里K是主题的数量。
选取一个单词 .随机变量w是从1到1的整数吗V,在那里V是词汇表中的单词数,并表示词汇表中对应的单词。
在这个生成过程中,文件与文字的联合分发 ,主题混合 ,并带有主题索引 是由
在哪里N是文档中的字数。对联合分布求和z然后对其积分 生成文档的边际分布w:
下面的图表说明了LDA模型作为一个概率图形模型。阴影节点为观测变量,无阴影节点为潜在变量,无轮廓节点为模型参数。箭头突出了随机变量之间的依赖关系,而板块表示重复的节点。
狄利克雷分布
的狄利克雷分布是多项式分布的连续推广。给定类别的数量 ,浓度参数 ,在那里 向量的长度是正的实数吗K,狄利克雷分布的概率密度函数为
在哪里B为多元Beta函数
狄利克雷分布的一个特例是对称狄利克雷分布.对称狄利克雷分布由浓度参数表征 ,其中的所有元素 都是一样的。
版本历史
Beispiel offnen
Sie haben eine geänderte版本dieses Beispiels。Möchten Sie dieses Beispiel mit Ihren Änderungen öffnen?
MATLAB-Befehl
你的身体和身体之间的联系MATLAB-Befehl
Führen Sie den Befehl durch Eingabe in das MATLAB-Befehlsfenster aus。web浏览器unterstützen keine MATLAB-Befehle。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。