Алгоритм начисления рейтинга и силы
Есть у кого нибудь оригинальные идеи начисления силы пользователю и рейтинга комментам, топикам, блогам, юзерам?
Сила должна зависить от активности пользователя и от отценки его работ(топиков, комментов) другими юзерами. А дельта голосования за коммент, топик, блог, юзера должна зависить от силы голосующего. Как то так :)
Сила должна зависить от активности пользователя и от отценки его работ(топиков, комментов) другими юзерами. А дельта голосования за коммент, топик, блог, юзера должна зависить от силы голосующего. Как то так :)
35 комментариев
α – глобальный рейтинг пользователя, по нему выводиться топ пользователей и выдаются различные «вольности».
β – рейтинг конкретного сообщения, будь то топик или комментарий, по нему выводиться топ сообщений. Этот показатель воздействует на α через Ω.
Ω — шкала сообщения, соединяет рейтинг сообщений (β) с рейтингом пользователей (α).
Когда β начисляется по баллам к топику (или комментарию), то топик может быть расценен по шкале Ω. Например, очень плохой топик, плохой топик, «никакой» топик, хороший топик и очень хороший топик. Положение на шкале выбирается по β (рейтингу сообщения), рейтинг β не воздействует на рейтинг α напрямую то, что воздействует на рейтинг α, так это его положение на шкале Ω.
Хорошие стороны: допустим у сообщения рейтинг -50 β, что делает его «самым плохим» по шкале Ω, но самое плохое по шкале отнимает всего, скажем, 5 баллов α из рейтинга самого пользователя. В результате очень эффективная борьба со стадным инстинктом – автор сообщения не уйдет в «сильный минус» за одно неудачное высказывание, а также не поднимется в облака из-за дешевой шутки или «первого сообщения» в теме.
Плохие стороны: все сайты растут и меняются, в результате необходимо поменять значения для рейтингов, но поскольку рейтинги сообщений влияют не на прямую на рейтинги пользователей, то любая перемена значений может вызвать очень серьезные колебания в этих самых рейтингах, что в свою очередь может вызвать волны протеста пользователей.
Это просто пример размышления, тут много дыр одна из которых изложена в предыдущем параграфе. Надо посмотреть много подобных систем и составить хорошую схему, допустим в microsoft visio, а затем подвергнуть её различным возможным ситуациям.
а рейтинг пользователя это то как его оценили другие пользователи напрямую используя свою силу(«авторитет»)
В случае в зависимости от силы, чтобы не заморачиваться с дробями, проще сделать линейную функцию «ступеньками».
Если 0 ≤ x > 5, то y = 0,1
Если 5 ≤ x > 10, то y = 0,2
Если 10 ≤ x > 20, то y = 0,3
…
Будучи х его рейтингом силы, а y воздействием на его «мощь» голосования. Значения просто для примера. Также должен быть потолок (в котором х стремится к ∞, а у к потолку), таким образом, набравший очень много силы, не сможет иметь слишком много власти.
В случае зависимости от количества проголосовавших, можно использовать параболы, но тут тоже можно все упростить, поскольку все значение x (проголосовавших) целые числа, поэтому нарисовав параболу можно просто просчитать первые 100 значений туда-сюда в случае для топика (остальные голоса чисто для рейтинга сообщений, а не рейтинга автора) и где-то 20 первых значений для комментариев. Получиться что-то вроде:
Если х = -3, то у = -0,91
Если х = -2, то у = -0,96
Если х = -1, то у = -1
Если х = 0, то у = 0
Если х = 1, то у = 1
Если х = 2, то у = 0,96
И так далее, все числа просто для примера.
Для начала необходимо обдумать «потолки»: максимальное количество голосов реально влияющих на рейтинг автора, в одну сторону, через его комментарий и топик; а также, максимальный рейтинг силы, после которого новые значения силы не будут больше влиять на переменную силы, когда пользователь голосует. Далее от них продумать другие значения, подобрать параболы и затем их упростить до линейных функций.
Вся проблема в том, что на разных сайтах, разная активность пользователя. Поэтому надо посчитать значения для сайта с малой активностью, ибо инфляция рейтингов (большие значения) на крупных сайтах это лучше, чем дефляция рейтингов (малые значения с дробями) ну мелких. ИМХО.
и по идеи вес голоса должен зависеть только от силы
В случае с голосованием, тогда вопрос, как сделать так, чтобы человеку не сделали «невозможным» существование на сайте из за всего одного неудачного сообщения?
Вот допустим случай, у пользователя рейтинг в 200 баллов, он по ошибке отсылает не туда комментарий, который в этом топике может восприняться негативно. И тут у него бах и рейтинг -1000. В результате обида, что он десятками интересные топики создавал, а тут ему такое.
рейтинг — по сути твой статус в сети, чем выше тем ты «круче»
сила — твоя степень влияние в сети на происходящее
Коэффициент влияния силы на голос зависит только от того с какими цифрами приятнее работать.
Коэффициент влияния рейтинга комментария на карму пользователя также зависит от того с какими цифрами прятнее работать.
Коэффициент влияния рейтинга комментария на силу, зависит от коэффициента влияния силы на рейтинг сообщения.
Коэффициенты влияние топика на карму и силу должны быть в несколько раз больше чем аналогичные коэффициенты влияния на комментарии.
Все так?
Главное тут хотелось бы побольше статистики, чтобы можно было недобросовестных пользовователей и ботов вылавливать…
Кстати, а можно такое как метка для комментария, то есть если комментарий чистый спам или абракадабра какая-то, то можно было его отметить чтобы администрации он высветился и приняли меры для пользователя если эти меры нужны. Ну и чтобы этими метками могли пользоваться пользователи с определеного уровня кармы.
кстати, через полчасика выложу движок для ознакомления с его структурой
после того как у юзера сила стала больше 100, он может поднимать рейтинг топика на +2?