Хорошие системы оценки/репутации? - программирование
Подтвердить что ты не робот

Хорошие системы оценки/репутации?

Я работаю над сайтом, который очень похож на Yahoo! Ответы: пользователь может задать вопрос, подождать ответов от других людей и выбрать лучший. Чтобы определить лучших пользователей, существует система репутации, которая имеет следующие особенности:

  • Можно повысить или понизить пользователя;
  • Можно отменить или уменьшить ответ;
  • Для каждой темы есть оценка "опыта", которая увеличивается для каждого ответа.

Теперь, если это возможно, я бы хотел найти алгоритм для объединения всех этих факторов и дать оценку "доверия" для каждого ответа.

До сих пор я старался делать это сам, используя вещи типа Coefficient * (UpVotes / TotalVotes), но был слишком линейным. Я также пробовал другие способы, но они не работали (байесовский алгоритм). На данный момент, в версии Alpha, я использую Trustability = sqrt(GoodAnswers).

Примечания: алгоритм должен быть индивидуальным (нет необходимости сканировать всю базу данных, чтобы получать данные, такие как средние, суммы и т.д.) и, если это возможно, быстро. Я собираюсь реализовать это в PHP-MySQL.

4b9b3361

Ответ 1

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

Существует хорошая статья о системе ранжирования в Reddit.

Самое простое решение, которое появилось у меня в голове, - рассчитать некоторый вес upvote для отдельного пользователя. Это означает, что более доверенный пользователь более влиятелен, чем другой. Например. пользователь с рейтингом 100 upvote определенно лучше, чем downvote от двух пользователей с рейтингом -100. Но мы не можем сказать, что это лучше, чем 100 downvotes от -100 пользователей. попробуйте экспериментировать с этим.

Ответ 2

Вы можете использовать ту же идею рейтинга страницы google: когда пользователь повысит или добавит ваш вопрос \answer как фаворит, увеличение вашей достоверности зависит от этой доверенности пользователя.

http://en.wikipedia.org/wiki/PageRank

Ответ 3

Используйте систему ELO/Glicko. Каждый пользователь начинает со стандартного значения, а затем рассматривает downvoting или upvoting, как результаты одного к одному.