主要内容

logp

文档log-probabilities和LDA模型的拟合优度

描述

例子

logProb= logp (ldaMdl,文档)返回的log-probabilities文档LDA模型下ldaMdl

例子

logProb= logp (ldaMdl,计数)返回文件的log-probabilities由词项的矩阵表示计数

logProb= logp (ldaMdl,)返回文件的log-probabilities由bag-of-words或bag-of-n-grams模型表示。

例子

(logProb,ppl)= logp (___)返回从log-probabilities困惑计算。

___= logp (___,名称,值)使用一个或多个指定附加选项名称-值对参数。

例子

全部折叠

复制的结果在这个例子中,集rng“默认”

rng (“默认”)

加载示例数据。该文件sonnetsPreprocessed.txt莎士比亚的十四行诗的包含预处理版本。文件包含每行一个十四行诗,单词之间用一个空格来分隔。提取的文本sonnetsPreprocessed.txt在换行字符,文本分割成文档,然后标记文件。

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

创建一个bag-of-words模型使用bagOfWords

袋= bagOfWords(文档)
袋= bagOfWords属性:计数:[154 x3092双]词汇:“公平”“生物”“希望”“增加”“从而”“美”“玫瑰”“可能”“从不”“死”“成熟”“时间”“死”“温柔”“继承人”“熊”“记忆”“你”“简约”…]NumWords: 3092 NumDocuments: 154

适合一个LDA模型与20的话题。抑制详细输出,集“详细”为0。

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

计算的文档log-probabilities培训文档和向他们展示在一个柱状图。

logProbabilities = logp (mdl、文档);图直方图(logProbabilities)包含(“日志概率”)ylabel (“频率”)标题(“文档Log-Probabilities”)

图包含一个坐标轴对象。Log-Probabilities坐标轴对象与标题文档,包含日志概率,ylabel频率包含一个直方图类型的对象。

识别对数概率最低的三个文件。较低的对数概率可能表明文档可能是局外人。

[~,idx] = (logProbabilities)进行排序;idx (1:3)
ans =3×1146年19日65年
文档(idx (1:3))
ans = 3 x1 tokenizedDocument: 76令牌:可怜的灵魂中心有罪的地球地球叛军力量数组为何你松遭受缺乏绘画外墙壁昂贵的同性恋为什么大量成本短期租赁你你衰落的豪宅花费蠕虫继承者过量吃了你的费用你发现最后的灵魂住在仆人的损失让松加重你商店购买条款你神圣的销售小时渣滓美联储丰富应当饲料死亡提要男人一旦死亡有死亡76令牌:吞噬时间冲你狮子的爪子使地球吞噬自己的甜蜜育摘下敏锐的牙齿凶猛的老虎嘴燃烧longlivd凤凰血使高兴难过的季节你舰队只要你必swiftfooted宽世界褪色糖果禁止你十恶不赦的犯罪o雕刻你的小时喜欢公平的眉毛也画线你的古董笔你的课程无污点的允许美模式成功男人但你尽管你错误的爱情诗最老次住年轻73令牌:黄铜、石头或地球也不是无限的海悲伤死亡率oersways愤怒力量必美举行答辩的行动更强的花啊,夏天蜂蜜呼吸责怪wrackful围攻殴打天坚不可摧的坚固的岩石和盖茨钢强时间衰变o害怕冥想呜呼应乘以最好的珠宝箱谎言藏强有力的手阻碍迅速脚破坏美禁止o没有除非奇迹可能黑色墨水爱仍然闪闪发亮

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

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

适合一个LDA模型与20的话题。

numTopics = 20;numTopics mdl = fitlda(计数)
最初的话题作业在0.059809秒内取样。= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = |迭代每个相对| | |时间培训|主题|主题| | | | |迭代变化困惑浓度浓度| | | | | |(秒)日志(L) | | |迭代| = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = | 0 | 0.00 | 5.000 | 1.159 e + 03 | | 0 | | 1 | 0.02 | 5.4884 e-02 e + 02 | 8.028 | 5.000 | 0 | | 2 | 0.02 | 4.7400 e 03 e + 02 | 7.778 | 5.000 | 0 | | 3 | 0.04 | 3.4597 e 03 e + 02 | 7.602 | 5.000 | 0 | | 4 | 0.04 | 3.4662 e 03 e + 02 | 7.430 | 5.000 | 0 | | 5 | 0.02 | 2.9259 e 03 e + 02 | 7.288 | 5.000 | 0 | | 6 | 0.02 | 6.4180 e-05 e + 02 | 7.291 | 5.000 | 0 | = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
mdl = ldaModel属性:NumTopics: 20 WordConcentration: 1 TopicConcentration: 5 CorpusTopicProbabilities: [0.0500 0.0500 0.0500 0.0500 0.0500 0.0500 0.0500 0.0500 0.0500 0.0500 0.0500 0.0500 0.0500 0.0500 0.0500 0.0500 0.0500 0.0500 0.0500 0.0500] DocumentTopicProbabilities: [154 x20的双]TopicWordProbabilities: [3092 x20的双]词汇:(“1”“2”“3”“4”“5”“6”“7”“8”“9”“10”“十一”“12”“13”“14”“15”“16”“17”“18”“19”“20”“21”“22”“23”“24”“25”“26”“27”…]TopicOrder:“initial-fit-probability”FitInfo: [1 x1 struct]

