csdn博客推荐系统实战-4文本聚类-潜在语义索引LSI

推荐系统实战 专栏收录该内容
16 篇文章 1 订阅

前面说了TF-IDF模型,是基于关键词的,一篇文章,用关键词来描述,但是这还远远不够,这篇文章主要是讲什么的?篮球?足球?乒乓球?TF-IDF没办法告诉我,但这是很重要的一个信息,这可以过滤绝大部分不相关的内容。

主题模型能解决这个问题!

主题模型

主题模型可以说是一种聚类算法,非监督的,目的是找到文本主题的概率分布,就是对文字中隐含主题的一种建模方法。比如从“人民的名义”和“达康书记”这两个词我们很容易发现对应的文本有很大的主题相关度,但是如果通过词特征来聚类的话则很难找出,因为聚类方法不能考虑到到隐含的主题这一块。如何找到隐含的主题呢?

潜在语义索引LSI

潜在语义索引(Latent Semantic Indexing,以下简称LSI),基于奇异值分解(SVD)的方法来得到文本的主题的。简单一句话,用矩阵分解的方法来解决的

对于一个m×n的矩阵A,可以分解为下面三个矩阵:       Am×n=Um×mΣm×nVTn×n

有时为了降低矩阵的维度到k,SVD的分解可以近似的写为:            Am×nUm×kΣk×kVTk×n

我们输入的有m个文本,每个文本有n个词。而Aij则对应第i个文本的第j个词的特征值,这里最常用的是基于预处理后的标准化TF-IDF值。k是我们假设的主题数,一般要比文本数少。SVD分解后,Uil对应第i个文本和第l个主题的相关度。Vjm对应第j个词和第m个词义的相关度。Σlm对应第l个主题和第m个词义的相关度。

举例,假设我们有下面这个有10个词三个文本的词频TF对应矩阵如下:

假定对应的主题数为2,则通过SVD降维后得到的三矩阵为:

LSI计算相似度

用余弦相似度来计算文本1和文本2的相似度:

sim(d1,d2)=(0.4945)(0.6458)+(0.6492)(0.7194)(0.4945)2+0.64922(0.6458)2+(0.7194)2

存在的问题

1.SVD计算非常的耗时,尤其是我们的文本处理,词和文本数都是非常大的,对于这样的高维度矩阵做奇异值分解是非常难的。

2.主题值的选取对结果的影响非常大,很难选择合适的k值。

3.LSI得到的不是一个概率模型,缺乏统计基础,结果难以直观的解释。

那就是说在工作中不能使用LSI了呗?当然不是!以上问题都有好的解决方法

解决1.主题模型非负矩阵分解(NMF)可以解决矩阵分解的速度问题。

解决2.大部分主题模型的主题的个数选取一般都是凭经验的,较新的层次狄利克雷过程(HDP)可以自动选择主题个数。

解决3.pLSI(也叫pLSA)和隐含狄利克雷分布(LDA)这类基于概率分布的主题模型来替代基于矩阵分解的主题模型。

现在工业界文本主题模型的主流是LDA和HDP!!

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值