Есть ERP-система с главным каталогом вин. Уникальное вино - это совокупность значений:
- Название вина
- Производитель
- Цвет
- Страна
- Область
- Субрегион
- Классификация
Иногда достаточно знать несколько значений, чтобы точно определить вино, иногда нужны все. Назовем этот набор значений просто «вином». Например "Château Lafite Rothschild".
Для того, чтобы иметь продаваемый товар, помимо «вина» вам необходимо знать год сбора винограда и размер бутылки. Например. "Château Lafite Rothschild 2004, 75cl" - назовем это "продукт".
Более 200 поставщиков вин присылают нам свои прайс-листы. Каждый прайслист имеет свою структуру и особенности, что делает довольно сложным сравнение всех прайслистов между собой, и нашим собственным калатогом. Наша регулярная задача - найти лучшую цену на конкретный товар (например, "Château Lafite Rothschild 2004, 75cl").
Учитывая, что каждый прайс-лист может содержать 1000–3000–5000 записей и не иметь связанных идентификаторов (ID-s), вы можете себе представить сложность мануальной задачи. Несколько примеров проблем:
1. Название вина / производитель, страны, цвет - в нашем основном каллоге и в каждом прайс-листе можно написать по-разному (сокращенно, на разных языках и т. д .)
2. В прайс-листе поставщика может быть несколько значений «вина» (например, название, производитель, цвет и т. Д.) в 1 поле (столбце).
2.1 В каждом прайс-листе случайное количество столбцов с разными данными в них.
2.2 Каждому столбцу присвоено имя, которое явно не связано с его содержанием.
2.3. Некоторые значения вин (как «цвет» или «регион») могут быть представлены в прайс-листе как заголовки блоков (заголовки набора строк), а не как отдельный столбец.
3. Нет связанных идентификаторов (IDs) между всеми винами во всех прайс-листах. Часто - вообще без идентификаторов в прайс-листах.
4. Цены указаны в прайс-листах в разных валютах.
5. Цены в прайс-листах привязаны к разным сущностям, в зависимости от прейскуранта. Например: за 1-у бутылку, или за «коробку из 6 бутылок» или за набор «12 бутылок» и т. д.
6. В зависимости от прайс-листа сток указан в разных значениях - бутылки, коробки (по 3,6,12 и т. Д.)
7. Иногда прайс-листы делятся на несколько частей и помещаются в разные вкладки в xls.
8. Размер бутыки иногда отдельным полем, а иногда это вместе с фасовкой (0.75х12шт)
Задание:
1. Создать приложение, которое будет обрабатывать все входящие прайс-листы (xls), структурировать данные
2. Замапить вина / продукты из прайс листов с нашим основным каталогом (для каждого элемента в нашем основном каталоге найдите соответствие в прайс-листах. Отношение один ко многим, т.е. для каждого элемента в основном каталоге будет несколько предложений из разных прайс-листов)
3. Конечная цель: Заливаем любой новый прайс-лист от нового поставщика, и он мапиться на каталог с % соответствия 90% +.
P.S. Подразумевается некоторое ручное обучение системе.
Пример использования: мы загружаем в приложение 50 прайс-листов. Приложение обработает их, покажет на интерфейсе наш главный каталог и для каждой позиции в нем покажет соответствующие предложения от поставщиков с ценами.
Следует применить некоторый продвинутый самообучающийся AI / ML, поскольку простое «If-else» здесь не подходит в долгосрочной перспективе. Система должна обучаться каждый раз, когда создается новое соответствие.
Стоимость проекта фиксированная - цена договорная. Мы готовы платить за окончательное работоспособное решение! Все условия и критерии окончательной приемки являются предметом переговоров. Предложите свои ставки и условия