Latent Semantic Analysis

LSA(潜在语义分析)是一种文本挖掘技术,通过对词-文档共现矩阵进行SVD分解,将单词和文档映射到潜在语义空间,实现文档聚类与查询检索。该技术涉及构造词-文档共现矩阵、SVD分解、聚类分析等步骤,最终通过查询映射实现语义相关文档检索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Abstract

LSA,Latent Semantic Analysis通过对词-文档共现矩阵(term-document co-occurrence matrix)进行SVD分解,把单词和文档映射到一个latent semantic space,通过clustering可以得到term-term, document-document, document-term之间的相似关系。对于新来的查询,把查询映射到同一个latent semantic space空间后,就可以通过聚类或计算余弦相似度等方式检索语义上相关的文档。

构造词-文档共现矩阵

这一步比较简单,先构造索引词(也就是词典vocabulary),然后统计每一个单词w在各个文档d中的出现次数,这样就得到了term-document co-occurrence matrix。有时候还需要计算TFIDF值。对于大规模语料可以使用Hadoop进行计算。

SVD分解

对词-文档共现矩阵进行SVD分解可以得到term,document在潜在语义空间中的向量表示,latent semantic space的维度选择很重要,可以在singular values的基础上,根据经验选择,也就是求共现矩阵的一个Rank k approximation。

聚类

在把term和document映射到同一个潜在语义空间后,就可以通过聚类来分析term-term, document-document, document-term之间的相似关系。

查询
对于查询q={k1,k2,...,kn},可以取这n个查询关键字的潜在语义向量表示的平均值,把q映射到同一个潜在语义空间,然后检索相似的文档。

简单例子

[2]中给出了一个完整的实例,对九篇文档应用LSA,最后得到的效果图如下


[3]中给出了一个很简单的查询例子


LSA的细节请看[1][2][3][4],讲得非常清楚,欲了解SVD请看[5][6]。


Reference:

  1. Indexing by Latent Semantic Analysis. paper by Scott Deerwester etc.
  2. Latent Semantic Analysis (LSA) Tutorial 一篇非常不错的tutorial,有Python code
  3. Latent Semantic Analysis (Tutorial)  也是一篇比较简短的介绍LSA的tutorial,开头对SVD做了简单介绍
  4. Introduction to Information Retrieval 关于IR的书,chapter18是关于LSI的,有ppt,其他内容也可以看看
  5. Introduction to the Singular Value Decomposition Todd WIll 写的关于SVD的tutorial,各种详细的图解,看完后对SVD的理解更深
  6. A Singularly Valuable Decomposition: The SVD of a Matrix 另一篇关于SVD的tutorial,结合[3]足够深刻理解SVD了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值