И снова рейтинг! По какой формуле расчитывать рейтинг?

Здравствуйте, для примера:
Есть база с книгами 100 000 шт.

Книги имеют следующие поля (по ним и нужно посчитать рейтинг):

author - если empty то отрицательно влияет на рейтинг
publisher - если empty то отрицательно влияет на рейтинг
picture - если empty то отрицательно влияет на рейтинг
year - если empty то отрицательно влияет на рейтинг
visits - чем больше просмотров тем выше рейтинг
stars - от 0 до 10 чем выше книга оценена пользователем тем выше рейтинг
rating - в это поле необходимо записать уже готовый рейтинг от 0 до 10

Планируется раз в день запускать бота который будет анализировать книги на основе указанных выше параметров и проставлять каждой книге rating.

Помогите пожалуйста с формулой.
  • Вопрос задан
  • 3932 просмотра
Пригласить эксперта
Ответы на вопрос 2
begemot_sun
@begemot_sun
Программист в душе.
Рейтинг как сумма весовых коэффициентов:
sum(ki * pi)
Ответ написан
@snowpiercer
Советую рейтинг, выставленный пользователями, хранить в виде как минимум двух чисел: total_rating, voters_count
total_rating - суммарное кол-во пойнтов (звезд), поставленных пользователями
voters_count - кол-во проголосовавших
При таком способе мы можем корректно обновлять средний рейтинг.
Можно еще задуматься о том, чтобы хранить рейтинг в виде массива из N чисел - количество пользователей, поставивших ту или иную оценку, чтобы производить более хитрые вычисления над этими данными, например, учитывать экстремальные оценки (слишком плохие и слишком хорошие) с меньшим весом.
Далее, вычисленный рейтинг можно умножать на 1, если поле заполнено, и на 0.9, если поле пусто.
visits - тут нужно калибровать, так, книга с самым высоким показателем visits - ее рейтинг умножаем на 1, а рейтинг книги с самым низким visits умножаем на число K, где 0 <= K < 1
все остальные книги получают множитель в интервале от K до 1
Как-то так.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы