【发布时间】:2012-02-21 04:41:10
【问题描述】:
我正在尝试为我最后一年的项目开发一个以音乐为中心的搜索引擎。我一直在研究潜在语义分析及其在互联网上的工作原理。我无法理解 LSI 在整个搜索引擎系统中的确切位置。 是否应该在网络爬虫完成网页查找后使用?
【问题讨论】:
标签: search-engine web-crawler svd lsa
我正在尝试为我最后一年的项目开发一个以音乐为中心的搜索引擎。我一直在研究潜在语义分析及其在互联网上的工作原理。我无法理解 LSI 在整个搜索引擎系统中的确切位置。 是否应该在网络爬虫完成网页查找后使用?
【问题讨论】:
标签: search-engine web-crawler svd lsa
我对音乐检索不太了解,但是在文本检索中,只有当搜索引擎使用信息检索的向量空间模型时,LSA 才有意义。最常见的搜索引擎,如 Lucene,将每个文档分解为单词(标记),删除停用词并将其余的放入索引中,每个通常都与一个 术语权重 相关联,表明其重要性文档中的术语。
现在可以将 (token,weight) 对的列表视为表示文档的向量。如果您将所有这些向量组合成一个巨大的矩阵并将 LSA 算法应用于该矩阵(在抓取和标记化,但在索引之前),您可以使用LSA 算法在对所有文档的向量进行索引之前对其进行变换。
请注意,在原始向量中,tokens 表示向量空间的维度。 LSA 将为您提供一组新的维度,您必须索引这些维度(例如以自动生成的整数的形式)而不是标记。
此外,您还必须将查询转换为(令牌、权重)对的向量,然后将基于 LSA 的转换也应用于该向量。
我不确定是否有人在任何现实生活中的文本检索引擎中真正做到了所有这些。一个问题是对所有文档向量的矩阵执行 LSA 算法会消耗大量时间和内存。另一个问题是处理更新,即添加新文档或现有文档更改时。理想情况下,您将重新计算矩阵,重新运行 LSA,然后修改所有现有文档向量并重新生成整个索引。不完全可扩展。
【讨论】: