LSI
因为最近在看LDA模型,所以现在又回过头来整理一下LSI和pLSI。下面我就用最通俗的话来一一详细道来,其中不乏我还没弄清楚的地方,请大家指正。
一.LSI
LSI是Latent Semantic Indexing的缩写,中文即潜在语意索引。人们一直想用语意来搜索文章,而不是简单的关键词匹配。那么既然想用“语意”,那就涉及到一词多义和多词一义的问题。如果从语言学的角度来解决这个问题太过于复杂了,计算机科学家们还是习惯于用统计的方法来尝试。我们把词编号,编成word1,word2等等,把一篇文档写成一个向量的形式:
( num1, num2, … )
对应表示这篇文章中word1词出现的次数。下面我再举一个例子:
A new method for automatic indexing and retrieval is described.
如果上面的一句话是一篇文章,那么它对应的向量是(1,1,1,1,1,1,1,1,1)。因为它对应的每个词都只出现了一次。
对于一个文集(由很多篇文档所组成)就可以写成一个矩阵。行为词,列为文档。列向量为在文档中,每个词对应出现的次数。
例如下面:
用SVD分解,将这个矩阵写为
我们可以看到,原始矩阵X的行表示词的坐标,列表示文档坐标,对T右乘S和D两个矩阵,相当于对T进行坐标变换,变换到X坐标。所以T是在一个潜在空间的词的坐标。同理D也是在另一个潜在空间的文档的坐标。
下面我们进行文档与文档之间的比较:
1.训练集中的文档进行比较,那就是文档坐标的点乘:
2.训练集外的文档,与训练集中的文档进行比较:
首先,把训练集外的文档表示成
然后再用与原文档进行比较
浙公网安备 33010602011771号