Как сделать интервал оценки Уилсона, уменьшающийся со временем

Поэтому я работаю над интервалом оценки Уилсона, чтобы отсортировать популярный контент на своем веб-сайте, но пока он только статичен. Под этим я подразумеваю, что он всегда будет иметь один и тот же счет, пока кто-то не проголосует за него или не проголосует против него.

Вот почему я хотел бы реализовать, чтобы оценка уменьшалась со временем. Как в этой статье. Как работают алгоритмы ранжирования 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 дня, когда он публикуется, время не так сильно влияет на счет, затем счет начинает идти. вниз.

Изменить

И будет ли теоретически возможно добавить что-то к баллу, чтобы чем больше репутации (вроде ТАК )пользователь получает на сайте, тем больше стоил его рейтинг? что-то подобное уже есть в интернете?

Кто-то здесь уже использовал что-то подобное здесь?

10
задан Joris Blanc 27 July 2012 в 01:13
поделиться