在知识库中开发文章数据库时(例如) - 对用户问题最相关的答案进行排序和显示的最佳方法是什么?
您会根据以前的用户是否找到帮助文章来使用关键字权重等附加数据,还是认为简单的关键字匹配算法就足够了?
这是一个难题,像谷歌这样的公司正在努力解决这个问题。查看Google Enterprise Search Appliance或Exalead Enterprise Search。
然后,作为个人意见,我不认为任何“幼稚”的方法与幼稚的关键字搜索和按文档查看次数排序相比,都不会改善结果。
如果您有可能将您的知识库公开到网络上,那就去做吧,让您最喜欢的搜索引擎为您处理搜索。
我认为这里的角度不是检索本身......它是关于对检索到的信息的相关性进行评分(一种更被动和被动的方法),以后可以用来改进搜索引擎。
我想你可以试试——
tfidf 上的 knn 用于检索信息
手动标记这些检索到的信息相关性分数
只是一个想法...
第三点其实是基于Rocchio算法的。你可以在这里看到
对您的确切问题再具体一点会很好。您可以使用许多不同的技术。其中许多是由其他数据驱动的。您当然可以使用Lucene并构建自己的索引。许多语言都有与 lucene 的绑定。向上移动还有Solr项目,它是 Lucene,它周围有很多工具和额外的功能。这可能更符合您正在寻找的内容。
意图很棘手,大多数现代搜索引擎都依赖统计意图来帮助对结果进行排序。您始终可以拥有一个本文是否有用的按钮,并存储指向有用文档的查询文本。然后,您可以在索引中添加一层信息,以提升特定的单词或短语,并帮助它们指向特定的文档。
需要考虑的一些事情...有多少文件?平均长度是多少?他们经常更新吗?用户如何处理这些文档?独特词在文档中的传播是什么样的?(更简单地说,很容易根据共同的独特特征将查询与特定文档匹配。)
如果它在网络上,您总是可以创建一个只搜索您的网站的谷歌自定义搜索引擎,尽管您可能会发现由于各种原因这不是最佳选择。
您总是可以从一个简单的索引开始,然后通过与用户交谈和捕获数据逐渐使其变得更加复杂。
处理问题时关键字匹配是不够的,您需要了解意图,正如 joannes 所说,搜索中非常热门的话题