2012-05-11 3 views
5

Я ищу, чтобы написать базовую рекомендательную систему в Objective-C, и я ищу базовый алгоритм работы. К сожалению, готовые системы отключены от таблицы, поскольку, похоже, для Objective-C не существует.Алгоритм алгоритма основных рекомендаций

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

Поскольку пользователь продолжает использовать систему и оценивать различные элементы (на основе ненависти/любви/любви), я бы хотел настроить взвешивание рекомендуемых тегов на основе этой обратной связи. Я также хотел бы взять еще несколько свойств своих рейтингов, поскольку их профиль растет, например, «80-е», если это касается фильмов. Или, может быть, режиссер, придерживающийся темы фильма.

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

Может ли кто-нибудь порекомендовать хорошую отправную точку для такого алгоритма, мне бы не хотелось изобретать колесо, и там много чего?

+0

У меня нет опыта с этим, но я думаю, что это можно сделать без каких-либо движков или фреймворков, что, вероятно, даст вам гораздо большую гибкость и контроль. По основам я не думаю, что это должно быть намного больше, чем подсчет тегов и, может быть, лет со временем и т. Д. (Например, 80-е годы), а затем либо рассчитать, что нравится пользователям, либо найти совпадения на них, либо рассчитать каждый результат матча с пользователем и выбрать топ-что-то. – altschuler

+0

Как насчет создания базы знаний и использования алгоритма обратной цепочки? это немного перебор, но я думаю, что это сработает. – doNotCheckMyBlog

+1

Есть ли причина, по которой вы придерживаетесь цели-c, если у вас есть готовый продукт на другом языке? Я бы использовал его, написав этот язык как код или использовать его в качестве существующей реализации и просто построить интерфейс для обмена данными между двумя модулями. – amit

ответ

0

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

Вы можете узнать немного больше о http://www.cs.carleton.edu/cs_comps/0607/recommend/recommender/itembased.html Есть неплохие варианты его реализации в сети.

То, о чем вы упоминали в своем посте, будет называться совместной совместной фильтрацией на основе пользователей.

1

Не могли бы вы обратиться к python-recsys: https://github.com/ocelma/python-recsys, это программное обеспечение использует алгоритм SVD, я думаю, что это базовый алгоритм, но достаточно эффективный. Необходимая библиотека является numpy и scipy, которые написаны на C и завернуты Python. Я думаю, что его легко компилировать и переносить в объектив-c

 Смежные вопросы

  • Нет связанных вопросов^_^