3

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

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

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

4

2 回答 2

2

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

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

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

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

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

于 2008-09-23T22:08:21.820 回答