如何使用类似于堆栈溢出/digg/reddit的推荐系统来实现网站?也就是说,用户提交的内容和网站需要计算某种类型的“性感”,根据项目的流行程度。流动情况如下:
如何实现算法来计算提交项目的“热度”,最好是实时计算?有什么最佳实践或设计模式吗?
我假定该算法考虑到了以下几点:
例如,一个不断获得少量选票的项目会在某种程度上一直保持“热门”,而当第一次提交时收到大量选票的项目会跳到“热门”-list的顶端,但随着投票的停止,它会下降。
(我使用的是MySQL+PHP,但我对一般的设计模式感兴趣)。
发布于 2008-09-16 13:05:05
您可以使用类似于Reddit算法的东西--它的基本原理是根据发布的时间和得分计算帖子的值。Reddit算法的优点是,当post的分数发生变化时,您只需要重新计算这个值。当你想要显示你的头版时,你只需根据这个分数从你的数据库中得到前n个帖子。随着时间的推移,分数自然会增加,所以你不需要做任何特殊的处理,从头版删除项目。
发布于 2008-09-19 17:04:36
在我自己的站点上,我从一个单调递增的系列中为每个条目分配一个唯一的整数(更新的帖子得到更高的数字)。每次向上投票都会增加一个数字,而每一个否决投票都会减少一个(当然,您可以调整这些值)。然后,只需按数字排序,以显示“最热门”条目。
发布于 2008-09-19 17:25:27
我开发了一个名为网站收藏的社交书签站点,并使用了一个复杂的algoritm:
当他们的链接被投票时,用户会得到随机点。积极的投票给出肯定的分数,否定的投票给否定的分数。
https://stackoverflow.com/questions/71920
复制相似问题