Задать вопрос

Как автоматически распознать название товара?

Доброго времени суток!

Есть база товаров (~30 000) шин для автомобилей.
В существующей базе товаров, названия примерно в таком виде: Michelin Pilot Super Sport 295/35 R19 104Y

И есть прайсы поставщиков, обычно в xls формате, но формат названий товаров у каждого поставщика разный, может быть например 295/35 R19 Michelin Pilot Super Sport 104Y или 295/35R19 104Y Michelin Pilot Super Sport или в других вариациях. Плюс поставщик к названию товара может еще добавить какое-то свое внутренное обозначение или сократить полное название модели небольшой аббревиатурой (например: Michelin Pilot Alpin 4 275/30 R20 97W, сокращает как Michelin PA4 275/30 R20 97W и т.д)

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

Возможно существует какой-то инструмент, API для грамотного поиска. Подумывал над использованием API Я.Маркета для поиска названий товаров. Но я нахожусь в Украине, а у нас на данный момент этот сервис заблокирован...

Спасибо за внимание, надеюсь на помощь.

Скриншоты с фрагментами асортимента нескольких прайсов поставщиков, для примера:
9f679458c1f34a96af9947a697f48664.pngd51d3f887be34450b5c65e598175902e.png8fd6c3a54dc54c51b3e02c19e882ffa4.png12fa85ed93bd4a7cb6b55909562b69e2.png
  • Вопрос задан
  • 409 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
Первое, что бы я сделал, это собрал базу брендов (например Michelin, Pirelli и тд). Дальше необходимо распарсить параметры резины: 275/30 R20, тем самым мы сужаем поиск. Дело остаётся за малым).

PS
Но я нахожусь в Украине, а у нас на данный момент этот сервис заблокирован


Если проблема только в этом, то это вообще не проблема :)
Ответ написан
gromdron
@gromdron
Работаю с Bitrix24
Задача довольно интересная, но четкого решения придумать не могу.
Вообще, там должен быть артикул, но если уж его нет, то думаю целесообранее будет решение через составление полноценной единой базы.
Можно сделать несколькими сопосбами:
1) К существующей БД добавить таблицу с соответствиями "Название в прайсе" -> "id товара" (думаю наиболее простой и наиболее точный вариант, но довольно трудоемкий т.е. при появлении новой шины, нужно будет дополнять таблицу)
2) Парсинг строки (например регулярками) и поиск в БД по частям + поиск по сокращению (трудоемкий вариант, но тут возможны коллизии при автоматическом составлении сокращений)

Можно ли получить кусочек БД для тестов? Может чего придумаем.
Ответ написан
villiwalla
@villiwalla
HTML-верстка
MYSQL полнотекстовый поиск, конечно 1 к 1 не даст результат, но всё же.
Ответ написан
@heartdevil
плыву как воздушный шарик
Можете попробовтаь разбить название товара на слова и генерировать перестановки.

Все равно придется, анализировтаь "шаблоны" приходящих названий товаров. Может быть там их и не много вообще.
Ответ написан
Комментировать
djQuery
@djQuery
"Кодируем помаленьку" ("Сказка о Тройке")))
Напишите для каждого поставщика по отдельному модулю, которые будут парсить соответствующие таблицы и в итоге сведут всё в вашу БД с продуманной структурой. Хотя парсить xls - то ещё удовольствие........ Можно автоматизировать их конвертацию в csv или xml - там будет попроще.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы