Я создаю двигатель рекомендации продукта (в R), используя совместную фильтрацию. Чтобы сохранить более выгодные позиции в верхней части рекомендаций, мы разработали бизнес-правило гибкое, которое выглядит как рисунок 1. Для сортировки результата рекомендации следует использовать бизнес-правило.сортировать по гибким критериям
+---------------+----------+-----------------+
| Sort Priority | Level 1 | Level 2 |
+---------------+----------+-----------------+
| 1 | Brand | Versatile Foods |
+---------------+----------+-----------------+
| | | Agro |
+---------------+----------+-----------------+
| | | Specialty Foods |
+---------------+----------+-----------------+
| | | |
+---------------+----------+-----------------+
| 2 | Category | Dairy |
+---------------+----------+-----------------+
| | | Produce |
+---------------+----------+-----------------+
| | | Seafood |
+---------------+----------+-----------------+
| | | |
+---------------+----------+-----------------+
| 3 | Seasonal | Y |
+---------------+----------+-----------------+
| | | N |
+---------------+----------+-----------------+
figure 1
Бизнес-правила: При сортировке таблицы, столбец Бренд должен иметь приоритет над категории, которые должны иметь приоритет над сезонными. Это определяется значением приоритета сортировки столбцов.
При сортировке в колонке Бренд, универсальная еда имеет приоритет над Agro и Agro по специальным продуктам. Если значение в столбце бренда не отображается в правиле, значения (-ы) должны быть отсортированы в алфавитном порядке.
Такая же логика сортировки должна применяться к каждой записи в определении правила.
Как алгоритм рекомендации развивается. бизнес-правила могут быть изменены/изменены, чтобы иметь меньше или больше уровней. Напр. дополнительный вход level1 может быть добавлен в будущем, скажем, тип (кошерный, Vegan, халал) и т.д. Правили будет выглядеть, как показано ниже:
+---------------+----------+-----------------+
| Sort Priority | Level 1 | Level 2 |
+---------------+----------+-----------------+
| 1 | Brand | Versatile Foods |
+---------------+----------+-----------------+
| | | Agro |
+---------------+----------+-----------------+
| | | Specialty Foods |
+---------------+----------+-----------------+
| | | |
+---------------+----------+-----------------+
| 2 | Category | Dairy |
+---------------+----------+-----------------+
| | | Produce |
+---------------+----------+-----------------+
| | | Seafood |
+---------------+----------+-----------------+
| | | |
+---------------+----------+-----------------+
| 3 | Type | Kosher |
+---------------+----------+-----------------+
| | | Halal |
+---------------+----------+-----------------+
| | | Vegan |
+---------------+----------+-----------------+
| | | |
+---------------+----------+-----------------+
| 4 | Seasonal | Y |
+---------------+----------+-----------------+
| | | N |
+---------------+----------+-----------------+
figure 2
Мне нужна помощь в создании сценария в R, который будет сортировать приведенную выше таблицу (загруженную в фреймворк) в соответствии с вышеупомянутыми бизнес-правилами. Настоящая проблема, которую я хочу решить, заключается в том, что я не хочу менять код каждый раз, когда новая запись добавляется в правило.
Ввод данных (выход с помощью механизма рекомендаций) будет чем-то вроде этого (рисунок 3).
+-----+-----------------+----------+----------+
| SKU | Brand | Category | Seasonal |
+-----+-----------------+----------+----------+
| 1 | Versatile Foods | Dairy | Y |
+-----+-----------------+----------+----------+
| 2 | Agro | Produce | Y |
+-----+-----------------+----------+----------+
| 3 | Specialty Foods | Seafood | N |
+-----+-----------------+----------+----------+
| 4 | Agro | Produce | N |
+-----+-----------------+----------+----------+
| 5 | Specialty Foods | Organic | Y |
+-----+-----------------+----------+----------+
| 6 | Agro | Meat | N |
+-----+-----------------+----------+----------+
| 7 | Versatile Foods | Seafood | N |
+-----+-----------------+----------+----------+
| 8 | USA Bread | Bakery | Y |
+-----+-----------------+----------+----------+
| 9 | Specialty Foods | Seafood | N |
+-----+-----------------+----------+----------+
| 10 | Versatile Foods | Seafood | N |
+-----+-----------------+----------+----------+
figure 3
С определением правила, как на рисунке 1, вывод сценария должен быть таким же, как в приведенной ниже таблице.
Обратите внимание, что бренд = американский хлеб, который не встречается в бизнес-правиле, был помещен в нижней части сортированного списка.
Кроме того, для пунктов 4 и 6 запись с категорией = 'Продукция' была помещена над записью с категорией = 'Мясо', поскольку запись «Мясо» не была найдена в бизнес-правилах, но «Произведение» было.
+-----+-----------------+----------+----------+
| SKU | Brand | Category | Seasonal |
+-----+-----------------+----------+----------+
| 1 | Versatile Foods | Dairy | Y |
+-----+-----------------+----------+----------+
| 7 | Versatile Foods | Seafood | N |
+-----+-----------------+----------+----------+
| 10 | Versatile Foods | Seafood | N |
+-----+-----------------+----------+----------+
| 2 | Agro | Produce | Y |
+-----+-----------------+----------+----------+
| 4 | Agro | Produce | N |
+-----+-----------------+----------+----------+
| 6 | Agro | Meat | N |
+-----+-----------------+----------+----------+
| 3 | Specialty Foods | Seafood | N |
+-----+-----------------+----------+----------+
| 9 | Specialty Foods | Seafood | N |
+-----+-----------------+----------+----------+
| 5 | Specialty Foods | Organic | Y |
+-----+-----------------+----------+----------+
| 8 | USA bread | Bakery | Y |
+-----+-----------------+----------+----------+
figure 4
Я отредактировал мой вопрос, чтобы быть более понятным. –
Я отредактировал мой вопрос. Может кто-нибудь удалить из удержания? –