主要内容

预测

预测文档的顶级LDA主题

描述

例子

topicIdx=预测(ldaMdl文档返回具有最大可能性的LDA主题索引文档基于LDA模型ldaMdl

topicIdx=预测(ldaMdl返回由bag-of-words或bag-of-n-grams模型表示的文档的概率最大的LDA主题索引。

例子

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

例子

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

例子

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

例子

全部折叠

要重现本例中的结果,请设置rng“默认”

rng (“默认”

加载示例数据。该文件sonnetsPreprocessed.txt包含了经过预处理的莎士比亚十四行诗。该文件每行包含一首十四行诗,单词之间用空格分隔。将文本从sonnetsPreprocessed.txt,将文本以换行符分割为文档,然后标记文档。

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

创建一个词袋模型使用bagOfWords

袋= bagOfWords(文档)
单词:[" fairrest " "creatures" "desire"…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.05 | 3.4597 e 03 e + 02 | 7.602 | 5.000 | 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 corpustopic概率:[0.0500 0.0500 0.0500 0.0500 0.0500…词汇:[“最公平的”“生物”…TopicOrder: 'initial-fit-probability'

预测新文档数组的顶级主题。

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.03 | 3.4597 e 03 e + 02 | 7.602 | 5.000 | 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 corpustopic概率:[0.0500 0.0500 0.0500 0.0500 0.0500…词汇:["1" "2" "3" "4" "5"…TopicOrder: 'initial-fit-probability'

预测中前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(文档)
单词:[" fairrest " "creatures" "desire"…NumWords: 3092 NumDocuments: 154

拟合具有20个主题的LDA模型。要抑制verbose输出,请设置“详细”为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.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 (“分数”

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

输入参数

全部折叠

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

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

提示

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

输入bag-of-words或bag-of-n-grams模型,指定为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