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