@yavaskript

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

Допустим, у меня есть большая база фильмов, в которой помимо названия указаны:
  • год
  • список актеров
  • жанр
  • режиссер
  • страна
  • разного рода тэги (например, "будущее", "девушка", "десант", "насекомые" - для фильма "Звездный Десант")

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

Как я сам вижу алгоритм: я ставлю фильму оценку по шкале 0-10. Алгоритм добавляет определенные веса всем параметрам этого фильма. Также запоминает какие параметры встречаются чаще всего у просмотренных мной фильмов. Допустим, я посмотрел 15 фильмов ужасов и только 3 комедии. Следовательно, фильмы ужасов будут предлагаться мне чаще. Но среди 15 ужастиков низкие оценки я ставил фильмам с тегом "паранормальные явления". Следовательно, фильмы с таким тегом рекомендоваться мне не будут. Но высокие оценки я ставил фильмам с тэгом "похищение". И алгоритм будет искать для меня фильмы с тэгом "похищение" также и в других жанрах (например, триллеры). Как-то так :)
  • Вопрос задан
  • 91 просмотр
Пригласить эксперта
Ответы на вопрос 2
mrhard
@mrhard
web разработчик
год и страна, мне кажется, в расчет брать не нужно.

По мне так основная связка по приоритету:

высокий приоритет

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

средний приоритет

актер
режиссер

и низкий приоритет
жанр
тег
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Коллаборативная фильтрация
Каждый Ваш голос за понравившийся/непонравившийся фильм - это как ещё один участник в схеме на википедии.
Колонки - это поля свойств фильма: актёр, режиссёр, жанр, и т.д..

Года - сделайте так: один год - это своя отдельная колонка, и каждый голос расширяйте на 2 года влево и вправо (чтобы фиксировать не конкретный год, а 5-годовой диапазон, относительно от текущего).
Пример: проголосовали за фильм 2000-го года.
Затронутые колонки: 1998, 1999, 2000, 2001, 2002 (также, можно разные веса им проставить: 1-5-10-5-1)
Анимация
Collaborative_filtering.gif
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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