主要内容

萨莫代尔

潜在语义分析(LSA)模型

描述

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

创建

使用fitlsa函数。

属性

全部展开

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

例子:100

指数缩放特征组件的强度记录分数词谱属性,使改变函数,指定为非负标量。LSA模型通过属性的奇异值(特性强度)扩展属性,指数为FeatureStrengthExponent / 2

例子:2.5

分量权重,指定为数值向量。LSA模型的分量权重为奇异值的平方。ComponentWeights是1 -NumComponents向量j条目对应于部件的重量j这个components are ordered by decreasing weights. You can use the weights to estimate the importance of components.

为每个输入文档的向量评分,指定为一个矩阵。LSA模型的文档分数是每个文档在低维空间中用于拟合LSA模型的分数向量。记录分数是一个D-借-NumComponents矩阵D是用于适应LSA模型的文档数(i,j)第条记录分数对应于组件的分数j在文档

每个组件的单词分数,以矩阵形式指定。LSA模型的单词分数是LSA模型每个组件中每个单词的分数。词谱是一个V-借-NumComponents矩阵V中的字数是多少词汇表这个(v, j)第条词谱对应于单词的分数v在组件j

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

数据类型:字符串

对象的功能

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

例子

全部崩溃

将潜在语义分析模型应用于文档集合。

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

文件名=“十四行诗预处理.txt”;str = extractFileText(文件名);textData =分裂(str,换行符);文件= tokenizedDocument (textData);

使用创建一个单词包模型bagOfWords

袋= bagOfWords(文档)
bag = bagOfWords with properties: Counts: [154x3092 double]词汇:[1x3092 string] NumWords: 3092 NumDocuments: 154

适合一个具有20个组件的LSA模型。

numComponents=20;mdl=fitlsa(袋子,numComponents)
mdl = lsammodel with properties: NumComponents: 20 ComponentWeights: [1x20 double] DocumentScores: [154x20 double] WordScores: [3092x20 double

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

newDocuments = tokenizedDocument ([“名字有什么关系呢?”玫瑰不管叫什么名字都一样芳香。”“如果音乐是爱的食物,那就继续演奏吧。”]);dscores=转换(mdl、新文档)
数据核=2×200.1338 0.1623 0.1680 -0.0541 - 0.02464 -0.0134 -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.0384 -0.0005 0.1943 0.0207 0.0278 0.0001 -0.0469

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

str=[“我早餐喜欢吃火腿、鸡蛋和熏肉。”“我有时不吃早餐。”“我晚饭吃鸡蛋和火腿。”];文件= tokenizedDocument (str);袋= bagOfWords(文件);

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

numComponents = 2;指数= 0.5;mdl = fitlsa(袋、numComponents、...“FeatureStrengthExponent”指数)
mdl=lsaModel,属性:NumComponents:2个ComponentWeights:[16.2268 4.0000]文档分数:[3x2 double]文字分数:[14x2 double]词汇:[1x14字符串]功能强度HexComponent:0.5000

使用以下公式计算文档得分向量之间的余弦距离:pdist.查看矩阵中的距离D使用方形D(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

通过在指南针图中绘制文档分数向量,可视化文档之间的相似性。

数字罗盘(双核(1,1)、双核(1,2),“红色”)持有在…上指南针(dscores (2, 1), dscores (2, 2),“绿色”)指南针(dscores (3,1), dscores (3, 2),“蓝色”)持有标题(“文档分数”)传奇([“文档1”“文档2”“文档3”],“位置”“bestoutside”

介绍了R2017b