NLP

Чат-бот подбирает парфюм

Как подобрать духи, если не смыслишь в парфюмерии, и чем пахнет Digital Humanities

«Чем пахнет?» — вопрос, который часто ставит нас в тупик. Описать запах сложнее, чем, например, цвет или звук. Обычно аромат связывают с его источником: пахнет лимоном, сиренью, напалмом поутру; и реже — с абстрактными образами: «круглый» или «жёлтый». Как найти подходящий аромат, если не хватает слов для обозначения своих ольфакторных предпочтений?

Специалистка по рекомендательным системам Клэр Лонго (Claire Longo) создала бота, который подбирает парфюм по текстовому описанию ситуации или образа. Например, вот что советует бот для отдыха на итальянском острове:

Легкие цитрусовые ароматы для средиземноморского отпуска

А это подборка для любителей книг:

Корица, бергамот, имбирь — для уютных посиделок в библиотеке.

Эта работа была вдохновлена богатым тезаурусом нишевой парфюмерии. Нишевые парфюмы — это редкие, эксклюзивные ароматы от небольших брендов. Их подробные и поэтичные описания помогают выстроить семантический образ и найти нечто подобное тому или иному парфюмерному образцу.

Как это работает?

Данные для бота были собраны с популярного сайта нишевой парфюмерии. Для каждого аромата были собраны его описание, список нот и отзывы покупателей.

Так выглядит информация о любимом парфюме самой создательницы бота.

Каждый документ с информацией о парфюме имеет два векторных представления, построенных с помощью латентно-семантического анализа (LSA) и Doc2Vec. Использование двух разных векторов помогает учитывать как конкретные описания («запах ванили»), так и более абстрактные («запах утреннего леса»).

Когда пользователь вводит свой запрос, бот определяет эмоциональную окрашенность каждого предложения и затем группирует их: позитивные и нейтральные — с одной стороны, негативные — с другой. Затем с помощью усредненного косинусного расстояния в двух векторных пространствах бот ищет парфюм, чьё описание наиболее близко к положительным и нейтральным предложениям из запроса пользователя. Если описание парфюма ближе к негативно окрашенным предложениям, он исключается из рекомендаций. В итоге бот предлагает на выбор 5 самых подходящих ароматов.

Вот что бот рекомендует любителям Digital Humanities.

Оценить работу модели сложно: наше восприятие образов и ситуаций, как и запахов, субъективно. Для идеального результата стоило бы учитывать ассоциативный ряд конкретного пользователя. Впрочем, такая рекомендательная система — отличный способ исследовать мир парфюмерии и найти в нем что-то новое для себя.

Код проекта опубликован в открытом доступе*.

Источник: Perfume Recommendations using Natural Language Processing

* Исходный код на github

Share

Recent Posts

Едят ли корейцы собак? Отвечает статистика

Если спросить у прохожего: «Какие у вас ассоциации со словом “Корея”?», то собаки наверняка окажутся среди первых 3–5 ассоциаций. Конечно,…

21.09.2026

Как построить систему самообучения: алгоритм от цели до результата

Можно скачать десять приложений для учебы, составить идеальный план и всё равно мало чему научиться. Проблема кроется чаще всего в…

17.09.2026

Нейросети не заменяют насмотренности: интервью с цифровым историком Андреем Володиным

Как цифровизация меняет работу историка? Что происходит с историческими источниками, когда их начинают превращать в базы данных, карты и цифровые…

11.09.2026