代码之家  ›  专栏  ›  技术社区  ›  ANaimi

查找相关提交的有效算法

  •  1
  • ANaimi  · 技术社区  · 15 年前

    我最近推出了 humble side project 并希望在查看提交时添加“相关提交”部分。和这里的情况一模一样-见右栏,标题为“相关”

    我可以想出一种方法来做到这一点(我会把它作为一个答案发布),但我很有兴趣看看其他人会怎么说。或者也许已经有一个标准的方法来实现这个目标?

    2 回复  |  直到 15 年前
        1
  •  3
  •   ANaimi    15 年前


    为了获得最佳输出,我们需要对查询结果进行加权。

    首先,假定数据库中的每个提交的权重为零。

    接下来,我们拆分/标记当前提交的标题并删除停止字。
    我看过谷歌的停止语列表,但现在我将我的停止语定义为:[of,a,the,in]


    史上最好的投稿
    结果数组:[“the”,Best,Submission,of,All,Times]
    删除停止语:[最佳,服从,全部,时间]

    然后我们在数据库中查询包含上述标题的提交内容,并为每个结果添加权重:+2
    最后将列表按权重降序排序,取前N个结果。

    你怎么认为?(温柔点!)

        2
  •  0
  •   LeMiz    15 年前

    http://en.wikipedia.org/wiki/Mutual_information

    这个想法是说,如果两个帖子分享了很多“不寻常”的词汇,那么他们很可能是在谈论同一个话题。为了检测不常见的单词,根据您的应用程序,您可以使用一个通用的频率表,或者更好的方法是,在您的帖子中的单词的范围内自己构建它(但是您需要有足够的频率表来提供相关的信息)。

    我不会限制自己的标题和标签,但我会超重他们在研究。

    这种想法在垃圾邮件过滤中很常见。不幸的是,我有时间做一个全面的回顾,但是快速的谷歌搜索可以得到:

    http://www.aclweb.org/anthology/P/P04/P04-3024.pdf