我读过有关使用奇异值分解 (SVD) 在文本语料库中进行潜在语义分析 (LSA) 的文章。我已经了解如何做到这一点,我也了解 SVD 的数学概念。
但我不明白为什么它适用于文本语料库(我相信 - 必须有语言解释)。有人能从语言的角度解释一下吗?
谢谢
我读过有关使用奇异值分解 (SVD) 在文本语料库中进行潜在语义分析 (LSA) 的文章。我已经了解如何做到这一点,我也了解 SVD 的数学概念。
但我不明白为什么它适用于文本语料库(我相信 - 必须有语言解释)。有人能从语言的角度解释一下吗?
谢谢
不涉及语言解释,不涉及语法,不处理等价类、同义词、同音异义词、词干等。也不涉及任何语义,它只是单词的组合。将“文档”视为购物车:它包含单词(购买)的组合。词往往与“相关”词一起出现。
例如:“药物”这个词可以与{love, doctor, Medicine, sports, crime}中的任何一个一起出现;每个都会指向不同的方向。但是结合文档中的许多其他词,您的查询可能会从类似字段中找到文档。
一起出现的词(即在语料库中附近或同一文档中)有助于上下文。潜在语义分析基本上基于它们在上下文方面的相似程度将相似的文档分组到一个语料库中。
我认为此页面上的示例和 word-document 图将有助于理解。
假设我们有以下五个文档
和一个搜索查询:dies, dagger。
显然,d3 应该排在列表的首位,因为它包含两个 die,dagger。然后,d2 和 d4 应该紧随其后,每个都包含查询的一个单词。但是,d1 和 d5 呢?是否应该将它们作为可能有趣的结果返回给该查询?作为人类,我们知道 d1 与查询非常相关。另一方面,d5 与查询没有太大关系。因此,我们希望 d1 而不是 d5,或者换句话说,我们希望 d1 的排名高于 d5。
问题是:机器能推断出这个吗?答案是肯定的,LSI 正是这样做的。在此示例中,LSI 将能够看到术语 dagger 与 d1 相关,因为它与 d1 的术语 Romeo 和 Juliet 一起出现,分别在 d2 和 d3 中。此外,term dies 与 d1 和 d5 相关,因为它分别与 d1 的术语 Romeo 和 d5 的术语 New-Hampshire 一起出现在 d3 和 d4 中。LSI 还将适当地权衡发现的连接;d1 more 与查询有关
比 d5 因为 d1 通过 Romeo and Juliet “双重”连接到 dagger,并且还通过 Romeo 连接到 die,而 d5 通过 New-Hampshire 只有一个连接到查询。
参考:潜在语义分析(Alex Thomo)