Система рейтинга пользователей
На главной добавилось окошко "Топ авторов".
Это не окончательный вариант расчёта рейтинга, даже больше, это просто для примера расчёт по первой формуле от ИИ.
Так что особо не берите в голову, что вы сейчас Топ1 или вас нет в списке, это тест.
Предлагаю следующую формулу для расчета рейтинга:
Рейтинг = (Сумма взвешенных лайков) / (Сумма взвешенного контента + 40) * 50
Как это работает:
- Считаем пользу (числитель):
— Лайк за статью умножаем на 3.
— Лайк за тему умножаем на 2.
— Лайк за пост умножаем на 1.
Все это складываем.
- Считаем объем работы (знаменатель):
— Каждая написанная статья добавляет 3 к объему.
— Каждая созданная тема добавляет 2.
— Каждый пост добавляет 1.
Даже если у поста 0 лайков, он все равно увеличивает этот объем.
- Защита от новичков и спама:
К объему работы мы всегда прибавляем число 40. Это нужно, чтобы:
— Новичок с одним удачным постом не попал сразу в топ (его рейтинг будет низким из-за этой добавки).
— Тот, кто пишет много пустых сообщений без лайков, терял позиции (объем растет, а лайки нет).
- Итоговый вид:
Полученную дробь мы умножаем на 50. Это делает цифры более привычными (например, рейтинг будет не 0.45, а 22.5).
Примеры:
— Новичок (1 пост, 1 лайк): Рейтинг ~1.2
— Активный автор (много лайков): Рейтинг ~50–60
— Спаммер (50 постов без лайков): Рейтинг ~1.1
Так мы поощряем качественный контент, но не даем случайно залететь в топ тем, кто просто много пишет.
Дальше предлагаю обсудить, как улучшить данную формулу?
Требования:
В топ не должны попадать новички с одним постом и 1 лайком на нём.
Вставлю свои предложения.
Лайки от пользователей с нулевым рейтингом не увеличивают рейтинг или увеличивают незначительно.
Лайки от тех, кто создал проект и получил много лайков, имеют больший вес.
Следовательно лайки внутри системы будут дробными.
От новичков лайк равен 0.1. От тех давно и имеет репутацию, лайк может доходить до 2.0.
Взять все лайки (статьи, новости, проекты, посты и темы) и посчитать сколько пользователей всего поставило. Если есть 600.0 лайков, но они от 6 пользователей, то коэффициент 1/100. Умножаем рейтинг на 0.01. Чем больше уникальных лайков, тем лучше.
Админ должен иметь возможность отключать лайки за нарушения на определённый срок. А также отключать ставить лайки определённым пользователям. Все видят этот лайк, но он не влияет на рейтинг пользователя. Это защита от накруток.
Возможно, в начале нужно вычислить "общий средний", взяв вообще все посты всех пользователей и все лайки на них, вычислить таким образом "усредненного пользователя" и потом от этого мерять всех пользователей по одиночке.
Еще
Если лайк новичка стоит 0.1, а лайк ветерана - 2.0, новичкам будет трудно подняться. Ветераны будут лайкать ветеранов, удерживая топ.
Значит вес лайка должен расти не только от рейтинга, но и от активности/заполненности профиля (например, подтвержденный профиль, опубликованный проект и пр).
Фактор времени (Затухание рейтинга) - если автор написал крутую статью 3 года назад и ушел с форума, он не должен вечно висеть в топе.
Значит для блока топ авторов на главной использовать активность за период (например рейтинг за последние 30 или 60 дней), либо вводить коэффициент затухания старых лайков.
В итоге всё складывается из базового веса авторитета умноженного на уникальность и фактор свежести.
master Методика расчета, которую ты выбрал мне кажется слишком сложной.
Более подходящей была бы механика гринда или фарма из ММО.
Как уже писали выше - если пользователь зашёл на сайт и оставил пару постов, то он получает небольшой прирост рейтинга. Зашёл ещё раз завтра - ещё плюс.
Получается стрейк - последовательная серия из ежедневных действий на сайте.
То есть сумма рейтинга просто увеличивается.
Это мотивирует пользователей заходить на форум и собирать монетки. Потом можно их на криптокошелек выводить или чего нибудь покупать на сайте. Типичная игровая механика для ежедневного входа.
Далее градации:
Уровень 0 ---> 0..10 =новичек
Уровень 1 ---> 10..100= новый постоялец (НПС)
Уровень 2 ---> 100...1000 = активный пользователь (АП) или active user (AU)
Видно что каждый следующий уровень на порядок больше предыдущего
и чтобы раскачать несколько аккаунтов до уровня AU придется задротить,
это отсекет ботов.
Из прошлой темы:
То есть не баню (тюрьму) строить, а развивать уровень рейтинга. Сейчас тут любой пользователь может создать любое количество тем в любых разделах.
Рейтинг пока - это просто число лайков ни на что не влияющий. А нужно чтобы его функционал был более глубоким.
Допустим:
Чел имеет рейтинг 0 (<10 лайков) значит у него есть возможность создать не более 2-х тем и написать 10 постов.
Чел имеет рейтинг 1 (от 10 до 100 лайков) теперь 10 тем и 100 постов
Если рейтинг 2 (от 100 до 1000 лайков), то доступно до 30 тем и до 500 постов
Это как в игре.
С постами правда тут перебор, но смысл в том, что чем выше уровень тем больше возможностей открывается.
master
у тебя похоже где-то баг с целыми числами или чем-то таким в формуле подсчёта, т.к когда я поставил тебе лайк за пост, а рейтинг у тебя не изменился вообще.
Adler:
у тебя похоже где-то баг с целыми числами или чем-то таким в формуле подсчёта, т.к когда я поставил тебе лайк за пост, а рейтинг у тебя не изменился вообще.
Округляется наверное до десятых, не помню уже как там точно.
А топ авторов пока не работает, что ли? Чет он какой-то странный, даже я затесался

EvgeniyKuba:
А топ авторов пока не работает, что ли?
Оно еще само пока не знает:)
Нужен тот, кто выведет общую итоговую формулу для подсчёта.
Хотите присоединиться к обсуждению?
Войти в аккаунт