所以我正在研究一个威尔逊分数区间来整理我网站上的热门内容,但现在它只是静态的。我的意思是它会一直保持相同的分数,直到有人投赞成票或反对票。
这就是为什么我想实现分数随时间降低的原因。就像在这篇文章中一样。Reddit 排名算法如何工作。在那篇文章中,他们解释了 Reddit 在内容上的得分会随着时间的推移而降低。
目前我有这个 php 函数,它可以根据上下投票给我一个分数:
function wilsonScore($up, $down)
{
$score = (($up + 1.9208) / ($up + $down) - 1.96 * sqrt(($up * $down) /
($up + $down) + 0.9604) / ($up + $down)) / (1 + 3.8416 / ($up + $down)) ;
return $score;
}
我希望分数相同,但在整理时向 SQL 代码添加一些内容。
SQL 代码如下所示:
SELECT *
FROM photos
WHERE status = 0
AND net_votes > 0 // display only picture that got rated over 0
ORDER BY score DESC
我的一个想法是最终得到一种算法,该算法会以对数方式降低分数,在发布的前 1-2-3 天,时间不会对分数产生太大影响,然后分数开始下降。
编辑
在分数上添加一些东西在理论上是否可行,以便用户在网站上获得的声誉(如 SO)越多,他的评分就越值得?互联网上是否已经存在类似的东西?
这里有人已经在这里使用过这样的东西吗?