lsaModel
潜在语义分析(LSA)模型
描述
潜在语义分析(LSA)模型发现文档及其包含的单词之间的关系。LSA模型是一种降维工具,用于在高维字数上运行低维统计模型。如果模型使用n-grams袋模型拟合,那么软件将n-grams视为单独的单词。
创建
方法创建LSA模型fitlsa
函数。
属性
NumComponents
- - - - - -组件数量
非负整数
组件数,指定为非负整数。分量的数量就是结果向量的维数。更改的值NumComponents
更改结果向量的长度,但不影响初始值。你只能设置NumComponents
小于或等于用于拟合LSA模型的组件的数量。
例子:One hundred.
FeatureStrengthExponent
- - - - - -指数缩放特性组件的强度
负的标量
的指数缩放特性组件的强度DocumentScores
而且WordScores
属性,以及变换
函数,指定为非负标量。LSA模型按属性的奇异值(特征强度)进行缩放,其指数为FeatureStrengthExponent / 2
.
例子:2.5
ComponentWeights
- - - - - -组件的重量
数值向量
组件权重,指定为数值向量。LSA模型的分量权重是奇异值的平方。ComponentWeights
是1 × -吗NumComponents
向量。j第Th项对应于分量的权重j.各组件按权重递减顺序排列。您可以使用权重来估计组件的重要性。
DocumentScores
- - - - - -为每个输入文档的向量打分
矩阵
为每个输入文档的向量打分,指定为矩阵。LSA模型的文档得分是每个文档在低维空间中用来拟合LSA模型的得分向量。DocumentScores
是一个D——- - - - - -NumComponents
矩阵D是用来拟合LSA模型的文档数量。的(i, j)第Th项DocumentScores
对应于组件的得分j在文档我.
WordScores
- - - - - -每个组件的字数得分
矩阵
每个组件的字数分数,以矩阵形式指定。LSA模型的单词得分是LSA模型中每个组件中每个单词的得分。WordScores
是一个V——- - - - - -NumComponents
矩阵V字数是多少词汇表
.的(v, j)第Th项WordScores
对应单词的得分v在组件j.
词汇表
- - - - - -模型中唯一的单词
字符串向量
模型中的唯一单词,指定为字符串向量。
数据类型:字符串
对象的功能
变换 |
将文档转换为低维空间 |
例子
拟合LSA模型
为文档集合拟合一个潜在语义分析模型。
加载示例数据。该文件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
使用squareform
.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
通过在罗盘图中绘制文档得分向量来可视化文档之间的相似性。
图罗盘(dscores (1, 1), dscores(1、2),“红色”)举行在指南针(dscores (2, 1), dscores (2, 2),“绿色”)指南针(dscores (3,1), dscores (3, 2),“蓝”)举行从标题(“文档”)传说([“文档1”“文档2”“文档3”),“位置”,“bestoutside”)
版本历史
在R2017b中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。