Добрый день.
В открытом доступе наконец-то появился огромный справочник штрихкодов с наименованиями товаров, категориями и брендами.
Мы работаем над ним лет 8 и теперь в нем около 3 миллионов штрихкодов в стандартах EAN (EAN-13, EAN-8) и UPC (UPC-A, UPC-E).
Что там?
Там таблица, содержащая записи штрихкодов и соответствующие им наименования товаров, во всех записях есть категория и во многих — бренд.
Спектр представленных товаров очень широкий. Тяжелой техники там нет, но потребительские сегменты присутствуют, вероятно, все (фармацевтика, парфюмерия, косметика, продукты питания, игрушки, sexshop-ассортимент, книги, канцелярия, метизы, инструменты и т.д. и т.п.)
Оригинальная он-лайновая версия справочника хранится на сервере Universe-HTT.
Открытая версия размещена на github'е. Обратите внимание на то, что в исходниках хранится фрагментированная база данных. Полный файл находится в релизе.
Зачем он нужен?
Те, кто искал (чаще всего безуспешно) в интернете или где-либо еще справочник штрихкодов и так знает зачем он нужен. Для остальных перечислю полезные свойства такого обширного массива данных:
- Прежде всего, это список товаров с «твердыми» идентификаторами. То есть, вы берете произвольный товар, например, лежащий у вас на тумбочке, и по штрихкоду, напечатанному на упаковке, можете сопоставить его с аналогичным товаром, находящимся где-нибудь на складе в Рио-Де-Жанейро
- Следствием из предыдущего пункта будет возможность облегчить электронный документооборот между предприятиями, ибо проблема синхронизации большей части (но не всех, конечно) товаров отпадает
- Вы можете быстро открыть новый магазин, не вбивая поступившие товары в учетную систему, а получая их из такого справочника поиском штрихкода (сильно идеализированный пример, ну да ладно)
Приведенные варианты и их возможные вариации довольно банальны. Есть и куда более интересные применения этого справочника:
- Анализ словаря товарных наименований
- Обучение нейронных сетей для классификации товаров и нормализации их наименований
- Разработка «интеллектуальных» систем для сравнения ценовых предложений из разных источников
- Сравнительный анализ продаж и иных операций на не связанных предприятиях
- … Список продолжает ваша фантазия
Формат представления
База данных представлена текстовым файлом в кодировке UTF-8 с полями, разделенными символом табуляции.
Структура записи следующая:
- ID: Внутренний идентификатор товара
- UPCEAN: Штрихкод
- Name: Наименование товара
- CategoryID: Внутренний идентификатор категории
- CategoryName: Наименование категории. Так как справочник категорий иерархический, то это наименование составное — от самого верхнего уровня до терминального уровня, которому принадлежит товар. Разделители уровней — слэш ('/')
- BrandID: Внутренний идентификатор бренда
- BrandName: Наименование бренда
Внутренние идентификаторы едва ли кому интересны — мы их выгружаем только для собственных целей (если вдруг понадобится точно идентифицировать ссылку на запись при возникновении каких либо вопросов со стороны).
Записи в свободно распространяемом формате отсортированы по наименованию товара в алфавитном порядке.
Особенности
Если вы внимательно изучите представленные данные, то заметите, что в отличии от большинства, имеющихся в интернете аналогичных справочников (и платных и бесплатных), над наименованиями товаров была проведена интенсивная работа.
Пара слов о том, как мы это делаем.
Прежде всего, справочник (администрируемый в системе OpenPapyrus) подвергается автоматическому процессингу с помощью технологии, которую я как-то описывал на Хабре.
Хотел бы сказать, что упомянутая технология все за нас делает. Но, увы. Большой объем работы приходится делать в полу-автоматическом и ручном режимах.
Многие наименования приходится «дешифровывать» — в первоисточнике они могут содержать немыслимые сокращения и полностью пренебрегают нашей системой именования товаров :)
Все штрихкоды, опубликованные в открытом доступе, гарантированно прошли проверку на соответствие одному из 4-х стандартов: EAN-13, EAN-8, UPC-A, UPC-E и включают контрольную цифру. Возможные дефекты и проблемы опишу ниже.
Полнота и актуальность
На типичный вопрос «все ли штрихкоды есть в справочнике?» ответ стереотипен: нет и быть не может.
Если оценивать полноту справочника по вероятности отсутствия там штрихкода, который случайно попался вам на глаза, то это будет процентов 10-15 (очень грубая моя собственная оценка, к тому же, сами понимает, предвзятая). В любом случае, ничего похожего по размеру в открытом доступе больше нет
Географический охват (по странам, в которых товары продаются) значителен: Россия, Украина, Беларусь, США, Великобритания, Европейский Союз, ЮАР, Бразилия, Малайзия и многие иные.
Языки представления главным образом русский и английский. Источники с остальными языками мы обычно игнорируем, поскольку ничего в тех языках не смыслим (в виде исключения встречаются позиции на испанском, чешском, и прочих языках).
Мы обновляем справочник на сервере Universe-HTT с периодичностью в несколько месяцев (когда накапливаем в предварительном буфере достаточный объем данных). Последний раз заливали данные в июне этого года. Совсем новые позиции там скорее всего отсутствуют. Однако, хотя это и покажется удивительным, новые штрихкоды появляются не так уж часто. Многие товары с одними и теми же кодами продаются в ритейле годами.
Открытую версию справочника так же планируем время от времени обновлять.
Источники
Из каких источников все эти данные мы берем? В основном, из интернета. Собираем различные прайс-листы, открытые отчеты, в том числе государственных органов (например, некоторые штаты в США публикуют данные о закупках).
Косяки
Справочник содержит ряд дефектов. Их не много, но сообщить о них необходимо.
Дефективные коды
В первую очередь, попадаются штрихкоды, которые по ошибке трактуются как UPC-A в то время как на самом деле это — EAN-13 без контрольной цифры. Причина в том, что первоначальный источник (мы уже не знаем какой) содержал код EAN-13 без контрольной цифры, но
последняя цифра удовлетворяла правилу расчета контрольной цифры для UPC-A и наш скромный алгоритм посчитал этот код за относящийся к UPC-A. Это можно было бы поправить, но заметили слишком поздно и руки не дошли до массовой корректировки.
Проблем такого рода исчезающе мало, но, как говорится, увы.
Грубое несоответствие
Далее, есть путаница в товарах. То есть, в некоторых (крайне редких случаях) штрихкоду соответствует наименование, совсем к нему не относящееся.
Приватные коды
Некоторые штрихкоды могут быть приватными. Те EAN-13, которые начинаются на 2 мы отбрасываем на старте, но иногда что-то идет не так и попадаются приватные коды, либо начинающиеся на '2', либо те, что начинаются с какой-то иной цифры, являясь тем не менее частными, не зарегистрированными ни в какой из организаций, занимающихся этим (GS1, например).
Классификация
Как мы не старались наладить хорошую классификацию справочника — удалось не много. Треть позиций принадлежит группе default — то есть абсолютно не классифицирована. Остальные вполне могут иметь ошибочную принадлежность категориям.
Далеко не все товары ассоциированы с брендами, хотя мы и очень трудились над этим вопросом.
Как помочь?
Если у вас есть желание помочь в расширении справочника, то мы будем благодарны за присланные данные об известных вам штрихкодах. Я сильно сомневаюсь, что найдутся желающие, но на всякий случай сообщаю, что по информации в профиле найти меня не сложно.
Тот, кто имеет возможность реализовать автоматическую классификацию элементов справочника и поделится идеями и наработками, получит титул невероятно любезного человека. Мы же со своей стороны обязуемся информировать общественность об успехах собственных изысканий в этой области.
Корысть
Если вам понравился справочник, то отметьте его на github'е звездочкой. Если он вам очень понравился — отметьте звездочкой еще и проект OpenPapyrus, ибо все администрирование и управление справочником осуществляется с его помощью.
Условия использования
Нет никаких. Как хотите, так и используйте. Если дадите ссылку на нас — спасибо, нет — переживем.
Горькие сожаления
Не желая выдавать нужду за добродетель, сообщу, что мы рассчитывали каким-то образом монетизировать обсуждаемый справочник. Однако, заметных успехов на этой ниве за прошедшие годы нам достичь не удалось. Посему решили: пусть лучше будет общий, чем пропадет нахрен. Как-то так выглядят наши мотивы для означенного действа.
Спасибо за внимание.
Автор: antonsobolev