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

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

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

有帮助吗?

解决方案

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

其他提示

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

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

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

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