搜索排名/相关性算法



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

你会根据以前的用户是否找到了帮助文章来使用额外的数据,比如关键词权重,或者你觉得简单的关键词匹配算法就足够了吗?

也许最简单、最天真的方法是实现*tf idf

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

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

信息检索简介

这是一个棘手的问题,像谷歌这样的公司正在努力解决这个问题。看看谷歌企业搜索设备或Exalead企业搜索。

然后,就我个人而言,我认为任何"天真"的方法都不会比天真的关键词搜索和按文档浏览量排序的方法改善太多结果。

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

我认为这里的角度不是检索本身。。。这是关于对检索到的信息的相关性进行评分(一种更被动和被动的方法),以后可以用来改进搜索引擎。

我想你可以试试

  1. 用于检索信息的tfidf上的knn

  2. 手动标记这些检索到的信息相关得分

  3. 然后对该分数进行回归,以预测未知搜索结果的分数并对其进行排序

只是一个想法。。。

第三点实际上是基于Roccio算法。你可以在这里看到

如果你的确切问题更具体一点就好了。你可以使用很多不同的技术。其中许多是由其他数据驱动的。当然,您可以使用Lucene并构建自己的索引。许多语言都绑定到lucene。接下来还有Solr项目,它是Lucene,有很多工具和额外的功能。这可能更符合你想要的。

意图是很棘手的,大多数现代搜索引擎都依赖统计意图来帮助对结果进行排序。您总是可以有一个"这篇文章有用吗"按钮,并存储导致有用文档的查询文本。然后,你可以在索引中添加一层信息,以增强特定的单词或短语,并帮助它们指向某些文档。

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

如果它在网上,你总是可以制作一个谷歌自定义搜索引擎,只搜索你的网站,尽管你可能会发现由于各种原因,这是次优的。

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

在处理问题时,关键字匹配是不够的,你需要理解意图,正如joannes所说,这是搜索中的一个非常热门的话题

相关内容

  • 没有找到相关文章

最新更新