主题模型之潜在语义分析(Latent Semantic Analysis)
主题模型(Topic Models)是一套试图在大量文档中发现潜在主题结构的机器学习模型,主题模型通过分析文本中的词来发现文档中的主题、主题之间的联系方式和主题的发展。通过主题模型可以使我们组织和总结无法人工标注的海量电子文档。较早的主题模型有混合语言模型(Mixture of Unigram),潜在语义索引(Lantent Semantic Index,LSI),概率潜在语义索引(Probabilistic Latent Semantic Indexing,PLSI)。
主题模型中文档是由主题组成的,而主题是词的一个概率分布。David Blei 于2002 年在PLSI 和LSI 模型的基础上提出了Latent Dirichlet Allocation(LDA)模型,LDA 引入了狄利克雷先验参数作为多项式分布的先验分布,从而简化了概率推导。也解决了PLSI 模型中的扩展问题。
潜在语义分析(Latent Semantic Analysis)
基于向量空间模型的方法无法处理一词多义或多词一义的问题,由于人类认知是根据语义而非单词,两篇文章中可能同时出现了单词“flash”,然而一篇是有关电脑技术中的“flash”软件的,另一篇是有关于闪电的研究。如果单从单词本身进行分析很有可能将两篇文章错误的归为一类。并且词的维度太大,如何找到一些关键词可以对一篇文章进行信息压缩也是一件很棘手的问题。特别在信息爆炸的今天。
潜在语义分析是一种自动索引和信息检索的方法,该方法通过无监督的方法将文档和词映射到浅在语义空间(Latent Semantic Space),这个空间被称为主题或语义维度。
隐性语义分析采用将文档或词矩阵进行奇异值分解(Singular Value Decomposition, SVD)的方法。一般而言,文档和文档或者文档和查询之间的相似性在简化的潜语义空间的表达更为可靠。由于奇异值分解的方法本身是对文档特征的排序,可以通过限制奇异值的个数对数据进行降噪和降维。该方法于1988 年由Dumais 等人提出,用于解决关键词检索中由于单词和人类认知含义的差别所引起的漏检索和误检索的问题。下图中便是Susan Dumais,o(^.^)o。

