Помощь с Ruby on Rails 5-ти точечный алгоритм ранжирования - PullRequest
1 голос
/ 26 февраля 2010

В настоящее время я нахожусь в процессе разработки похожего на digg приложения Ruby on Rails для финального проекта моей степени, и я застрял в алгоритме ранжирования из 5 пунктов.

Есть несколько факторов, которые необходимо учитывать, вот разбивка:

Пользователи

  • У них будет личный рейтинг в 5 баллов в каждой категории, 5 из которых будут лучшими, а 1 - худшими (представьте, что это 5-звездочный рейтинг), так что я вполне мог бы иметь IE. 2-звездочный рейтинг в категории «История» и 5-звездочный рейтинг в категории «Технология».

Рассказы

  • Каждая история будет классифицироваться только по 1 категории. Когда пользователь публикует историю (и вот одна из проблем), ему присваивается «базовый рейтинг» на основе рейтинга пользователя в этой категории. То есть, скажем, у меня 5-звездочный рейтинг в категории технологий, тогда, если я опубликую историю, она получит базовый рейтинг 5 звезд, потому что у меня 5-звездочный рейтинг в этой категории.

В итоге у меня 3 рейтинга. Средний рейтинг пользователей, рейтинг пользователей по категориям и рейтинг каждой истории.

Я нашел эту ссылку: http://www.seomoz.org/blog/reddit-stumbleupon-delicious-and-hacker-news-algorithms-exposed

Он разлагает различные алгоритмы ранжирования, алгоритм Reddit, кажется, приспосабливает мои потребности, я считаю, что это просто вопрос замены переменной X = D - U надлежащим уравнением, которое в среднем составляет 1-5 баллов, которые могут будет дано.

Что вы, ребята, думаете?

Спасибо, Джош

1 Ответ

1 голос
/ 26 февраля 2010

Из вашего вопроса мне кажется, что вы слишком обеспокоены начальным рейтингом. Массовый общественный резонанс (или его отсутствие) перевесит любой начальный рейтинг довольно быстро.

Кроме того, из связанной статьи видно, что все формулы являются просто простыми аналитическими приближениями к любому поведению, которое имели в виду создатели (или, что более вероятно, нарисовали в виде грубого графика на листе бумаги). Таким образом, моя рекомендация будет такова: подумайте, что вы хотите, чтобы произошло с рейтингом с течением времени и люди голосуют; сделать несколько набросков этого поведения; подумайте о функции, которая делает более или менее то, что вы хотите; играйте с константами, пока не будете удовлетворены результатом.

Извините, что довольно расплывчато, но в конце концов это домашнее задание, и вы сами дали довольно расплывчатое описание. Мы всегда рады новым вопросам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...