Для менеджера по продукту отзывы пользователей – это бесценный источник знаний о проблемах, запросах, пожеланиях и юзкейсах аудитории. Но есть нюанс: анализировать текстовые отзывы вручную тяжело, поэтому команды часто их игнорируют целиком или анализируют отзывы редко и несистемно.
Мы решили упорядочить анализ и систематизацию отзывов пользователей с помощью GPT. В итоге получился полностью автоматизированный дашборд, который обновляется каждый день и приносит много пользы и инсайтов.
В статье мы затронем следующие вопросы:
на что обращать внимание при анализе отзывов и как структурировать сам отчет;
как подготовить данные для автоматического анализа;
как организовать регулярную обработку отзывов с помощью GPT.
Для реализации будем использовать следующие технологии:
OpenAI API;
AI-оркестратор, с помощью которого можно выстраивать логику запросов к GPT (мы используем наш внутренний инструмент, но подойдет любой – Langflow, n8n и др);
ETL, с помощью которого мы извлекаем отзывы из хранилища данных, обрабатываем их и помещаем обратно.
Сначала расскажем как выглядит наш дашборд по отзывам, а потом – как мы его сделали.
1. Как выглядит наш дашборд по пользовательскому фидбеку
Мы хотели сделать лаконичный дашборд, на который можно зайти, проскроллить одну страничку и быстро получить срез текущих настроений пользователей. А если что-то заинтересовало, “провалиться” вглубь и почитать тексты конкретных отзывов.
Дашборд обновляется ежедневно и автоматически.
Вот какую информацию мы выводим.
Общие метрики
NPS
Нам нравится, когда есть одна общая метрика, на которую удобно быстро посмотреть.
Для работы с фидбеком обычно используется метрика NPS (Net Promoter Score). Она рассчитывается на основе ответа на вопрос: "Насколько вероятно, что вы порекомендуете наш продукт/услугу друзьям или коллегам?", где респонденты ставят оценку от 0 до 10.
При расчете NPS используется такое упрощение:
Оценки 9-10 → Промоутеры
Оценки 7-8 → Нейтралы
Оценки 0-6 → Критики
Дальше NPS рассчитывается по стандартной формуле
NPS= %Промоутеров − %Критиков
Численная оценка есть не всегда, но NPS все равно можно попробовать оценить на основе текстовых отзывов, используя Sentiment Analysis (анализ тональности).
С помощью GPT мы оценили тональность отзыва: положительный (промоутеры) / нейтральный / негативный (критики) – и получили возможность рассчитать NPS по всем отзывам.
Получилось удобно.

Категории отзывов
Категории отзывов мы продумали до начала автоматизации. Это полу-ручной процесс.
Сначала мы собрали фидбек бизнес-пользователей: выяснили, какие темы их больше всего интересуют в отзывах. А затем показали существующие отзывы GPT и попросить предложить категоризацию.
На основании бизнес-запроса и базового анализа с помощью GPT, собрали список основных категорий пользовательского фидбека.
У нас получилось так:
General Satisfaction – общий отзыв про удовлетворенность продуктом
Website – фидбек про работу сайта
Quality – фидбек про качество сервиса
Brand – отзывы, которые относятся к бренду целиком, а не к конкретным продуктам
Product use – отзывы про использование продуктов, без упоминания конкретных продуктов
Products – отзывы по конкретным продуктам.
Удобно, когда категорий верхнего уровня получается 7 +/- 2.

Распределение положительных, нейтральных и отрицательных отзывов по категориям
Итак, для каждого отзыва мы знаем категорию и тональность, и мы можем построить первый интересный отчет.

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

Метрики по конкретной категории
Динамика положительных, отрицательных и нейтральных отзывов по категории
Для каждой из наших категорий отзывов мы построили динамику положительных, отрицательных и нейтральных отзывов.

Ого, что-то случилось в ноябре – мы видим пик отрицательных отзывов по сайту. Что не нравится пользователям?
Основные темы
Для того, чтобы отслеживать типичные мотивы в фидбеке пользователей, для каждой категории отзывов выделим основные темы.
Теперь выгружаем все отзывы по категории Website, загружаем их в GPT и просим проанализировать и найти основные темы.
Смотрим на ответ GPT, редактируем и фиксируем конкретный список типичных тем для каждой категории.
Наш анализ принес тему “Issues with the New Site” с самым большим количеством негативных комментариев, очень интересно!

Динамика отзывов по темам по месяцам
Теперь мы знаем, что произошло. В ноябре был релиз новой версии сайта, и люди стали массово писать о проблемах!
Этот отчет помогает нам отслеживать, как меняется динамика отзывов с конкретной темой по месяцам: например, растет или падает количество отзывов с темой Issues with the New Site.

Автоматическая сводка по всем отзывам за неделю
Итак, мы поняли, что обновление сайта людям не очень понравилось. Но в чем конкретно дело?
Мы можем собрать все отзывы категории Website за неделю и попросить GPT подготовить краткую сводку. Эти сводки будем автоматически готовить раз в неделю и сохранять в базу, чтобы вывести на дашборд.
На мой взгляд, виджет с автоматической сводкой – это самый полезный виджет на нашем дашборде, потому что позволяет не только посмотреть на цифры, но и прочитать executive summary того, что пользователи писали в течение недели. Как будто ваш стажер наконец подготовил внятный отчет.
Также оставим возможность посмотреть исходный текст отзывов. Для этого все отзывы переведем на один язык (в нашем случае – на английский).

2. Как это работает
Формат данных
Все наши отчеты мы строим по данным такого формата:
Таблица с отзывами

