Механизм подсчета рейтинга, силы, кармы, вклада и т.д.

Evg Evg 12 Октября 2021

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

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

Так, например, подсчитывается карма в Alto CMS:

карма в  Alto CMS
https://altocms.ru/509.html

А так работает карма в HackerNews.

карма в HackerNews
web.archive.org

В Meneame, с кармой вообще не шутят:

Meneame карма
https://github.com/Meneame/meneame.net/wiki/Karma

Чтобы разобраться в ней, необходимо погрузиться в изучение энтропии и другие связанные понятия.

См. в Википедии Энтропия

В Lobsters, дела обстоят значительно проще:

https://github.com/lobsters/lobsters

А некоторые просто плюсуют значения, с разделением некоторых коэффициентов в зависимости от контента… или даже так:

// Множитель рейтинга при голосовании
$config['module']['rating']['comment_multiplier'] = 0.1; // за комментарий
$config['module']['rating']['topic_multiplier'] = 1;     // топик

Рейтинг, сила, карма, уровень доверия, группы пользователей. Всё можно сделать. Появятся много показателей, которые мало кто понимает. Зачем они? Будут вопросы. Как они связаны? На что влияют?

Как группа пользователей, например, соотносится с кармой, а с силой? А уровень доверия и карма, как взаимосвязаны?

Что такое карма? Для чего она?

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

Тут ключевое слово вклад.

У меня есть вопрос. Есть, например, сообщество Z, думаю, что ранее от меня там был достаточный вклад. Но прошло время, и за последний год меня там практически нет.

Какой мой вклад на форуме за этот год? Нулевой. А как мы должны учитывать вклад, со временем? Вот там новичок, он работает, «пашет», и за последний год он сделал огромное количество работы. А я ничего. И мои баллы, карма, сила (неважно) должны «перебить» его (если их больше накопилось)?

Опс… Некоторые тогда начинают использовать плавающую карму, которая сперва, в начальных стадиях проектирования опиралась на коэффициент Шарпа.

Коэффициент Шарпа
См. Википедия, Коэффициент Шарпа

Но далее она усложняется т.к. туда добавляется еще метрика «интервал времени».

Так. Так мы можем далеко зайти.

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

У нас есть тут подсчет лайков по системе. Это просто. Есть сумма лайкой и мы просто отображаем их. Мы констатируем факт, не более. А карма… это слегка другое.

Давайте сперва сделаем изменение уровня доверия (TL), который меняется от того, что выполняются участником некоторые условия, а далее посмотрим.


Вот писал это, вспомнил сколько времени пришлось разбираться, как это работает, ужас. Может быть это полезно знать только для того, чтобы не городить такое далее? А то, на одном сайте, всё это работает, участники даже гордятся своими показателями, а толку мало.

P.S. И ещё, а кто сказал, что карма может быть только у пользователей? Система Meneame, Reddit, например, вводят понятие кармы поста и комментария. Ссылка, которая появляется в системе, имеет карму. Нужно.

Если этого не будет, как система будет знать «плохая это ссылка» или нет? А насколько она плоха? А как посты, например, должны ранжироваться в ленте?

Разрешим ссылку или запретим её, ДА / НЕТ, — не гибкая система. Мир не черно-белый.

И начинаем строить систему далее:

Сравнительный расчет разнообразия голосов по плотности графиков

Не надо. Сложно это. Не для реализации, а для работы потом и понимания, для реальной отдачи. Проверено.

Карма
Гигагайты таблиц, истории, логи и т.д. Графики строятся, сравнение идет. И как это используется если по простому? Да почти ноль, как используется.

Хотя нет, когда участник спрашивает, как подсчитывается карма, можно ответить:

log ((((коэффициент престижа группы пользователей X соответствует числу — коэффициент престижа группы пользователей X антилогов) + кто задал вопрос согласен с коэффициентом престижа + коэффициент престижа наилучшего ответа + 0,5), логарифмическая основа)

и т.д. Это часть реальной форумулы. которую делали для одного сайта.

Кому это надо, не знаю. Надо делать проще.

А проще, у нас тут есть уровень доверия (TL), вот с него начать и следует, а далее, а далее посмотрим.

Пример части возможностей при росте TL в Discourse.

уровни доверия 1 2 3 4
Задать вопрос 3 + + + +
Написать ответ 10 + + + +
Загрузить файлы 1 + + + +
Инвайт система (приглашение) - - + + +
Пригласить пользователей ответить на вопрос - - + + +
Почтовая служба - + + + +
Править Вики (wiki) публикации - + + + +
Создавать свои Вики (wiki) публикации - - - + +
Редактировать свой вопрос, ответ* + + + + +
Редактировать чужой вопрос - - - + +
Редактировать чужой ответ - - - - +
Объединять, переносить вопросы и ответы - - - - +
Жалоба на ответ - + + + +
«Нравится» ответ, вопрос + + + + +

Вот теперь мы можем сделать что-то подобное и для LibArea.

Это уже есть.

уровни доверия 1 2 3 4
«Нравится» пост, комментарии + + + +
Личные сообщения ) + + +
Инвайт система (приглашение) - + + +
Жалоба на пост и ответ - + + +

И т.д. Как будет готово, в раздел документации добавить.

3 Ответа

  1. German German 12 Октября 2021

    В форуме Discourse TL система достаточно проработана. Как я понимаю мы придерживаемся тут её?

    1. Evg Evg 12 Октября 2021

      Да. Она относительно проста для понимания, и с неё можно начать…

  1. OleStep OleStep 12 Октября 2021

    В табличной форме хорошо выглядит, доходчиво! +