搜索排名/相关性算法

时间:2008-10-07 09:29:37

标签: algorithm search ranking relevance

在知识库中开发文章数据库时(例如) - 对用户问题的最相关答案进行排序和显示的最佳方法是什么?

您是否会根据以前的用户是否找到帮助文章,或者您是否找到一个简单的关键字匹配算法来使用其他数据(如关键字加权)?

5 个答案:

答案 0 :(得分:13)

最简单,最天真的方法可能会立即提供有用的结果{/ 3}}:

  

tf-idf加权方案的变化经常被搜索引擎用作评估和排名给定用户查询的文档相关性的核心工具。 tf-idf可以成功地用于各种主题领域的停用词过滤,包括文本摘要和分类。

在我最近的一个相关问题中,我学到了一本关于这个主题的优秀免费书籍,你可以在网上下载或阅读:

  

*tf-idf

答案 1 :(得分:3)

这是一个很难回答的问题,像谷歌这样的公司正在努力解决这个问题。请查看Google Enterprise Search ApplianceExalead Enterprise Search

然后,作为一个个人观点,我认为任何“天真”的方法都不会比天真的关键字搜索和按文档的观看次数排序更能提高结果。

如果您有可能将您的知识库暴露给网络,那么就这样做,让您最喜欢的搜索引擎为您处理搜索。

答案 2 :(得分:2)

你的确切问题的一点点特异性会很好。您可以使用许多不同的技术。其中许多是由其他数据驱动的。您当然可以使用Lucene并构建自己的索引。 lucene有许多语言的绑定。向上移动的还有Solr项目Lucene,它有很多工具和额外的功能。这可能更符合您的要求。

意图很棘手,大多数现代搜索引擎都依赖统计意图来帮助排序结果。您可以随时使用本文有用的按钮并存储导致有用文档的查询文本。然后,您可以向索引添加一层信息,以提升特定的单词或短语,并帮助他们指向某些文档。

要考虑一些事情......有多少文件?平均长度是多少?它们经常更新吗?用户如何处理文件?独特单词在文档中的传播是什么样的? (更简单的是,根据常见的独特功能,可以轻松地将查询与特定文档进行匹配。)

如果它在网络上,您可以随时制作一个只搜索您网站的Google自定义搜索引擎,尽管您可能会因为各种原因发现这是次优的。

您始终可以从一个简单的索引开始,并通过与用户交谈和捕获数据逐渐使其变得更加复杂。

答案 3 :(得分:2)

我认为这里的角度不是检索本身......它是关于获取所检索信息的相关性(一种更具反应性和被动的方法),后来可用于改进搜索引擎。

我想你可以试试 -

  1. 知道用于检索信息的tfidf

  2. 手动将这些检索到的信息标记为相关性分数

  3. 然后回归该分数以预测未知搜索结果的分数并对其进行排序。
  4. 只是一个想法...

    第三点实际上是基于Rocchio算法。你可以看到它here

答案 4 :(得分:0)

在处理问题时

关键字匹配是不够的,你需要理解意图,正如乔安妮斯在搜索中说的一个非常热门的话题