主要内容

预测

预测文档的顶级LDA主题

描述

例子

topicIdx=预测(ldaMdl文档返回概率最大的LDA主题索引文档基于LDA模型ldaMdl

topicIdx=预测(ldaMdl返回具有最大概率的LDA主题索引,这些文档由单词袋或n克袋模型表示。

例子

topicIdx=预测(ldaMdl计数返回由字数矩阵表示的文档的最大概率的LDA主题索引。

例子

topicIdx分数) =预测(___也返回后验概率矩阵分数

例子

___=预测(___名称,值使用一个或多个名称-值对参数指定其他选项。

例子

全部折叠

若要在此示例中再现结果,请设置rng“默认”

rng (“默认”

加载示例数据。该文件sonnetsPreprocessed.txt包含莎士比亚十四行诗的预处理版本。该文件每行包含一首十四行诗,词之间用空格隔开。从中提取文本sonnetsPreprocessed.txt,以换行符将文本拆分为文档,然后对文档进行标记。

文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData =分裂(str,换行符);文件= tokenizedDocument (textData);

使用创建单词袋模型bagOfWords

袋= bagOfWords(文档)
计数:[154x3092 double]词汇:[“最公平的”“生物”“欲望”…NumWords: 3092 NumDocuments: 154

拟合一个包含20个主题的LDA模型。

numTopics = 20;numTopics mdl = fitlda(袋)
在0.035863秒内采样的初始主题分配。===================================================================================== | 迭代每个相对| | |时间培训|主题| | | | | |迭代变化困惑浓度浓度| | | | | |(秒)日志(L) | | |迭代  | ===================================================================================== | 0 | 0.02 | 5.000 | 1.159 e + 03 | | 0 | | 1 | 0.08 | 5.4884 e-02 e + 02 | 8.028 | 5.000 | 0 | | 2 | 0.06 | 4.7400 e 03 e + 02 | 7.778 | 5.000 | 0 | | 3 | 0.057.602 e + 02 | 5.000 | 3.4597 e 03 | | 0 | | 4 | 0.05 | 3.4662 e 03 e + 02 | 7.430 | 5.000 | 0 | | 5 | 0.05 | 2.9259 e 03 e + 02 | 7.288 | 5.000 | 0 | | 6 | 0.06 | 6.4180 e-05 e + 02 | 7.291 | 5.000 | 0  | =====================================================================================
mdl = ldaModel with properties: NumTopics: 20 WordConcentration: 1 TopicConcentration: 5 corpustopicprobability:[0.0500 0.0500 0.0500 0.0500 0.0500…[154x20 double] [3092x20 double]词汇:["最公平的" "生物"…TopicOrder: '初始匹配概率' FitInfo: [1x1 struct]

预测一系列新文档的首选主题。

newDocuments = tokenizedDocument ([“名字有什么意义?”玫瑰不论叫什么名字,闻起来都一样香。”“如果音乐是爱情的食粮,就继续演奏吧。”]);newDocuments topicIdx =预测(mdl)
topicIdx =2×119日8

使用词云将预测的主题可视化。

图次要情节(1、2、1)wordcloud (mdl, topicIdx (1));标题(“主题”+ topicIdx(1)) subplot(1,2,2) wordcloud(mdl,topicIdx(2));标题(“主题”+ topicIdx (2))

图中包含wordcloud类型的对象。wordcloud类型的图表标题为Topic 19。wordcloud类型的图表标题为Topic 8。

加载示例数据。sonnetsCounts.mat包含一个字数矩阵和莎士比亚十四行诗预处理版本的相应词汇表。

负载sonnetsCounts.mat大小(数量)
ans =1×2154 3092

拟合一个包含20个主题的LDA模型。若要在此示例中再现结果,请设置rng“默认”

rng (“默认”) numTopics = 20;numTopics mdl = fitlda(计数)
在0.177311秒内采样的初始主题分配。===================================================================================== | 迭代每个相对| | |时间培训|主题| | | | | |迭代变化困惑浓度浓度| | | | | |(秒)日志(L) | | |迭代  | ===================================================================================== | 0 | 1.50 | 5.000 | 1.159 e + 03 | | 0 | | 1 | 0.04 | 5.4884 e-02 e + 02 | 8.028 | 5.000 | 0 | | 2 | 0.05 | 4.7400 e 03 e + 02 | 7.778 | 5.000 | 0 | | 3 | 0.037.602 e + 02 | 5.000 | 3.4597 e 03 | | 0 | | 4 | 0.06 | 3.4662 e 03 e + 02 | 7.430 | 5.000 | 0 | | 5 | 0.05 | 2.9259 e 03 e + 02 | 7.288 | 5.000 | 0 | | 6 | 0.05 | 6.4180 e-05 e + 02 | 7.291 | 5.000 | 0  | =====================================================================================
mdl = ldaModel with properties: NumTopics: 20 WordConcentration: 1 TopicConcentration: 5 corpustopicprobability:[0.0500 0.0500 0.0500 0.0500 0.0500…[154x20 double] topicwordprobability: [3092x20 double]词汇:["1" "2" "3" "4" "5"…TopicOrder: '初始匹配概率' FitInfo: [1x1 struct]

预测的前5个文档的首要主题计数

topicIdx =预测(mdl计数(1:5,:))
topicIdx =5×13 15 19 3 14

若要在此示例中再现结果,请设置rng“默认”

rng (“默认”

加载示例数据。该文件sonnetsPreprocessed.txt包含莎士比亚十四行诗的预处理版本。该文件每行包含一首十四行诗,词之间用空格隔开。从中提取文本sonnetsPreprocessed.txt,以换行符将文本拆分为文档,然后对文档进行标记。

文件名=“sonnetsPreprocessed.txt”;str = extractFileText(文件名);textData =分裂(str,换行符);文件= tokenizedDocument (textData);

使用创建单词袋模型bagOfWords

袋= bagOfWords(文档)
计数:[154x3092 double]词汇:[“最公平的”“生物”“欲望”…NumWords: 3092 NumDocuments: 154

拟合一个包含20个主题的LDA模型。若要抑制详细输出,请设置“详细”为0。

numTopics = 20;mdl = fitlda(袋、numTopics、“详细”, 0);

预测新文档的首要主题。指定迭代限制为200。

newDocument = tokenizedDocument (“名字有什么意义?”玫瑰不论叫什么名字,闻起来都一样香。”);iterationLimit = 200;[topicIdx,分数]=预测(mdl newDocument,...“IterationLimit”iterationLimit)
topicIdx = 19
成绩=1×200.0250 0.0250 0.0250 0.1250 0.0250 0.0250 0.0250 0.0250 0.0250 0.0730 0.0250 0.0250 0.0770 0.0250 0.0250 0.0250 0.0250 0.0250 0.2250 0.1250

在柱状图中查看预测分数。

图酒吧(分数)标题(“LDA话题预测分数”)包含(“主题指数”) ylabel (“分数”

图中包含一个axes对象。标题为LDA Topic Prediction Scores的axes对象包含一个类型为bar的对象。

输入参数

全部折叠

输入LDA模型,指定为ldaModel对象。

输入文档,指定为tokenizedDocument数组,字的字符串数组,或字符向量的单元格数组。如果文档是一个tokenizedDocument,那么它一定是一个列向量。如果文档是字符串数组或字符向量的单元格数组,则它必须是单个文档的一行单词。

提示

为了确保函数不会丢弃有用的信息,您必须首先使用与预处理用于训练模型的文档相同的步骤对输入文档进行预处理。

输入单词袋或n克袋模型,指定为bagOfWords对象或一个bagOfNgrams对象。如果是一个bagOfNgrams对象,则函数将每个n-gram视为单个单词。

单词的频率计数,指定为一个非负整数矩阵。如果您指定“DocumentsIn”“行”,则值为计数(i, j)对应于的次数j这个单词出现在文档。否则,该值计数(i, j)对应于的次数这个单词出现在j文档。

名称-值参数

指定逗号分隔的可选对名称,值参数。的名字参数名称和价值对应的值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“IterationLimit”,200年指定迭代限制为200。

文档在字数矩阵中的定位,指定为逗号分隔的对,由“DocumentsIn”和以下其中之一:

  • “行”-输入是一个字数矩阵,包含与文档对应的行。

  • “列”-输入是一个转置矩阵的字数与列对应的文档。

此选项仅适用于将输入文档指定为字数矩阵的情况。

请注意

如果确定字数矩阵的方向,使文档对应于列并指定“DocumentsIn”、“列”,那么优化执行时间可能会显著减少。

最大迭代次数,指定为逗号分隔的对,由“IterationLimit”一个正整数。

例子:“IterationLimit”,200年

对数似然上的相对公差,用逗号分隔的对表示“LogLikelihoodTolerance”一个正的标量。当达到这个公差时,优化终止。

例子:“LogLikelihoodTolerance”,0.001

输出参数

全部折叠

预测主题索引,作为数字索引的向量返回。

预测的主题概率,返回为D——- - - - - -K矩阵,D是输入文档的数量和K为LDA模型中的主题数。评分(i, j)概率是那个话题吗j出现在文档。每一行的分数总结。

介绍了R2017b