【问题标题】:Ways to do "related searches" functionality执行“相关搜索”功能的方法
【发布时间】:2010-09-12 12:58:18
【问题描述】:

我看到一些网站会在您执行搜索时列出相关搜索,即它们会建议您可能感兴趣的其他搜索查询。

我想知道在中型网站中进行建模的最佳方法(没有足够的流量来依赖访问者统计数据来推断关系)。我最初的想法是存储每个唯一查询的前 10 个结果,然后当执行新搜索以查找与前 10 个结果中的一些匹配但理想情况下不匹配所有结果的所有历史搜索(匹配所有这些结果可能建议等效搜索,因此作为建议没有那么有用)。

我想有些人之前已经完成了这个功能,并且可能能够提供一些关于不同方法的想法。我不一定要寻找一个成功的想法,因为解决方案无疑会根据网站的规模和性质而有很大差异。

【问题讨论】:

    标签: search information-retrieval


    【解决方案1】:

    您是否考虑过一个轴上的关键字与另一个轴上的文档的矩阵。一旦找到代表关键字的向量集,找到在初始结果集中找到的关键字集,然后找到一种方法来根据其他关键字引用的文档数量或它们与初始结果集相交的次数对其他关键字进行排名.

    【讨论】:

    • 这与 LSI (en.wikipedia.org/wiki/Latent_semantic_indexing) 的前几个步骤非常相似,看起来它可能会很好地工作。 (见下一条评论,空间不足)
    • 值得考虑一下初始搜索应用程序是如何进行检索的,因为这可能与文档检索的标准向量空间方法 (en.wikipedia.org/wiki/Vector_space_model) 过于相似。如果它重复相同的逻辑,那么这些术语将没有那么大的价值。
    【解决方案2】:

    为此,我尝试了多种不同的方法,并取得了不同程度的成功。最后,我认为最好的方法高度依赖于被搜索的领域/主题,以及用户如何形成查询。

    您关于存储以前搜索的想法对我来说似乎是合理的。我很想知道它在实践中是如何工作的(我的意思是,以最真诚的方式——有许多细微差别会导致这些技术在“现实世界”中失败,尤其是在数据稀疏的情况下)。

    以下是我过去使用过的一些技术,并在文献中看到过:

    1. 基于词库的方法:为用户使用过的每个术语编入一个词库索引,然后使用一些启发式方法过滤同义词以向用户显示可能的搜索词。
    2. 词干和搜索:词干搜索词(例如:使用Porter Stemming Algorithm,然后使用词干词代替最初提供的查询,并为用户提供完全搜索的选项 他们指定的术语(或相反,首先搜索确切的术语,然后使用词干查找与相同词根的词。第二种方法显然需要对已知字典进行一些预处理,或者您可以收集术语当您的索引词找到它们时。)
    3. 链接:解析用户查询找到的结果,并从前 N 个结果中提取关键术语(KEA 是一种库/算法,您可以查看关键字提取技术。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多