Методология: как устроен разбор
Алгоритм детерминированный: один и тот же ввод при одной и той же версии базы всегда даёт один и тот же результат. Ниже — что именно происходит с вашим составом.
Шаги обработки
- Очистка ввода. Убираем префиксы («Ingredients:», «Состав:»), переносы строк, лишние разделители и типичный мусор распознавания текста. Исходное написание при этом сохраняется и показывается в результате.
- Токенизация. Список делится по запятым верхнего уровня. Запятая внутри скобок
(
Parfum (Linalool, Limonene)) и запятая между цифрами (1,2-Propanediol) разделителем не считаются. Секция «может содержать» распознаётся отдельно, её компоненты помечаются тегом. - Точное сопоставление. Ищем каноническое имя INCI. Регистр, пунктуация и лишние пробелы не значимы. Дополнительно проверяется вариант с заменой кириллических гомоглифов — частая ошибка вёрстки и OCR.
- Сопоставление синонимов. Используются только проверенные синонимы с указанием типа (официальный, распространённый, торговый, опечатка) и источника.
- Похожие названия. Если точного совпадения нет, мы можем предложить кандидата с оценкой близости, но никогда не принимаем его автоматически. Кандидат отклоняется, если различаются числа в названии или различаются химически значимые части имени (метил/этил/пропил/бутил, цикло-, ди-/три-, натрий/калий и подобные).
- Функции. Берутся из справочника с указанием источника перечня.
- Правила. Применяются только записи со статусом «опубликовано», действующие на текущую дату, с проверкой юрисдикции и контекста продукта.
- Формирование блоков. Нормативная информация, маркировка аллергенов, контекст формулы, проверка заявлений и ограничения формируются отдельно и не смешиваются.
Отдельная проверка по перечню запрещённых веществ
Приложение II к Регламенту (ЕС) 1223/2009 — это перечень веществ, которые в косметике ЕС не допускаются вовсе. Такие вещества почти никогда не входят в обычный справочник ингредиентов, поэтому мы держим их отдельным слоем и проверяем каждую строку состава по нему.
Без этого слоя запрещённое вещество молча попало бы в раздел «не распознано» — то есть самый важный сигнал в разборе выглядел бы как пробел нашей базы. Теперь такая строка выводится нормативным блоком с номером позиции приложения.
Совпадение проверяется только точное: похожие написания мы к запрету не приравниваем. И само совпадение не означает нарушения — продукт может быть выпущен для другого рынка или до введения запрета. Мы сообщаем нормативный статус вещества, а не выносим приговор товару.
Откуда берутся нормативные правила
Условия применения извлекаются из официального консолидированного текста регламента и проходят две независимые проверки, прежде чем попасть на сайт.
- Проверка цитаты. К каждой позиции прилагается дословная выдержка из документа, и мы проверяем её буквальное вхождение в исходный текст. Цитата, собранная из разных мест, отбраковывается.
- Проверка полей. Отдельно проверяется, что название вещества и числовое значение встречаются в документе и стоят рядом друг с другом. Публикуются только те числа, которые прошли эту проверку.
Перевод условий на русский принимается только при сохранении всех чисел оригинала без изменений; непереведённые условия заменяются отсылкой к первоисточнику, а не остаются английским текстом. Языковые модели участвуют в извлечении и переводе, но ни одно утверждение не попадает на сайт, не пройдя перечисленные машинные проверки.
Позиционная эвристика 1%
Мы отмечаем вероятную границу 1% по первому компоненту из числа тех, что практически всегда вводятся в долях процента (консерванты, загустители, хелаторы, регуляторы pH, отдушка). Всё, что ниже этой границы, помечается как предположительно ниже 1%.
Это предположение о структуре списка, а не измерение концентрации, и в интерфейсе оно всегда подписано именно так.
Чем мы не пользуемся
Языковые модели не участвуют в расчёте. Они могут применяться нами при подготовке редакторского черновика, но не создают факт, нормативное ограничение или итоговый флаг: всё это приходит из версионированных данных с указанием источника.
Мы не выводим единый балл 0–100 и не присваиваем компонентам ярлык «безопасный»/«опасный». Сводка показывает только количественные характеристики разбора.
Версии и воспроизводимость
Каждый результат подписан тремя версиями: версия метода, версия базы и версия набора правил. При изменении любой из них меняется и версия в подписи, поэтому старый результат всегда можно соотнести с состоянием данных на момент разбора.
Статусы данных: draft — не показывается пользователю, published — участвует в разборе.
Правило, числовые значения которого требуют сверки с актуальной редакцией нормативного акта, остаётся черновиком
и не выводится, даже если тема востребована.
Известные ограничения текущей версии
- База покрывает распространённые компоненты, но далеко не всю номенклатуру: нераспознанные строки — ожидаемое явление.
- Нормативные блоки опираются преимущественно на документы ЕС; по ЕАЭС мы приводим общее указание на применимый технический регламент.
- Распознавание фото этикетки в этой версии не реализовано.
- Тестовый корпус составов пока стартовый; расширение до 200–500 проверенных составов — условие открытия индексации.
Проверьте свой состав
Разбор идёт в браузере: список ингредиентов не уходит на сервер и не попадает в ссылку.