主要内容

lsaModel

潜在语义分析(LSA)模型

描述

潜在语义分析(LSA)模型发现文档及其包含的单词之间的关系。LSA模型是一种降维工具,用于在高维字数上运行低维统计模型。如果模型使用n-grams袋模型拟合,那么软件将n-grams视为单独的单词。

创建

方法创建LSA模型fitlsa函数。

属性

全部展开

组件数,指定为非负整数。分量的数量就是结果向量的维数。更改的值NumComponents更改结果向量的长度,但不影响初始值。你只能设置NumComponents小于或等于用于拟合LSA模型的组件的数量。

例子:One hundred.

的指数缩放特性组件的强度DocumentScores而且WordScores属性,以及变换函数,指定为非负标量。LSA模型按属性的奇异值(特征强度)进行缩放,其指数为FeatureStrengthExponent / 2

例子:2.5

组件权重,指定为数值向量。LSA模型的分量权重是奇异值的平方。ComponentWeights是1 × -吗NumComponents向量。j第Th项对应于分量的权重j.各组件按权重递减顺序排列。您可以使用权重来估计组件的重要性。

为每个输入文档的向量打分,指定为矩阵。LSA模型的文档得分是每个文档在低维空间中用来拟合LSA模型的得分向量。DocumentScores是一个D——- - - - - -NumComponents矩阵D是用来拟合LSA模型的文档数量。的(i, j)第Th项DocumentScores对应于组件的得分j在文档

每个组件的字数分数,以矩阵形式指定。LSA模型的单词得分是LSA模型中每个组件中每个单词的得分。WordScores是一个V——- - - - - -NumComponents矩阵V字数是多少词汇表.的(v, j)第Th项WordScores对应单词的得分v在组件j

模型中的唯一单词,指定为字符串向量。

数据类型:字符串

对象的功能

变换 将文档转换为低维空间

例子

全部折叠

为文档集合拟合一个潜在语义分析模型。

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

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

使用创建单词袋模型bagOfWords

bag = bagOfWords(文档)
带有属性的单词:[154x3092 double]词汇:["最公平的" "生物" "欲望"…NumWords: 3092 NumDocuments: 154

拟合一个有20个分量的LSA模型。

numComponents = 20;mdl = fitlsa(包,numComponents)
mdl = lsammodel with properties: NumComponents: 20 ComponentWeights: [2.7866e+03 515.5889 443.6428 316.4191…][英语单词评分:[3092x20 double]词汇:["最公平的" "生物" "欲望"…指数:2

使用LSA模型将新文档转换为低维空间。

newDocuments = tokenizedDocument([“名字有什么关系?”玫瑰不管叫什么名字都一样芬芳。”“如果音乐是爱情的食粮,那就继续演奏吧。”]);dscores = transform(mdl,newDocuments)
dscores =2×200.1338 0.1623 0.1680 -0.0541 -0.2464 0.0134 0.2604 0.0205 -0.1127 0.0627 0.3311 -0.2327 0.1689 -0.2695 0.0228 0.1241 0.1198 0.2535 -0.0607 0.0305 0.2547 0.5576 -0.0095 0.5660 -0.0643 0.1236 -0.0082 -0.0522 0.0690 -0.0330 0.0385 0.0803 -0.0373 0.0384 -0.0005 0.1943 0.0207 0.0278 0.0001 -0.0469

从一些文本数据创建单词袋模型。

STR = [“我早餐喜欢吃火腿、鸡蛋和培根。”“我有时不吃早餐。”“我晚餐吃鸡蛋和火腿。”];documents = tokenizedDocument(str);bag = bagOfWords(文档);

拟合带有两个组件的LSA模型。将特征强度指数设置为0.5。

numComponents = 2;指数= 0.5;mdl = fitlsa(包,numComponents,...“FeatureStrengthExponent”指数)
mdl = lsammodel with properties: NumComponents: 2 ComponentWeights: [16.2268 4] DocumentScores: [3x2 double] WordScores: [14x2 double]词汇:["我" "享受" "火腿" ","…指数:0.5000

计算文档得分向量之间的余弦距离pdist.在矩阵中查看距离D使用squareformD (i, j)表示文档之间的距离而且j

dscores = mdl.DocumentScores;距离= pdist(dscores,的余弦);D =平方(距离)
D =3×30 0.6244 0.1489 0.6244 0 1.1670 0.1489 1.1670 0

通过在罗盘图中绘制文档得分向量来可视化文档之间的相似性。

图罗盘(dscores (1, 1), dscores(1、2),“红色”)举行指南针(dscores (2, 1), dscores (2, 2),“绿色”)指南针(dscores (3,1), dscores (3, 2),“蓝”)举行标题(“文档”)传说([“文档1”“文档2”“文档3”),“位置”“bestoutside”

版本历史

在R2017b中引入