Алгоритм начисления рейтинга и силы

Есть у кого нибудь оригинальные идеи начисления силы пользователю и рейтинга комментам, топикам, блогам, юзерам?
Сила должна зависить от активности пользователя и от отценки его работ(топиков, комментов) другими юзерами. А дельта голосования за коммент, топик, блог, юзера должна зависить от силы голосующего. Как то так :)

35 комментариев

avatar
интересная идейка есть… сделать чтобы юзеры с + кармой могли только плюсовать, с — кармой только минусовать. просто интересно что из этого получится :)))
avatar
Если количество троллей больше, либо равно x, то карма у всех будет негативная. Если количество троллей меньше x, то карма у всех будет положительной :)
avatar
Тут думаю необходимо рассмотреть для начала разные примеры применения подобной системы, примерами могут послужить порталы как хабрахабр, digg и им подобные, а также различные компьютерные и настольные игры. Пример примера системы (:

α – глобальный рейтинг пользователя, по нему выводиться топ пользователей и выдаются различные «вольности».

β – рейтинг конкретного сообщения, будь то топик или комментарий, по нему выводиться топ сообщений. Этот показатель воздействует на α через Ω.

Ω — шкала сообщения, соединяет рейтинг сообщений (β) с рейтингом пользователей (α).

Когда β начисляется по баллам к топику (или комментарию), то топик может быть расценен по шкале Ω. Например, очень плохой топик, плохой топик, «никакой» топик, хороший топик и очень хороший топик. Положение на шкале выбирается по β (рейтингу сообщения), рейтинг β не воздействует на рейтинг α напрямую то, что воздействует на рейтинг α, так это его положение на шкале Ω.

Хорошие стороны: допустим у сообщения рейтинг -50 β, что делает его «самым плохим» по шкале Ω, но самое плохое по шкале отнимает всего, скажем, 5 баллов α из рейтинга самого пользователя. В результате очень эффективная борьба со стадным инстинктом – автор сообщения не уйдет в «сильный минус» за одно неудачное высказывание, а также не поднимется в облака из-за дешевой шутки или «первого сообщения» в теме.

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

Это просто пример размышления, тут много дыр одна из которых изложена в предыдущем параграфе. Надо посмотреть много подобных систем и составить хорошую схему, допустим в microsoft visio, а затем подвергнуть её различным возможным ситуациям.
avatar
всё верно, только β должен воздействовать не только на рейтинг но и на силу(а возможно только на силу) автора
avatar
т.е. сила пользователя это его «авторитет», который он заработал своими топиками и комментариями.
а рейтинг пользователя это то как его оценили другие пользователи напрямую используя свою силу(«авторитет»)
avatar
Точно, я забыл что можно ещё оценивать пользователя напрямик… попробую составить схему…
avatar
Вот картинка http://i37.tinypic.com/scbcpy.png — 86 KБ. В данном случае показатель пользователя карма — это сумарное число всех рейтингов за его сообщения. Однако я думаю, что все разрешения, должны начисляться согласно его силе…
avatar
примерно так, только к рейтингу юзера не должен прибавляться рейтинг его сообщений, нужен понижающий коэффициент на дельту изменения рейтинга сообщения. Вообще тут по сути нужно только подобрать нужные коэффициенты при линейной зависимости, либо придумать замудрённые нелинейные функции зависимости
avatar
То есть тут два коэффициента, один это переменная, которая зависит от «силы» пользователя, другой это переменная, зависящая от количества уже проголосовавших. Тут две «параболы».

В случае в зависимости от силы, чтобы не заморачиваться с дробями, проще сделать линейную функцию «ступеньками».
Если 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
И так далее, все числа просто для примера.

Для начала необходимо обдумать «потолки»: максимальное количество голосов реально влияющих на рейтинг автора, в одну сторону, через его комментарий и топик; а также, максимальный рейтинг силы, после которого новые значения силы не будут больше влиять на переменную силы, когда пользователь голосует. Далее от них продумать другие значения, подобрать параболы и затем их упростить до линейных функций.

Вся проблема в том, что на разных сайтах, разная активность пользователя. Поэтому надо посчитать значения для сайта с малой активностью, ибо инфляция рейтингов (большие значения) на крупных сайтах это лучше, чем дефляция рейтингов (малые значения с дробями) ну мелких. ИМХО.
avatar
спорно на счет ограничения силы, скорее просто нужно замедлять рост при больших значениях + не согласен что рейтинг юзера должен зависеть от номера голосующего
и по идеи вес голоса должен зависеть только от силы
avatar
Ну насчет роста силы, это да… просто я имел ввиду поставить барьер там где и так рост будет настолько низким, что считать тысяцные это бесмысленно, а затем все упростить до линейных.

В случае с голосованием, тогда вопрос, как сделать так, чтобы человеку не сделали «невозможным» существование на сайте из за всего одного неудачного сообщения?
avatar
по сути только настройками ограничений на постинг по рейтингу, т.е. делать возможным создавать топики юзерам с отрицательным рейтингом
avatar
Все таки, разве не лучше поставить лимит на максимальное позитивное/негативное значение сообщения, голоса пусть учитываеются, но на рейтинг самого пользователя влияют до какого-то значачение.

Вот допустим случай, у пользователя рейтинг в 200 баллов, он по ошибке отсылает не туда комментарий, который в этом топике может восприняться негативно. И тут у него бах и рейтинг -1000. В результате обида, что он десятками интересные топики создавал, а тут ему такое.
avatar
степень влияния рейтинга коммента на рейтинг автора самая низкая(десятые и сотые доли) т.е. даже 100 негативных оценок за коммент не могут существенно повлиять на рейтинг. Кстати 100 оценок комменту это уже много :), на той же Хабре редкость 100 голосов за коммент. Следущим по степени влияния должен быть топик, и самый большой вклад должен давать непосредственно голос за/против пользователя.
avatar
аааа… есть ещё один коэффицент влияния рейтинга поста на рейтинг автора, тогда все понятно ^^
avatar
Кстати, давайте разберемся и дадим определение карме, силы и зачем он вообще существуют.
avatar
пиписько мерство + доступ к фичам, таким как создание собственного коллективного блога и т.п.
рейтинг — по сути твой статус в сети, чем выше тем ты «круче»
сила — твоя степень влияние в сети на происходящее
avatar
а доступ к фичам от чего зависит, от кармы или силы?
avatar
лучше сделать чтоб только от рейтинга(кармы)
avatar
тогда вопрос, а зачем вообще рейтинг раздвоен на два показателя?
avatar
чтобы при отрицательном рейтинге можно было влиять на что то за счет силы
avatar
Можно на все эти функции посмотреть… А то, каждый ответ пораждает ещё тонну вопросов )
avatar
в том то и дело что пока нет никаких функций, этот топик и создавался для того чтобы выяснить какие функции должны быть и реализовать их :)
avatar
http://i37.tinypic.com/2qc32x0.png 11 KБ, вот пока ясно что сила одного пользователя влияет на карму другого, через его сообщение. А что влияет на силу? Или только прямое голосование через профайл?
avatar
ой все понял… так…
avatar
короче перечитывую все, а то совсем запутался…
avatar
i36.tinypic.com/vzigz5.png — пользовавтель1 голосует за сообщение пользователя2
i34.tinypic.com/sm6n40.png — пользователь1 голосует за пользоваетля2

