Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Доброго времени суток,
впервые столкнулся с такой задачей и не совсем понимаю как (хотя бы в общих чертах) ее решить.
Задача заключается в следующем:
Имеем рекомендательную систему по телеканалам, у каждого телеканала есть список проигранных фильмов, у каждого фильма есть определенные теги. В итоге, у каждого телеканала есть список уникальных тегов + их вес (сколько один и тот же тег повторяется на канале).
Когда пользователь смотрит определенные каналы - мы запоминаем их, и на основе этого списка можем получить общие предпочтения пользователя в виде "тег - вес тега".
необходимо на списке предпочтений пользователей "тег + вес тега" получить список наиболее подходящих для него телеканалов.
Получается 2 таблицы:
tv_tags:
tv_id (INT)
tag_id (INT)
tag_weight(INT)
user_preferred_tags:
user_id (INT)
tag_id (INT)
tag_weight (INT)
Как можно на основе таблицы user_preferred_tags получить некоторое количество tv_id из таблицы tv_tags, отсортированных по релевантности (чем больше совпадение по тегам и их весам - тем выше в позициях).
Одним запросом тут не обойдешься..
Буду рад любой помощи, сижу над задачей уже несколько часов
P.S. Реальный пример:
на канале "Мурзики" проиграло 2 фильма:
теги фильма 1: драма, приключения
теги фильма 2: приключения, комедия, боевик.
на основе этого в таблице tv_tags имеем следующие значения:
драма (1)
приключения (2)
комедия (1)
боевик (1)
содержимое user_preferred_tags, если человек посмотрел канал 2 раза:
драма (1) + драма (1) /2
приключения (2) + приключения (2)/2
комедия (1) + комедия (1)/2
боевик (1) + боевик (1)/2
(в данном случае вес каждого тега делится на кол-во просмотров различных телеканалов)
Отредактированно true (09.07.2011 19:05:17)
Неактивен
Если я вас правильно понял
Отредактированно DJK (10.07.2011 23:11:48)
Неактивен
Страниц: 1