Reddit排名算法-上升

问题描述 投票:0回答:2

我正在使用基于Reddit的算法,并希望对其进行更改,以使其显示上升的帖子,而不是热门的帖子。我应该更改哪个数字,以便从发布到现在的时间对返回的分数有更大的影响?我曾尝试更改一些数字,但仍然无法到达任何位置

感谢堆

function calculate_rank_sum($score, $created_at) {

     $order = log10(max(abs($score), 1));

     if ( $score > 0 ) {
        $sign = 1;
     } elseif ( $score < 0 ) {
        $sign = -1; 
     } else {
        $sign = 0;
     }

     $seconds = intval(($created_at - mktime(0, 0, 0, 1, 1, 1970))/86400);

     $long_number = ($order + $sign) * ($seconds / 45000);

     return round($long_number, 7);
}
php ranking reddit
2个回答
0
投票

这是本质上计算分数的行。

$long_number = ($order + $sign) * ($seconds / 45000);

如果您希望创建的时间产生更大的影响,我建议减少45000和/或抵消($order + $sign)。这是一个论坛,需要大量的微调才能使其完全按照您想要的方式进行,因此,我建议最好的方法是执行大量的单元测试,并进行大量的调整。


0
投票

您的公式有误:

($order + $sign) * ($seconds / 45000)

您已添加了不应包含的括号。如果您查看https://gist.github.com/zeuxisoo/882820,则应为:

$order + $sign * $seconds / 45000

但是即使是基于旧的reddit算法which was later fixed to:

sign * order + seconds / 45000

您可以降低45000来赋予时间部分更多的权重。

© www.soinside.com 2019 - 2024. All rights reserved.