Susan Dumais
LSA 用向量空间模型将文档映射成矩阵, 使用SVD 分解矩阵:
其中矩阵 和
是正交矩阵,矩阵
是包含文档矩阵的奇异值组成的对角阵。
由于矩阵中的奇异值的大小代表了矩阵在该维度的变化大小,并且奇异值在矩阵
中是按照从大到小的顺序排列的。当
中的前k个奇异值较大的时候,取前k个奇异值可以看作是对原来矩阵的近似。
举个例子,数据集中分别有关两个话题的9篇微博文档,话题A是关于话题陈奕迅演唱会的,话题B是关于话题谷歌眼睛问世的。经过分词后将可以得到每个词对应每篇微博文档出现频率的词频表。如下表所示。
话题A:陈奕迅演唱会
A1:陈奕迅的演唱会太好听了,大爱陈奕迅的《十年》
A2:最喜欢的Eason《十年》和《因为爱情》
A3:看陈奕迅的《十年》,现代科技真厉害,现场真棒
A4:北京演唱会,Eason 和王菲对唱《因为爱情》
A5:演唱会陈奕迅为了请到王菲唱《因为爱情》,特地不说话
话题B:谷歌眼镜问世
B1:谷歌眼镜即将上市,现在可以申请试用。
B2:科技新创意–Google Glass
B3:Glass 创意无限,各位Geek 可以想办法试用
B4:谷歌眼镜可以申请试用了,属于可穿戴式科技产品
词频表可以看作是这9条微博的完全统计,通过词频计算表计算表中每篇文档中每个词的TF-IDF权值表,并用权值表进行奇异值分解。
设TF-IDF权值表为,则通过奇异值分解有:
对矩阵和
分别取奇异值分解的前两维,即设k=2,可以得到
和
和
。其中
便可表示为该n篇文章对应在前两维度上的一个点的分布,可以分别取
和
为两个维度绘制每篇文章在这两个维度上的位置(如下图所示,蓝色的方形表示话题B的四篇微博,红色的菱形表示话题A的五篇微博)。对于一篇新的文章
,可以通过计算
得到新的文章到该两个维度上的分布。下图中黑色的圆圈便是新的微博:“Eason演唱会王菲”得到的结果,可以看到在这两个维度上很好的将两个话题区分开了。
Reference:
[1] Dumais S T. Latent semantic analysis[J]. Annual review of information science and technology, 2004, 38(1):188–230.
[2] Blei D M, Lafferty J. Topic models[J]. Text mining: classification, clustering, and applications, 2009,10:71.
[3] Steyvers M, Griffiths T. Probabilistic topic models[J]. Handbook of latent semantic analysis, 2007, 427(7):424–440.
https://blog-potatolife.rhcloud.com/?p=132
主题模型之潜在语义分析(Latent Semantic Analysis)的更多相关文章
- 潜在语义分析Latent semantic analysis note(LSA)原理及代码
文章引用:http://blog.sina.com.cn/s/blog_62a9902f0101cjl3.html Latent Semantic Analysis (LSA)也被称为Latent S ...
- 潜语义分析(Latent Semantic Analysis)
LSI(Latent semantic indexing, 潜语义索引)和LSA(Latent semantic analysis,潜语义分析)这两个名字其实是一回事.我们这里称为LSA. LSA源自 ...
- 主题模型之概率潜在语义分析(Probabilistic Latent Semantic Analysis)
上一篇总结了潜在语义分析(Latent Semantic Analysis, LSA),LSA主要使用了线性代数中奇异值分解的方法,但是并没有严格的概率推导,由于文本文档的维度往往很高,如果在主题聚类 ...
- NLP —— 图模型(三)pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)模型
LSA(Latent semantic analysis,隐性语义分析).pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)和 LDA(Late ...
- Latent Semantic Analysis (LSA) Tutorial 潜语义分析LSA介绍 一
Latent Semantic Analysis (LSA) Tutorial 译:http://www.puffinwarellc.com/index.php/news-and-articles/a ...
- 海量数据挖掘MMDS week4: 推荐系统之隐语义模型latent semantic analysis
http://blog.csdn.net/pipisorry/article/details/49256457 海量数据挖掘Mining Massive Datasets(MMDs) -Jure Le ...
- Latent semantic analysis note(LSA)
1 LSA Introduction LSA(latent semantic analysis)潜在语义分析,也被称为LSI(latent semantic index),是Scott Deerwes ...
- 文本主题模型之潜在语义索引(LSI)
在文本挖掘中,主题模型是比较特殊的一块,它的思想不同于我们常用的机器学习算法,因此这里我们需要专门来总结文本主题模型的算法.本文关注于潜在语义索引算法(LSI)的原理. 1. 文本主题模型的问题特点 ...
- Latent Semantic Analysis(LSA/ LSI)原理简介
LSA的工作原理: How Latent Semantic Analysis Works LSA被广泛用于文献检索,文本分类,垃圾邮件过滤,语言识别,模式检索以及文章评估自动化等场景. LSA其中一个 ...
随机推荐
- SqlServer添加触发器不让删除数据
触发器是:instead of delete 类型,注意了:instead类型的触发器相当于: DELETE命令过来后,直接走触发器中的代码,再往下,没有了…… 就是说,这个触发器会屏蔽掉你所有的DE ...
- Java 7.21 游戏:豆机(C++&Java)
PS: 难点在于,随机之后的分隔,理解就很容易了 注意:槽的奇偶情况 C++: #include<iostream> #include<ctime> #include<s ...
- PAT 1002 写出这个数 (20)(代码)
1002 写出这个数 (20)(20 分) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字. 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值.这里保证n小于10^100 ...
- 分析入口文件main.php
在分析之前,需要了解php cli模式下的编程 1.了解getopt函数,php手册地址:http://php.net/manual/zh/function.getopt.php static pri ...
- Python中的类方法、实例方法、静态方法
类方法 @classmethod 在python中使用较少,类方法传入的第一个参数是 cls,是类本身: 类方法可以通过类直接调用或者通过实例直接调用,但无论哪种调用方式,最左侧传入的参数一定是类本身 ...
- java正则表达式(字符串)
参考:http://blog.csdn.net/kdnuggets/article/details/2526588 补充: ?号的使用: ^/branch/([a-z]+[/]?)$ 可以匹配 /b ...
- 【UI测试】--安全性
- Scrapy的安装和基本使用方法
Scrapy的安装 1. Windows下安装流程: 方法一: 命令行执行pip install scrapy 安装scrapy 注意:如果有anaconda,也可以打开“Anaconda promp ...
- 熟悉JSON
JSON是什么 JSON ( JavaScript Object Notation) ,是一种数据交互格式. 为什么有这个技术 Json之前,大家都用 XML 传递数据.XML 是一种纯文本格式,所以 ...
- 关于 Web Api 2 认证与授权
认证与授权 认证与授权,Authentication and Authorize,这个是两个不同的事.认证是对访问身份进行确认,如验证用户名和密码,而授权是在认证之后,判断是否具有权限进行某操作,如 ...