当前位置:  开发笔记 > 编程语言 > 正文

如何实现类似Digg的算法?

如何解决《如何实现类似Digg的算法?》经验,为你挑选了1个好方法。

如何使用类似于stackoverflow/digg/reddit的推荐系统实现网站?即,用户提交内容,并且网站需要根据项目的受欢迎程度来计算某种"热度".流程如下:

用户提交内容

其他用户查看内容并对其投票(假设90%的用户仅查看内容,10%的用户主动对内容进行投票或投票)

不断提交新内容

如何实现计算提交项目"热度"的算法,最好是实时计算?是否有最佳实践或设计模式?

我会假设算法考虑以下因素:

提交项目时

每次投票时

查看该项目时

例如,获得持续涓涓细流的项目将持续保持某种程度的"热",而在首次提交时获得一票选票的项目将跳到"热点"列表的顶部但随后随着投票而下降停止进来

(我使用的是MySQL + PHP,但我对一般设计模式感兴趣).



1> Kyle Cronin..:

您可以使用类似于Reddit算法的东西- 其基本原理是根据发布时间和分数计算帖子的值.关于Reddit算法的简洁之处在于,只需要在帖子得分发生变化时重新计算该值.当您想要显示首页时,您只需根据该分数从数据库中获得前n个帖子.随着时间的推移,分数自然会增加,因此您无需进行任何特殊处理即可从首页中删除项目.

推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有