主题模型之潜在语义分析(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其中一个 ...
随机推荐
- list集合与HashMap的使用
List<Map<String, Object>> arrays= new ArrayList<Map<String, Object>>(); Hash ...
- NC 6系预警类型注册
在实际开发预警任务中,因为模块是新创建的,所以开发预警,就要在相应的节点模块注册.但这样代码就得放在相应的模块中,注册个预警类型,就可以把代码直接放在自己新建的模块. .先执行新建模块语句 inser ...
- [ES]ES查询指南
我们通常用用_cat API检测集群是否健康. 确保9200端口号可用: curl 'localhost:9200/_cat/health?v' 绿色表示一切正常, 黄色表示所有的数据可用但是部分副本 ...
- tomcat优化(转)
tomcat优化 Activiti 分享牛 2017-02-08 1132℃ 本文重点讲解tomcat的优化. 基本优化思路: 1. 尽量缩短单个请求的处理时间. 2. ...
- 三大框架中各种xml的存放位置
web.xml中classpath:和classpath*: 有什么区别? classpath:只会到你的class路径中查找找文件; classpath*:不仅包含class路径,还包括jar ...
- 第五周 PSP 燃尽图 以及 进度条总结
1.PSP DATE START-TIME END-TIME EVENT DELTA TYPE 3.12 9.30 11.30 环境搭建 音乐30min QQ25min ...
- mybatis的批量操作
foreach关键字: 批量查找/删除:用where id in<foreach> (xxx,yyy,zzz ...)</foreach> 批量更新:需要开启批量sql,比如d ...
- 2019.01.04 洛谷P4719 【模板】动态dp(链分治+ddp)
传送门 ddpddpddp模板题. 题意简述:给你一棵树,支持修改一个点,维护整棵树的最大带权独立集. 思路: 我们考虑如果没有修改怎么做. 貌似就是一个sbsbsb树形dpdpdp,fi,0f_{i ...
- ajax from 提交
$.ajax({ cache: true, type: "POST", url:aj ...
- 解决mysql默认的8小时自动断开连接
语言:javaEE 框架:spring mvc+spring+mybatis 数据库:mysql8 WEB服务器:tomcat8 背景: 在试运营阶段发现发生“连接超时”异常 抛出异常: Cause: ...