Коэффициент влияния силы на голос зависит только от того с какими цифрами приятнее работать.

Коэффициент влияния рейтинга комментария на карму пользователя также зависит от того с какими цифрами прятнее работать.

Коэффициент влияния рейтинга комментария на силу, зависит от коэффициента влияния силы на рейтинг сообщения.

Коэффициенты влияние топика на карму и силу должны быть в несколько раз больше чем аналогичные коэффициенты влияния на комментарии.

Все так?
avatar
да, только рейтинг комментария не должен влиять на рейтинг пользователя, влияет дельта изменения рейтинга коммента
avatar
Была идея — давать дополнительную силу в зависимости от числа друзей, но потом подумал что если пользователи про это прознают, то просто будут массовые акции со списками как на ЖЖ.

Главное тут хотелось бы побольше статистики, чтобы можно было недобросовестных пользовователей и ботов вылавливать…

Кстати, а можно такое как метка для комментария, то есть если комментарий чистый спам или абракадабра какая-то, то можно было его отметить чтобы администрации он высветился и приняли меры для пользователя если эти меры нужны. Ну и чтобы этими метками могли пользоваться пользователи с определеного уровня кармы.
avatar
Отличная идея! Сделаю чтото типа «пожаловаться на комментарий»
кстати, через полчасика выложу движок для ознакомления с его структурой
avatar
Мне кажется, что отрицательная оценка — это и есть та самая функция пожаловаться. То есть механизм саморегулирования. Даже спам в некоторый момент пользователи могут оценить очень уместным.
avatar
в принципе да, можно только скрывать плохие комменты
avatar
Я когда-то писал свои мысли для большой улицы. Если еще актуально, то возможно там парочка идей будет интересно. :-)
  • Carw
  • +2
avatar
здравствуйте, а у меня вопрос))
после того как у юзера сила стала больше 100, он может поднимать рейтинг топика на +2?
avatar
именно так
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.