按关键字搜索数据存储区以查找相关主题

时间:2009-03-23 16:11:53

标签: algorithm

例如,StackOverflow如何判断其他问题是否相似?

当我输入上面的问题,然后选中这个备忘录控件时,我看到了一个现有问题列表,可能与我要求的问题相同。

使用什么技术来找到类似的问题?

4 个答案:

答案 0 :(得分:3)

我于3月20日收到了来自team@stackoverflow.com的电子邮件,其中提到了它的工作原理:

  

“问一个问题”搜索是   完全在标题上,不会   匹配身体中的任何东西。它是一个   对我来说,为什么人们会这么认为   更好。

最后一句是指搜索栏,当我试图找到我已经看过的具体问题时,我发现它不太有用。

答案 1 :(得分:1)

我认为这是一个简单的旧词匹配。但是,我可能会补充一点,这个功能并不像我希望的那样好用。使用site:stackoverflow.com前缀进行谷歌搜索比依靠SO提供相关建议要好得多。

答案 2 :(得分:1)

匹配程序将存储所有问题的索引。当您提出问题时,问题中的所有关键字都会与索引匹配。这类似于Google搜索。 Lucene开源搜索可以(并且很有可能)用于此。由于结果不是很准确,我认为它们仅仅是问题的标题索引,作为近似值。

其他相关关键字是collaborative filtering,亚马逊推广的算法基于其他类似客户的行为推荐产品。在当前情况下,基于协同过滤的替代算法是:从问题中提取关键字,然后找到与关键字相关联的(在历史中)的标签。返回包含这些标签的问题。那么,需要进行实验才能确定它是否运作良好。

答案 3 :(得分:1)

很差 - 我相信使用MS SQL全文搜索。使用Lucene,IMO你会有更好的运气。有关该主题的更多背景信息,请参阅Lucene上的维基百科文章或information retrieval的一般主题。