主题模型之潜在语义分析(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其中一个 ...
随机推荐
- Array Division 808D
D. Array Division time limit per test 2 seconds memory limit per test 256 megabytes input standard i ...
- hisat2+stringtie+ballgown
hisat2+stringtie+ballgown Posted on 2016年11月25日 早在去年九月,我就写个博文说 RNA-seq流程需要进化啦!http://www.bio-info-tr ...
- UVA-1364.Knights of the Round Table 无向图BCC
题目链接:https://vjudge.net/problem/UVA-1364 题意:有n个人参加会议,互相憎恨的人不能坐在相邻的位置,并且每个会议参加的人数必须是奇数,求有多少个人不能参加任何一个 ...
- swift 中使用weak self
request.responseString(encoding: NSUTF8StringEncoding) {[weak self] (res) -> Void in if let stron ...
- [Robot Framework] Robot Framework怎么调试?
Robot Framework怎么debug? 在eclipse里面安装一个插件,就可以debug robot framework的project. 插件下载地址: https://github.co ...
- Partition Array into Disjoint Intervals LT915
Given an array A, partition it into two (contiguous) subarrays left and right so that: Every element ...
- 记录点复习题目和linux学习
哈希怎么底层.key放数组哪部分里面 HashMap实际上是一个“链表散列”的数据结构,即数组和链表的结合体. 开网页怎么获取页面 linux 看进程的cpu 和内存占用率 看哪个端口被占用 ...
- 检测鼠标是否在UI上unity
public static bool IsCursorOnUI(int inputID=-1){ EventSystem eventSystem = EventSystem.current; retu ...
- MacBook小技巧
退出全屏:Control+Command+F.关闭当前的应用程序:Command+W.退出应用程序,可对着Dock上的应用程序辅助点按(右键),选择退出.也可直接按Commnad+Q退出当前的应用程序 ...
- 2019.01.19 洛谷P2787 语文1(chin1)- 理理思维(ODT)
传送门 ODTODTODT水题. 题意:有一个字母序列,支持区间赋值,查询区间某个字母的数量,区间按字母序排序. 思路: 可以开262626棵线段树搞过去,然而也可以用ODTODTODT秒掉. 如果用 ...