主题模型之潜在语义分析(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其中一个 ...
随机推荐
- Android开发之自定义的ProgressDialog
package com.example.dialog; import android.app.ProgressDialog; import android.content.Context; /** * ...
- andorid 计算器
avtivity_main.xml <?xml version="1.0" encoding="utf-8"?> <GridLayout xm ...
- nested exception is java.lang.NoClassDefFoundError: org/springframework/dao/support/PersistenceExceptionTranslator
该问题是少了一个spring-tx-的jar包,把该包加入到buildpath中就行了. 参考链接:http://blog.csdn.net/Rongbo_J/article/details/4666 ...
- 使用hMailServer搭建邮件服务器
本文没有什么高深的技术内容,只是使用hMailServer,介绍搭建邮件服务器的全过程,供参考. 一.安装邮件服务器组件 打开软件,点下一步 选择存储数据的数据库,这里有两种选择, 一种是使用嵌入型数 ...
- PHP redis 群发短信
$redis = new \Redis(); $redis->connect('127.0.0.1', 6379); $list = M('Sms')->field('phone')-&g ...
- 商业化博客平台原型制作分享-TypePad
TypePad是商业化博客平台,提供完全付费的博客服务,通过TypePad用户可以很容易建立自己的博客,TypePad提供博客系统该有的所有功能以及多种设计风格和外观,如果用户熟悉HTML和CSS,完 ...
- sqlalchemy根据数据库结构生成映射的实体
# !/usr/bin/python # -*- coding: UTF-8 -*- from sqlalchemy import * from sqlalchemy.orm import sessi ...
- 动态代理jdk和cglib的区别
学习来源贴:http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html JDK实现动态代理需要实现类通过接口定义业务方法,对于没有接口的类, ...
- 基于centos6.5 hbase 集群搭建
注意本章内容是在上一篇文章“基于centos6.5 hadoop 集群搭建”基础上创建的 1.上传hbase安装包 hbase-0.96.2-hadoop2 我的目录存放在/usr/hadoop/hb ...
- tomcat探索
双击apache-tomcat-7.0.64.exe,一路默认点. 静态页路径 C:\Program Files\Apache Software Foundation\Tomcat 7.0\webap ...