计算的文档log-probabilities培训文档。为每个文档指定画500个样本。

numSamples = 500;logProbabilities = logp (mdl计数,“NumSamples”,numSamples);

显示文档log-probabilities直方图。

图直方图(logProbabilities)包含(“日志概率”)ylabel (“频率”)标题(“文档Log-Probabilities”)

图包含一个坐标轴对象。Log-Probabilities坐标轴对象与标题文档,包含日志概率,ylabel频率包含一个直方图类型的对象。

识别指数的对数概率最低的三个文件。

[~,idx] = (logProbabilities)进行排序;idx (1:3)
ans =3×1146年19日65年

比较两个LDA模型的拟合优度计算的困惑了测试集的文档。

复制的结果,集rng“默认”

rng (“默认”)

加载示例数据。该文件sonnetsPreprocessed.txt莎士比亚的十四行诗的包含预处理版本。文件包含每行一个十四行诗,单词之间用一个空格来分隔。提取的文本sonnetsPreprocessed.txt在换行字符,文本分割成文档,然后标记文件。

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

预留10%的随机文件进行测试。

numDocuments =元素个数(文件);本量利= cvpartition (numDocuments,“坚持”,0.1);documentsTrain =文档(cvp.training);documentsTest =文档(cvp.test);

从培训文档创建一个bag-of-words模型。

袋= bagOfWords (documentsTrain)
袋= bagOfWords属性:计数:[139 x2909双]词汇:“公平”“生物”“希望”“增加”“从而”“美”“玫瑰”“可能”“从不”“死”“成熟”“时间”“死”“温柔”“继承人”“熊”“记忆”“你”“简约”…]NumWords: 2909 NumDocuments: 139

适合一个LDA模型与bag-of-words 20主题模型。抑制详细输出,集“详细”为0。

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

视图的信息模型。

mdl1.FitInfo
ans =结构体字段:TerminationCode: 1 TerminationStatus:“相对容忍对数似满意。”NumIterations: 26 NegativeLogLikelihood: 5.6915e+04 Perplexity: 742.7118 Solver: "cgs" History: [1x1 struct]

计算了测试集的困惑。

[~,ppl1] = logp (mdl1 documentsTest)
ppl1 = 781.6078

适合一个LDA模型与bag-of-words 40主题模型。

numTopics = 40;numTopics mdl2 = fitlda(袋,“详细”,0);

视图的信息模型。

mdl2.FitInfo
ans =结构体字段:TerminationCode: 1 TerminationStatus:“相对容忍对数似满意。”NumIterations: 37 NegativeLogLikelihood: 5.4466e+04 Perplexity: 558.8685 Solver: "cgs" History: [1x1 struct]

计算了测试集的困惑。

[~,ppl2] = logp (mdl2 documentsTest)
ppl2 = 808.6602

较低的困惑表明模型可以更好地适应了测试数据。

输入参数

全部折叠

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

输入文件,指定为一个tokenizedDocument数组,字符串数组的话,或一个细胞的特征向量。如果文档不是一个tokenizedDocument数组,那么它必须是一个行向量代表一个文档,其中每个元素是一个词。指定多个文档,使用tokenizedDocument数组中。

输入bag-of-words或bag-of-n-grams模型,指定为一个bagOfWords对象或一个bagOfNgrams对象。如果是一个bagOfNgrams函数对象,然后将每个语法视为一个字。

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

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“NumSamples”, 500年指定为每个文档画500个样本

面向文档的字数矩阵,指定为逗号分隔组成的“DocumentsIn”和下列之一:

  • “行”——输入矩阵的单词统计行相应的文档。

  • “列”——输入单词统计的转置矩阵列对应的文件。

此选项仅适用于如果你输入文件指定为一个矩阵的单词计数。

请注意

如果你东方字数矩阵,这样文件并指定对应列“DocumentsIn”、“列”,那么你可能会经历在optimization-execution时间显著减少。

样品数量为每个文档,绘制指定为逗号分隔组成的“NumSamples”和一个正整数。

例子:“NumSamples”, 500年

输出参数

全部折叠

Log-probabilities LDA模型下的文件,作为一个数值向量返回。

困惑的文件从log-probabilities计算,作为一个积极的标量返回。

算法

logp使用迭代pseudo-count描述的方法[1]

引用

[1]瓦拉赫,汉娜。,Iain Murray, Ruslan Salakhutdinov, and David Mimno. "Evaluation methods for topic models." In学报》第26届国际会议上机器学习,1105 - 1112页。ACM, 2009年。哈佛大学

版本历史

介绍了R2017b