Search “做事的方法”;“相关搜索”;功能

Search “做事的方法”;“相关搜索”;功能,search,information-retrieval,Search,Information Retrieval,我见过一些网站在你进行搜索时会列出相关的搜索,也就是说,它们会建议你可能感兴趣的其他搜索查询 我想知道在一个中等规模的网站(没有足够的流量来依赖访问者统计数据来推断关系)中建立模型的最佳方法。我最初的想法是为每个唯一的查询存储前10个结果,然后在执行新的搜索时,查找与前10个结果中的某一部分匹配但理想情况下不匹配所有结果的所有历史搜索(匹配所有结果可能意味着一个等价的搜索,因此没有那么有用的建议) 我想有些人以前做过这个功能,也许可以提供一些不同方法的想法。我不一定要寻找一个成功的想法,因为解决

我见过一些网站在你进行搜索时会列出相关的搜索,也就是说,它们会建议你可能感兴趣的其他搜索查询

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


我想有些人以前做过这个功能,也许可以提供一些不同方法的想法。我不一定要寻找一个成功的想法,因为解决方案无疑会因网站的大小和性质而有很大的不同。

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

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

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

  • 基于同义词表的方法:为用户使用过的每个术语编制一个同义词表索引,然后使用一些启发式方法过滤同义词,以向用户显示可能的搜索术语
  • Stem并在此基础上进行搜索:对搜索词进行Stem(例如:使用),然后使用带词干的词,而不是最初提供的查询,并为用户提供精确搜索他们指定的词的选项(或者相反,首先搜索确切的术语,然后使用词干分析来查找词根相同的术语。第二种方法显然需要对已知词典进行一些预处理,或者您可以在索引术语找到术语时收集它们。)
  • 链接:解析用户查询找到的结果,并从前N个结果中提取关键术语(这是一个可以查看关键字提取技术的库/算法)

  • 您是否考虑过一个关键字在一个轴上的矩阵与另一个轴上的文档。一旦您找到代表关键字的一组审查者,请找到一组关键字在初始结果集中找到,然后找到一种方法,根据引用的文档数量或在初始结果集中插入的次数对其他关键字进行排序。

    这与LSI()的前两个步骤非常相似,似乎它可能工作得很好。(请参阅下一条注释,空间不足)不过,值得考虑的是,最初的搜索应用程序是如何进行检索的,因为这可能太类似于文档检索的标准向量空间方法()。如果它重复相同的逻辑,那么这些术语就没有那么大的价值。