Помощь с алгоритмом ранжирования Ruby on Rails на 5 баллов

StackOverflow https://stackoverflow.com/questions/2341911

Вопрос

В настоящее время я нахожусь в процессе разработки приложения Ruby on Rails, подобного digg, для выпускного проекта моей степени, и я застрял в алгоритме ранжирования по 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 баллов, которые могут быть даны.

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

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

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top