Таблица с Summary

Что делает GPT
Для того, чтобы получить значения review_text_translated, sentiment, category, topic и summary воспользуемся помощью GPT.
Для этого нам понадобится несколько промптов:
промпт для перевода текста;
промпт для выявления тональности;
промпт для выявления категории;
промпт для выявления тематики отзыва по каждой категории.
(Можно попробовать получить все ответы одним промптом, но это добавляет ошибок).
Также нам понадобится промпт, который делает summary из текстов отзывов за неделю.
AI-оркестратор
Для того, чтобы собрать пайплайн обработки одного отзыва с помощью GPT мы воспользовались AI-оркестратором – сервисом, который позволяет в визуальном интерфейсе собрать и протестировать цепочку промптов. Мы использовали внутренний инструмент, но можно было бы воспользоваться n8n или Langflow.
AI-оркестратор позволяет настроить логику обработки текстов в визуальном интерфейсе без программирования и реализует API-endpoint, к которому можно обратиться программно.

Автоматизация
AI-оркестратор работает как API. С помощью Python мы:
подаем на вход отзыв;
получаем всю мета-информацию по отзыву;
записываем эту информацию в базу данных.
Скрипт запускается ежедневно для обработки новых отзывов.
Готово.
Результаты
Благодаря такой визуализации:
Выявляем основные проблемы, с которыми сталкиваются пользователи, и фокусируем усилия на их решении.
Реагируем оперативно на обратную связь пользователей.
Связываемся с недовольными пользователями, чтобы устранить их проблемы.
С отзывами могут работать пользователи из разных команд и направлений - для них это удобный инструмент отслеживания только своего домена по выделенной категории (например, продуктовый каталог или техническая поддержка).
Заключение
Анализ фидбека – это возможность реально улучшить продукт. С автоматизацией всё становится быстрее, проще и понятнее.
Если вы сталкиваетесь с трудностями в обработке отзывов, возможно, наш подход поможет вам сделать процесс более эффективным и сфокусированным на реальных потребностях ваших клиентов.
За идею и реализацию спасибо Евгении Новосилецкой, аналитику агентства Эпоха Восемь[ссылка удалена мод.].
Другие статьи Жени:
Комментарии (13)
Tomasina
10.02.2025 12:03где респонденты ставят оценку от 0 до 10.
Это слишком длинный диапазон, поэтому будут большие скачки влево-вправо при оценивании.
Максимум 5 пунктов, оптимально 3-4.
Epoch8 Автор
10.02.2025 12:03Да, шкала конечно влияет на оценки. В статье я скорее о том, как анализировать уже полученные данные, а не о выборе идеального формата. Но да, согласна - если шкала слишком длинная, это действительно может добавить шума
PetkaKH
10.02.2025 12:03А не проще ли, работать с отзывами на языке оригинала, а потом уже делать манипуляции. Заодно и срез по языковой группе, что в некоторых случаях может быть даже интересно.
Epoch8 Автор
10.02.2025 12:03Теоретически да, просто ответ LLMки на языке оригинала тяжелее проверять. Например вот такой отзыв если ты не знаешь испанского – он какой тональности?
"¡Tienen una comida brutal, de chuparse los dedos! Por las noches caemos seguido en su restaurante."PetkaKH
10.02.2025 12:03В целом ни как. Но, мы можем вначале заставить его оценить отзыв на языке оригинала, а потом уже на другом шаге сделать перевод. И постепенно файтюнить модель, показывая где он прав а где ошибся.
KonstantinTokar
10.02.2025 12:03Интересно, вы фильтруете фейковые отзывы? При большом количестве, возможно, есть какие то особенности в них.
Epoch8 Автор
10.02.2025 12:03ух, фильтрация фейков – это отдельная задача, там надо не только на текст смотреть, но и на время публикации, мб IP отправителя, возраст аккаунта и кучу еще всего. У нас было пару таких подходов, но это отдельная большая тема
vikarti
10.02.2025 12:03Связываемся с недовольными пользователями, чтобы устранить их проблемы.
Примерно как Ростелеком на все посты с просьбой написать в ВК им? Или как большинство банков на банки ру/vc и прочих пикабу у кого "а это не мы были а с чего вы решили что мы - нам пофиг"(притом что записи даже есть что таки они)/"у нас все по закону"(а то что получается бред, часто еще и игнорирующий законы - ну и что).
Хуже только типа-интеллектуальные чатботы которые сначала доведут человека ответами НЕ по теме, а потом или оператор удивляется почему его только что не матом или уже этому удивляется сотрудник в офисе.
CloseToAlgotrading
Вопрос. А не теряется ли тональность при переводе?
Epoch8 Автор
Хорошее замечание! Тональность действительно может меняться при переводе. В статье я рассматривала общий принцип, но комментарий отлично дополняет тему, в сложных случаях действительно надо учитывать такие нюансы)
vikarti
Вот кстати да.
Вот у нас комментарий вида - It will be interesting when China congratulates London on following in China's(and Russia's) footsteps and using China's advanced experience in creating a managed democracy. :) - у него какая тональность? А если смайлик убрать? А если знать что в /r/StallmanWasRight комментарий?
А если пост на банки ру - благодарит банк за поддержку трансгендеров в это непростое время не смотря на законы России в этом плане (и в тексте - пользователь благодарит банк за совершенно нормальное отншение к ситуации когда их клиент о котором банк знает что это Василиса Прекрасная и по голосу - женщина внезапно говорит что оно - Павел Гераскин с мужским голосом)?
Epoch8 Автор
positive / negative / neutral / дебри многоуровневого троллинга