2008-10-07 49 views
19

在开发知识库中文章的数据库时(例如) - 排序和显示与用户问题最相关的答案的最佳方法是什么?搜索排名/关联算法

根据以前的用户是否找到帮助文章,或者您是否发现简单的关键字匹配算法就足够了,您是否会使用其他数据,如关键字加权?

回答

2

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

然后,作为个人的观点,我认为任何“天真”的方法都不会比单纯的关键字搜索和文档中的视图数量排序更多地改善结果。

如果您有可能将您的知识库展示给网络,那么只需执行此操作,并让您最喜爱的搜索引擎处理您的搜索。

0

关键字匹配是不够的时候处理问题,你需要了解的意图,如约安内斯说,在搜索

2

一个非常热门的话题您的具体问题多一点特异性将是一件好事。有很多不同的技巧可以使用。其中许多是由其他数据驱动的。你当然可以使用Lucene并建立你自己的索引。 lucene有很多语言的绑定。向上移动的还有Lucene的Solr项目,周围有很多工具和额外的功能。这可能更符合你所寻找的内容。

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

有些事情要考虑......有多少文件?平均长度是多少?他们是否经常更新?用户如何处理文档?独特单词对文档的传播是什么样子? (更简单的是,将查询与基于常见独特功能的特定文档进行匹配很容易)。

如果是在网络上,您可以随时创建一个谷歌自定义搜索引擎,只搜索您的网站由于各种原因可能会发现这是次优的。

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

10

也许,这将使最简单,最幼稚的做法立即有用的结果是执行*tf-idf:在TF-IDF加权方案

的变化经常被搜索引擎作为得分的核心工具和根据用户查询对文档的相关性进行排序。 tf-idf可以成功用于包括文本摘要和分类在内的各种主题字段中的停用词过滤。

在我的最近相关的问题在这里我学会了一个极好的免费书籍关于这一主题,你可以下载或在线阅读的:

An Introduction to Information Retrieval

1

我觉得角在这里不是检索本身......它是关于对检索到的信息的相关性进行评分(一种更加反应性和被动的方法),它可以在以后用于改进搜索引擎。

我想你可以尝试 -

  1. KNN上TFIDF检索信息

  2. 手工标注这些检索到的信息一relevency得分

  3. 然后退步该评分来预测一个比分unknwon搜索结果并对其进行排序。

只是一个想法...

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