Механизм рекомендаций PHP - рекомендовать виски с 12 различными вкусовыми характеристиками - PullRequest
1 голос
/ 19 марта 2012

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

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

Каждый виски имеет «профиль вкуса» с 12 различными вкусовыми характеристиками (например, если виски ореховый, дымный и т. Д.), Каждая функция ранжируется по шкале от 0 до 4. Поэтому у меня в основном 12 номеров, с которыми можно играть и сравнивать на другие 12 номеров.

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

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

1 Ответ

3 голосов
/ 19 марта 2012

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

| CHARACTERISTICS  |  YOUR WHISKEY  | WHISKEY #1  | WHISKEY #2|
---------------------------------------------------------------
|      Smoky       |       x        |             |     x     |
---------------------------------------------------------------
|      Nutty       |                |      x      |     x     |
---------------------------------------------------------------

В приведенном выше примере YOUR WHISKEY это тот, которыйвам нравится, и WHISKEY # 2 имеет больше ваших желаемых характеристик, чем WHISKEY # 1 .Это очень простое сравнение, и оно не имеет большого значения.

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

Этот аналогичный пост о системах совместной фильтрации и рекомендаций может дать более полезную информацию: Что такое алгоритм за сайтами рекомендаций, такими как last.fm, groovesharkПандора?

...