@ace-of-spades

Как привести прайсы поставщиков к единому виду?

Вот, что есть:

1. Есть три прайса от разных поставщиков (в будущем может быть больше).
2. В каждой два столбца: название товара и цена. Примерно 10 000 позиций.
3. Во всех таблицах есть одни и те же товары, но названия отличаются. Например: в одной «шоколадка марс», в другой «марс шоколад», или «смартфон iphone6» и «телефон i phone 6». То есть как перестановка слов, так и пробелы, сокращения и прочее.

Задача: найти одинаковые товары и проставить им единый идентификатор во всех трёх таблицах.
Проблема: как максимально точно определить совпадения?

Как я думаю можно это решить: берём за основу одну таблицу и ищем совпадения в других таблицам по словам (с перестановкой букв и совпадением до n числа букв, но цифры не трогаем). Плюс используем цены, как критерий совпадения, то есть задаём порог: не должна отличаться более, чем, допустим, на 100 рублей.

Или считать процентное отклонение, по словам и по цене.

Это реально? Или можно проще, и я заморочился? Может есть готовые решения?

А конечная цель такая: в интернет-магазине на WP обновлять ценники на меньший из всех прайсов.

Если придётся заказывать скрипт/плагин у программиста, какой может быть примерный ценник? Если делать по существу (это как-будто ML) и возможностью подгружать дополнительные прайсы.

Всем неравнодушным спасибо!
  • Вопрос задан
  • 239 просмотров
Пригласить эксперта
Ответы на вопрос 4
Grinvind
@Grinvind
Помогаю увеличивать трафик с поисковых систем
Думаю любой алгоритм будет давать ошибку
Как вариант: Удалить все пробелы и не цифро-буквенные символы, привести к одному регистру и сложить коды символов. Получится слабое подобие хэша. таким образом можно найти все совпадения вне зависимости от перестановки слов. Если в позициях будет "шоколад" и "шоколадка", то этот метод покажет несовпадение. Для учета и этого различия, можно запустить предварительную авто-замену однокоренных слов на какое-то определенное значение.

Ну и дальше можно разные авто-замены придумывать, для приближения к идеалу.
Но вероятность ошибки все равно остается.
Ответ написан
Комментировать
solotony
@solotony
покоряю пик Балмера
1) прогнать и слить строгие совпадения
2) для нестрогих совпадений сделать "склейщик" - автоматизированное рабочее место для просмотра и построения связей 10000 немного.

5cc72212d22ed928168436.png
Ответ написан
Комментировать
dmitriylanets
@dmitriylanets
веб-разработчик
Можно воспользоваться сервисом https://partscanner.ru/
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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