文章目录

  • 1. 单词向量空间、话题向量空间
    • 1.1 单词向量空间
    • 1.2 话题向量空间
  • 2. 潜在语义分析算法
    • 2.1 例子
  • 3. 非负矩阵分解算法
  • 4. TruncatedSVD 潜在语义分析实践
  • 一种无监督学习方法,主要用于文本的话题分析
  • 其特点是通过矩阵分解发现文本与单词之间的基于话题的语义关系
  • 最初应用于文本信息检索,也被称为潜在语义索引(latent semantic indexing,LSI),在推荐系统、图像处理、生物信息学等领域也有广泛应用

文本信息处理中:

  • 传统的方法以单词向量表示文本的语义内容,以单词向量空间的度量表示文本之间的语义相似度
  • 潜在语义分析 旨在 解决这种方法不能准确表示语义的问题,试图从大量的文本数据中发现潜在的话题
  • 话题向量表示文本的语义内容,以话题向量空间的度量更准确地表示文本之间的语义相似度

潜在语义分析使用的是非概率的话题分析模型

  • 将文本集合表示为单词-文本矩阵
  • 对单词-文本矩阵进行奇异值分解,从而得到话题向量空间,以及文本在话题向量空间的表示

非负矩阵分解(non-negative matrix factorization,NMF)是另一种矩阵的因子分解方法,其特点是分解的矩阵非负。非负矩阵分解也可以用于话题分析。

1. 单词向量空间、话题向量空间

1.1 单词向量空间

文本信息处理的一个核心问题是对文本的语义内容进行表示,并进行文本之间的语义相似度计算

  • 利用向量空间模型(vector space model,VSM),也就是单词向量空间模型(word vector space model)。
  • 基本想法:用一个向量表示文本的“语义”,向量的每一维对应一个单词,其数值为该单词在该文本中出现的频数或权值
  • 基本假设
    文本中所有单词的出现情况表示了文本的语义内容;
    文本集合中的每个文本都表示为一个向量,存在于一个向量空间;
    向量空间的度量,如内积或标准化内积表示文本之间的“语义相似度”。

  • 单词文本矩阵是稀疏矩阵,元素为频数或权值
  • 权值:常用单词频率-逆文本频率(term frequency-inverse document frequency,TF-IDF)表示,其定义是


单词向量空间模型的优点

  • 是模型简单,计算效率高。因为单词向量通常是稀疏的,两个向量的内积计算只需要在其同不为零的维度上进行即可,需要的计算很少,可以高效地完成

单词向量空间模型也有一定的局限性

  • 内积相似度未必能够准确表达两个文本的语义相似度上
  • 因为自然语言的单词具有一词多义性(polysemy)及多词一义性(synonymy),所以基于单词向量的相似度计算存在不精确的问题

1.2 话题向量空间

话题(topic),就是指文本所讨论的内容或主题。

  • 一个文本一般含有若干个话题
  • 如果两个文本的话题相似,那么两者的语义应该也相似
  • 话题由若干个语义相关的单词表示
  • 同义词(如“airplane”与“aircraft”)可以表示同一个话题
  • 而多义词(如“apple”)可以表示不同的话题

这样,基于话题的模型就可以解决上述基于单词的模型存在的问题。

定义一种话题向量空间模型(topic vector space model)

  • 给定一个文本,用话题空间的一个向量表示该文本,该向量的每一分量对应一个话题,其数值为该话题在该文本中出现的权值
  • 用两个向量的内积或标准化内积表示对应的两个文本的语义相似度
  • 注意话题的个数通常远远小于单词的个数,话题向量空间模型更加抽象
  • 潜在语义分析正是构建话题向量空间的方法(即话题分析的方法)
  • 单词向量空间模型与话题向量空间模型互为补充,两者可以同时使用

单词-文本矩阵XXX 近似为:单词-话题矩阵TTT & 话题-文本矩阵YYY 的乘积形式,X≈TYX \approx TYX≈TY


2. 潜在语义分析算法

潜在语义分析 利用 矩阵奇异值分解(SVD),对单词-文本矩阵进行奇异值分解

  • 左矩阵 作为话题向量空间
  • 对角矩阵右矩阵的乘积 作为 文本在话题向量空间的表示

潜在语义分析 根据 确定的话题个数k单词-文本矩阵XXX进行截断奇异值分解

2.1 例子



3. 非负矩阵分解算法

非负矩阵分解 也可以用于 话题分析

  • 单词-文本矩阵进行非负矩阵分解
  • 左矩阵作为话题向量空间
  • 右矩阵作为文本在话题向量空间的表示。注意通常单词-文本矩阵是非负的(所有元素 >= 0)

定义:找到两个非负矩阵乘积近似表示一个非负矩阵
X≈WH,X≥0,W≥0,H≥0X \approx WH,X \ge 0, W\ge 0, H \ge 0X≈WH,X≥0,W≥0,H≥0
WWW 为基矩阵,表示话题空间,HHH 为系数矩阵,是文本在话题空间的表示。
非负矩阵分解 旨在 用较少的基向量、系数向量 来 表示较大的数据矩阵

非负矩阵分解 可以表为以下的最优化问题:
min⁡∣∣X−WH∣∣2st.W,H≥0\min ||X-WH||^2\\ st. \quad W,H \ge 0min∣∣X−WH∣∣2st.W,H≥0

非负矩阵分解的算法是迭代算法

  • 乘法更新规则的迭代算法,交替地对WWW和HHH进行更新。
  • 本质是梯度下降法,通过定义特殊的步长和非负的初始值,保证迭代过程及结果的矩阵WWW和HHH均为非负

4. TruncatedSVD 潜在语义分析实践

基于sklearn.decomposition.TruncatedSVD的潜在语义分析实践

潜在语义分析(Latent Semantic Analysis,LSA)相关推荐

  1. 【译】潜在语义分析Latent Semantic Analysis (LSA)

    目录 目录 概述 Tutorial LSA的工作原理 How Latent Semantic Analysis Works 实例A Small Example Part 1 - Creating th ...

  2. 潜在语义分析(Latent Semantic Analysis)

    潜在语义分析(Latent Semantic Analysis) 潜在语义分析(Latent Semantic Analysis, LSA)是自然语言处理中的一种方法或技术.潜在语义分析(LSA)的主 ...

  3. Latent Semantic Analysis (LSA) Tutorial第一部分(转载)

    译:http://www.puffinwarellc.com/index.php/news-and-articles/articles/33.html WangBen 2011-09-16 beiji ...

  4. Latent semantic analysis (LSA)

    1 LSA Introduction LSA(latent semantic analysis)潜在语义分析,也被称为LSI(latent semantic index),是Scott Deerwes ...

  5. Latent Semantic Analysis (LSA) Tutorial

    本文转载于:http://www.puffinwarellc.com/index.php/news-and-articles/articles/33-latent-semantic-analysis- ...

  6. Latent semantic analysis note(LSA)

    1 LSA Introduction LSA(latent semantic analysis)潜在语义分析,也被称为LSI(latent semantic index),是Scott Deerwes ...

  7. 概率潜在语义分析(Probabilistic Latent Semantic Analysis,PLSA)

    概率潜在语义分析(Probabilistic Latent Semantic Analysis,PLSA) 目录 概率潜在语义分析(Probabilistic Latent Semantic Anal ...

  8. 概率潜在语义分析(PLSA)(probabilistic latent semantic analysis)

    概率潜在语义分析,听名字里边的'概率'一词,就知道这和一般的统计(频数统计/ tfidf 统计)不一样.我们知道LSA是对单词-文本矩阵(频数或tfidf组成的矩阵)进行奇异值分解,LSA的最重要的中 ...

  9. LSA(Latent semantic analysis)

    LSA最初是用在语义检索上,为了解决一词多义和一义多词的问题: 1.一词多义: 美女和PPMM表示相同的含义,但是单纯依靠检索词"美女"来检索文档,很可能丧失掉那些包含" ...

  10. NLP —— 图模型(三)pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)模型...

    LSA(Latent semantic analysis,隐性语义分析).pLSA(Probabilistic latent semantic analysis,概率隐性语义分析)和 LDA(Late ...

最新文章

  1. 如何参与贡献Dubbo社区
  2. Android数据存储之SharedPreferencesSave存储(保存数据,读取数据的操作)
  3. 1、MyEclipse插件配置以及通过MyEclipse生成表对应的JPA代码
  4. 虹软java接摄像头_虹软人脸识别SDK(java+linux/window) 初试
  5. 互联网日报 | 5月10日 星期一 | 小米成立私募股权基金管理公司;58金融升级为58数科;京东健康推出“家医保”健康险服务...
  6. Linux/Windows/MacOS各个操作系统下推荐应用集合
  7. 三条中线分的六个三角形_初中数学——与三角形有关的线段
  8. UAC1.0和UAC2.0区别(八)
  9. ibm336服务器显示brd,ibmx3850x5服务器故障BRD报警|升级主板微码
  10. ESXi6.7修改静态ip地址
  11. 华为eSight 监控AR系列路由器端口流量
  12. 花了两万块参加培训,简历投了1000多份,两个月了还是没找到工作
  13. 眼科相关疾病最新研究进展(2022年3月)
  14. java怎么求最大值和最小值,java求最大值和最小值
  15. java毕业设计——基于java+JDBC+sqlserver的POS积分管理系统设计与实现(毕业论文+程序源码)——POS积分管理系统
  16. edge浏览器主页被360篡改如何修改?
  17. python给成绩表加上姓名列_Python Pandas 基本操作教学之成绩表
  18. 解密weblogic控制台账号密码
  19. k8s cpu 和内存资源说明
  20. 列出Excel所有sheet名称

热门文章

  1. kotlin编译失败_Kotlin使用GraalVM开发原生命令行应用
  2. 【立体视觉】双目立体标定与立体校正
  3. ci phpexcel mysql_PHPExcel导入数据到mysql数据库
  4. LeetCode20——Valid Parentheses(括号匹配问题,使用栈的知识)
  5. 学习过程中的一些细节
  6. hive中not in优化
  7. UIPickerView基本使用
  8. [luogu3380][bzoj3196]【模板】二逼平衡树【树套树】
  9. centos下mysql多实例安装3306、3307实例(2014-10-15)
  10. Redis入门指南(第2版) Redis设计思路学习与总结