Страницы: 1
RSS
Как сравнить два прайса, если один и тот же товар описан по-разному?
 
Посоветуйте пожалуйста, как слить два (и более) прайса если товары описаны по-разному? Например:    
CH 212 CAROL.HERERA SEXY 100ml edp /ж/      
и, то же самое  
Carolina Herrera 212 Sexy Ж Товар Парфюмированная вода 100 мл??    
 
Ключевое: нужно что бы ячейки в общем файле располагались либо друг под другом, либо рядом, НО НЕ ТОЛЬКО сами ячейки с описанием, а и соответствующие им ячейки с ценами.    
 
Занимаюсь анализом цен в регионах, пока все забиваю вручную...   :-(
 
А нет возможности штрихкод подтягивать?
 
ШК присутствуют только в прайсах дистрибутора, а региональные оптовики и тем более магазины этим не заморачиваются  
 
 
{quote}{login=Senya}{date=23.07.2009 04:32}{thema=}{post}А нет возможности штрихкод подтягивать?{/post}{/quote}
 
Продолжаю вбивать ручками    :-(
 
{quote}{login=Tanchita}{date=24.07.2009 03:59}{thema=}{post}Продолжаю вбивать ручками    :-({/post}{/quote}  
а есть что-то всегда общее(но присущее только этому товару) в названии в разных прайсах(в примере я например увидел 212 повторяющиеся)?
 
Логично бы иметь возможность сравнить оба текста на последовательность общих цепочек. В приведенном примере:  
 
212 = 212; CAROL=Carol; HER=Her; RERA=rera; SEXY= Sexy; 100=100; ж=Ж  
 
Совпало 20 символов из 32 (совпадение = 62,5%) говорит о практической идентичности (с точки зрения поставленной задачи) этих двух текстовых строк.  
Проверяя в дальнейшем значения цен, соответствующие этому товару из разных прайсов, можно ещё более точно убедиться в соответствии одной строки прайса другой – цены на подобный товар отличаются не в разы!    
Это могла бы быть функция, близкая к MaskCompare() из надстройки PLEX, назовем её условно TextCompare(txt1;txt2;accuracy),    
где    
txt1;txt2  -  любые тексты или ячейки с текстом, которые мы сравниваем (сличаем) на практическую идентичность;  
accuracy – заданная точность сравнения (в %).    
Говорить о регистре символов в этой функции не уместно.  
Функция возвращает значения ИСТИНА или ЛОЖЬ.  
Сразу видны сложности для сравнения, ведь не только тексты 212=212, но и 21=21, и 12=12, и 1=1, и 2=2, и 2=2. Поэтому, при реализации функции нужно предусмотреть как преимущество совпадения 212=212 перед остальными приведенными (по длине последовательной цепочки), так и не допускать повторного использования уже проверенной части текста.  
Сложная задача!    
Наверное, работа поисковиков  - близкая по сути функции MaskCompare(), а вот для подобной TextCompare() – не могу привести аналогов.  
 
Сравнивать прайсы на 8’000-10’000 наименований по 5-6 фирмам с примерно описанными выше наименованиями, учитывая, что цены могут меняться ежедневно и задача требует регулярного решения – просто невыполнимая задача.  
 
Просил помочь и info@planetaexcel.ru
 
Наконец-то мы выяснили, что гугл и функция надстройки plex это по сути одна фигня.  
Осталось выяснить, кто у кого код спёр.
 
Можно вот так, только вручную надо вбивать уникальную часть данного товара, повторяющуюся во всех прайсах
 
Спасибо, Коллеги!
 
{quote}{login=Дмитрий Д}{date=26.07.2009 09:00}{thema=}{post}Можно вот так, только вручную надо вбивать уникальную часть данного товара, повторяющуюся во всех прайсах{/post}{/quote}  
 
Это очевидное решение, но все равно требует ручной работы и, не в меньшем объёме...  
Разве что это пригодится, при работе с одними и теми же наименованиями, но это не типичная задача.  
Прайсы быт., комп.техники содержат до 8-10 тыс.позиций, и парфюмерные - такой же "длины"...  
В прайсах, ежедневно появляются новые позиции (например, в 3-й тысяче) - отслеживать это трудно, что выписать уникальную часть наименования товара.  
Нужно, чтобы команда Excel сама распознавала повторяющиеся цепочки в текстовых массивах.  
Так что универсальным это предложение не является.  
Кто - Что ещё может предложить?  
Алгоритм
 
Ну, мудрить по ситуации.    
Что ещё остаётся то?  
 
*Далее написан сумбурный бред*  
 
Принимаем некий % повтора какой то части за минимально допустимый для определения идентичности.  
От этого и пляшем.  
 
К примеру, в случае с парфюмерией я бы для начала заменил точки, скобки и прочую фигню дополнительными пробелами. Помудрил бы с учётом апострофов.  
Отдельно организовал поиск по эм..."стандартным разделителям групп"? Т е, насколько я знаю, цена-содержимое иногда разительно отличается "из-за" одного слова: скажем, для глаз или тела. То же самое для объёмов и м/ж.  
При отсутствии вот этих самых разделителей, к примеру, повысить требуемый %, о котором я написал выше, до 90-100%. Иначе объем ошибок мог бы превысить какой-нибудь критический уровень.  
Потом уже сравниваем. По кускам. Учитываем специфику и разные возможные косяки.  
К примеру, HERERA/HERRERA. Стандартная очепятка. Если это косметика, то наличие двух одинаковых букв в любом из слов длиннее, скажем, 5 букв не является критичным. Ну, для целей сравнения. Исключительно по моему мнению, могу ошибаться. Соответственно, если встречаютя 2 одинаковых буквы подряд в слове длиннее 5 букв мы удаляем этот повтор.  
Но для этого нужно быть "в теме". Универсальностью тут и не пахнет.  
 
Далее прогоняем по нескольким прайсам. Смотрим результат. Видим основные проблемы, пытаемся их решить. Опять прогоняем. Как дойдёт до приемлемого уровня-оставляем.
 
по своей работе тоже связан с сровнением прайсов, в которых до 10к позиций  
сначала нужно провести "привязку" ассортимента конкурентов к своему прайсу (по всем конкурентам),    
 
в дальнейшем остается ее поддержание в актуальном сосотянии  
 
 
а дальше все решается с помощью ВПР
Karim
 
{quote}{login=karim}{date=03.08.2009 09:05}{thema=}{post}по своей работе тоже связан с сровнением прайсов, в которых до 10к позиций  
сначала нужно провести "привязку" ассортимента конкурентов к своему прайсу (по всем конкурентам),    
 
в дальнейшем остается ее поддержание в актуальном сосотянии  
 
 
а дальше все решается с помощью ВПР{/post}{/quote}  
 
Т.е. если в моем прайсе продукт называется "колбаса", а в чужом прайсе - "сало", то приходится делать таблицу соответствия "колбаса" - "сало" и по "сало" искать (с помощью ВПР())в будущем в чужом прайсе значение нужного параметра (цена), что будет соответствовать параметру (цене) нашей "колбасы"?    
Это ж какую работу нужно совершить первоночально (если 10К наименований)?  
И нет гарантии, что в последующем в чужом прайсе название "сало" будет уточнено на "салло", например?  
Да и чужой прайс может быть интереснее (шире, глубже и т.п.) нашего...    
Нет нужен алгоритм близкий к поисковику Google...  
 
Предлагаю продолжить обсуждение темы. Очень актуальный вопрос!  
Модератор сайта (вопрос задавался info@planetaexcel.ru) молчит...
 
Так вот кто вместо мяса в колбасу сало пихает! :)  
 
В любом случае, для поиска нужно что-то ключевое, и чем больше точности в "ключе", тем точнее поиск.  
Как проверить на уникальность слова "сало" или "салат", если возможна одинаковая опечатка "салт"?
 
Есть готовое решение - программа PriceMatcher.  
Функционал постоянно наращиваетс. Уже сейчас есть автоматическое сопоставление позиций, которое прекрасно сопоставит указанные вами позиции. Также, естественно, присутствуют ручное сопоставление, импорт прайсов из экселя, экспорт каталога в эксель и CSV, авторасчет розничных цен, применение наценок и скидок к отдельным позициям, производителям, поставщикам, сайтам, система наценок в зависимости от цены товара, обновление всех прайсов одной кнопкой и много других вкусностей.  
 
Подробности на www.pricematcher.ru
Страницы: 1
Читают тему
Наверх