← Все статьи
2026-05-17 00:01 · 🌐 СНГ (tech/AI)

BERTopic + LLM: автоматическая кластеризация тысяч отзывов без разметки

Инженер из Ростелеком ИТ опубликовал подробный разбор пайплайна, который превращает 119 тысяч неразмеченных отзывов в интерпретируемые темы — без единого лейбла вручную. Внутри: FRIDA-эмбеддинги, HDBSCAN, UMAP и локальная LLM для читаемых названий кластеров.

BERTopic + LLM: автоматическая кластеризация тысяч отзывов без разметки

Антон, NLP-инженер из Ростелеком Информационные технологии, опубликовал на Хабре пошаговый разбор production-ready пайплайна на базе BERTopic. Задача — взять сырой массив отзывов с маркетплейса Kaspi (119 048 текстов на русском и казахском), без какой-либо разметки выделить тематические группы и дать им человекочитаемые названия. Итог: 45 автоматически найденных кластеров из 3 168 уникальных негативных отзывов в категории смартфонов.

Контекст

Задача тематического моделирования — не новая. Классический LDA существует с начала 2000-х, но он плохо работает с короткими текстами и требует ручного подбора числа тем. BERTopic, появившийся в 2022 году, изменил подход: вместо частотных матриц — контекстные эмбеддинги от трансформеров, вместо вероятностного вывода — плотностная кластеризация. Библиотека не является «чёрным ящиком»: каждый шаг можно заменить своим компонентом.

Ключевой выбор в пайплайне Антона — эмбеддинг-модель FRIDA от AI Forever. На момент публикации она входила в топ-5 бенчмарка MTEB для русского языка и занимала лидирующую позицию именно в задаче кластеризации. Размерность эмбеддингов — 1 536, что само по себе создаёт проблему: алгоритмы кластеризации в пространстве такой размерности страдают от «проклятия размерности», расстояния теряют информативность.

Решение — двухступенчатое снижение: сначала UMAP сжимает вектора до 2D, сохраняя локальную и глобальную структуру лучше, чем PCA или t-SNE. Затем HDBSCAN находит плотные области без необходимости задавать число кластеров вручную. Финальный штрих — LLM генерирует читаемые названия для каждого кластера вместо набора ключевых слов.

Аналитика

Этот пайплайн иллюстрирует сдвиг, который происходит в прикладном NLP прямо сейчас: LLM перестаёт быть центром системы и становится финальным слоем интерпретации поверх классических методов. HDBSCAN и UMAP делают тяжёлую математику, LLM — переводит результат на язык бизнеса. Такая архитектура дешевле, чем прогонять каждый документ через большую модель, и при этом даёт артефакт, понятный аналитику без технического бэкграунда.

Важен и выбор датасета: отзывы с Kaspi — это реальные данные на русском и казахском языках, которые отражают специфику рынка Центральной Азии. Большинство open-source решений тематического моделирования заточены под английский, а FRIDA закрывает этот пробел для русскоязычных корпусов. Для компаний в КР и СНГ, работающих с клиентскими данными, это прямая практическая применимость.

Метрики оценки, которые разобрал автор, — Topic Coherence, Topic Diversity, Stability (ARI) — позволяют не просто запустить кластеризацию и надеяться на лучшее, а измерить, насколько темы осмысленны, разнообразны и воспроизводимы. Это критично для продуктовых команд, которым нужно объяснить результат стейкхолдерам, а не просто показать scatter plot.

Кейсы применения в бизнесе

B2B-SaaS стартап с поддержкой клиентов. Если у вас накопилось несколько тысяч тикетов за полгода — запустите BERTopic на корпусе обращений. Результат: автоматический реестр тем («проблема с оплатой», «баг в мобильном приложении», «запрос на интеграцию»). Это позволяет расставить приоритеты в роадмапе данными, а не интуицией. Время разметки тикетов вручную сокращается до нуля. Сценарий реалистичен даже при 500–1 000 тикетах — HDBSCAN работает и на малых корпусах при правильной настройке min_cluster_size.

Корпорация с legacy и большим call-центром. Транскрипты звонков, почтовые обращения, чат-логи — всё это неструктурированный текст, который дорого размечать вручную. Пайплайн на FRIDA + BERTopic запускается на исторических данных, выдаёт карту тем с весами, позволяет отслеживать, как распределение жалоб менялось квартал к кварталу. На этом можно строить дашборды для операционного директора без написания сложных регулярных выражений.

SMB и локальный бизнес в КР. Интернет-магазин, доставка, сервисный центр — если вы собираете отзывы на Kaspi или в Google Maps, BERTopic позволяет раз в месяц автоматически получать сводку: о чём пишут, что чаще всего раздражает, какие темы набирают вес. Запускается на Kaggle бесплатно (до 30 часов GPU в неделю), не требует собственной инфраструктуры.

Кейсы в личной жизни

Разработчик или аналитик данных. Пайплайн из статьи — это рабочий шаблон, который можно адаптировать под свой корпус за день. Kaggle-ноутбук, FRIDA, BERTopic — всё open-source. Если вы хотите добавить в портфолио проект по NLP с реальными данными и измеримыми метриками — это готовая основа.

Контент-мейкер или исследователь. Если вы ведёте YouTube-канал, блог или подкаст и хотите понять, какие темы реально волнуют аудиторию в комментариях, — тот же пайплайн применим к комментариям. Собираете комментарии через API, чистите, кластеризуете, получаете карту интересов без ручного чтения тысяч сообщений.

Студент или стажёр в NLP. Статья даёт редкое сочетание: полный код + объяснение каждого шага + метрики оценки. Это лучший способ разобраться в том, как работает семантическая кластеризация на практике, а не в теории учебника. FRIDA на Kaggle с P100 — бесплатно, воспроизводимо, с фиксированным seed.

Как применить сегодня

  • Зайти на Kaggle, создать ноутбук с GPU (Tesla P100 или 2×T4), установить bertopic hdbscan umap-learn pymorphy3 sentence-transformers — воспроизвести пайплайн из статьи на своём корпусе за 2–3 часа.
  • Для русскоязычных текстов использовать FRIDA от AI Forever как эмбеддинг-модель — она даёт лучшие результаты по MTEB для кластеризации на русском языке по сравнению с multilingual-вариантами.
  • Начать с параметров min_cluster_size=15, min_samples=5 для HDBSCAN — это разумный baseline; затем итерировать, ориентируясь на метрику Topic Coherence (считается через gensim CoherenceModel).
  • Подключить локальную LLM для генерации названий кластеров через TextGeneration из bertopic.representation — это убирает зависимость от внешних API и делает пайплайн воспроизводимым в закрытом контуре.
  • Оценивать результат тремя метриками в связке: Topic Coherence (осмысленность), Topic Diversity (уникальность тем), Stability ARI (воспроизводимость при разных random seed) — только их совокупность даёт честную картину качества кластеризации.
← Все статьи