Для менеджера по продукту отзывы пользователей – это бесценный источник знаний о проблемах, запросах, пожеланиях и юзкейсах аудитории. Но есть нюанс: анализировать текстовые отзывы вручную тяжело, поэтому команды часто их игнорируют целиком или анализируют отзывы редко и несистемно.

Мы решили упорядочить анализ и систематизацию отзывов пользователей с помощью 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 по всем отзывам.

Получилось удобно.

Screenshot 2025-02-07 at 22.31.10.png
NPS

Категории отзывов

Категории отзывов мы продумали до начала автоматизации. Это полу-ручной процесс.

Сначала мы собрали фидбек бизнес-пользователей: выяснили, какие темы их больше всего интересуют в отзывах. А затем показали существующие отзывы GPT и попросить предложить категоризацию.

На основании бизнес-запроса и базового анализа с помощью GPT, собрали список основных категорий пользовательского фидбека.

У нас получилось так:

  • General Satisfaction – общий отзыв про удовлетворенность продуктом

  • Website – фидбек про работу сайта

  • Quality – фидбек про качество сервиса

  • Brand – отзывы, которые относятся к бренду целиком, а не к конкретным продуктам

  • Product use – отзывы про использование продуктов, без упоминания конкретных продуктов

  • Products – отзывы по конкретным продуктам.

Удобно, когда категорий верхнего уровня получается 7 +/- 2.

Screenshot 2025-02-07 at 22.33.24.png
Категории отзывов

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

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

Screenshot 2025-02-07 at 22.38.59.png
Promoters, passives, detractors по категориям

Видно, что хотя пользователи в целом довольны продуктом и сервисом, к работе сайта есть вопросы.

Динамика отзывов по категории каждый месяц

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

Screenshot 2025-02-07 at 22.40.46.png
Динамика отзывов по категории

Метрики по конкретной категории

Динамика положительных, отрицательных и нейтральных отзывов по категории

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

Screenshot 2025-02-07 at 22.47.01.png
Screenshot 2025-02-07 at 22.47.01.png

Ого, что-то случилось в ноябре – мы видим пик отрицательных отзывов по сайту. Что не нравится пользователям?

Основные темы

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

Теперь выгружаем все отзывы по категории Website, загружаем их в GPT и просим проанализировать и найти основные темы.

Смотрим на ответ GPT, редактируем и фиксируем конкретный список типичных тем для каждой категории.

Наш анализ принес тему “Issues with the New Site” с самым большим количеством негативных комментариев, очень интересно!

Screenshot 2025-02-07 at 22.59.34.png
Основные темы отзывов по категории Website

Динамика отзывов по темам по месяцам

Теперь мы знаем, что произошло. В ноябре был релиз новой версии сайта, и люди стали массово писать о проблемах!

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

Screenshot 2025-02-08 at 20.34.23.png
Динамика по темам

Автоматическая сводка по всем отзывам за неделю

Итак, мы поняли, что обновление сайта людям не очень понравилось. Но в чем конкретно дело?

Мы можем собрать все отзывы категории Website за неделю и попросить GPT подготовить краткую сводку. Эти сводки будем автоматически готовить раз в неделю и сохранять в базу, чтобы вывести на дашборд.

На мой взгляд, виджет с автоматической сводкой – это самый полезный виджет на нашем дашборде, потому что позволяет не только посмотреть на цифры, но и прочитать executive summary того, что пользователи писали в течение недели. Как будто ваш стажер наконец подготовил внятный отчет.

Также оставим возможность посмотреть исходный текст отзывов. Для этого все отзывы переведем на один язык (в нашем случае – на английский).

Screenshot 2025-02-08 at 14.37.31.png
Сводка за неделю

2. Как это работает

Формат данных

Все наши отчеты мы строим по данным такого формата:

Таблица с отзывами

Таблица с Summary

Что делает GPT

Для того, чтобы получить значения review_text_translated, sentiment, category, topic и summary воспользуемся помощью GPT.

Для этого нам понадобится несколько промптов:

  • промпт для перевода текста;

  • промпт для выявления тональности;

  • промпт для выявления категории;

  • промпт для выявления тематики отзыва по каждой категории.

(Можно попробовать получить все ответы одним промптом, но это добавляет ошибок).

Также нам понадобится промпт, который делает summary из текстов отзывов за неделю.

AI-оркестратор

Для того, чтобы собрать пайплайн обработки одного отзыва с помощью GPT мы воспользовались AI-оркестратором – сервисом, который позволяет в визуальном интерфейсе собрать и протестировать цепочку промптов. Мы использовали внутренний инструмент, но можно было бы воспользоваться n8n или Langflow.

AI-оркестратор позволяет настроить логику обработки текстов в визуальном интерфейсе без программирования и реализует API-endpoint, к которому можно обратиться программно.

Untitled - Frame 1 (2).jpg

Автоматизация

AI-оркестратор работает как API. С помощью Python мы:

  • подаем на вход отзыв;

  • получаем всю мета-информацию по отзыву;

  • записываем эту информацию в базу данных.

Скрипт запускается ежедневно для обработки новых отзывов.

Готово.

Результаты

Благодаря такой визуализации:

  1. Выявляем основные проблемы, с которыми сталкиваются пользователи, и фокусируем усилия на их решении.

  2. Реагируем оперативно на обратную связь пользователей.

  3. Связываемся с недовольными пользователями, чтобы устранить их проблемы.

  4. С отзывами могут работать пользователи из разных команд и направлений - для них это удобный инструмент отслеживания только своего домена по выделенной категории (например, продуктовый каталог или техническая поддержка).

Заключение

Анализ фидбека – это возможность реально улучшить продукт. С автоматизацией всё становится быстрее, проще и понятнее.

Если вы сталкиваетесь с трудностями в обработке отзывов, возможно, наш подход поможет вам сделать процесс более эффективным и сфокусированным на реальных потребностях ваших клиентов.

За идею и реализацию спасибо Евгении Новосилецкой, аналитику агентства Эпоха Восемь[ссылка удалена мод.].

Другие статьи Жени:

Комментарии (13)


  1. CloseToAlgotrading
    10.02.2025 12:03

    Вопрос. А не теряется ли тональность при переводе?


    1. Epoch8 Автор
      10.02.2025 12:03

      Хорошее замечание! Тональность действительно может меняться при переводе. В статье я рассматривала общий принцип, но комментарий отлично дополняет тему, в сложных случаях действительно надо учитывать такие нюансы)


    1. vikarti
      10.02.2025 12:03

      Вот кстати да.

      Вот у нас комментарий вида - 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 комментарий?

      А если пост на банки ру - благодарит банк за поддержку трансгендеров в это непростое время не смотря на законы России в этом плане (и в тексте - пользователь благодарит банк за совершенно нормальное отншение к ситуации когда их клиент о котором банк знает что это Василиса Прекрасная и по голосу - женщина внезапно говорит что оно - Павел Гераскин с мужским голосом)?


      1. Epoch8 Автор
        10.02.2025 12:03

        positive / negative / neutral / дебри многоуровневого троллинга


  1. Tomasina
    10.02.2025 12:03

    где респонденты ставят оценку от 0 до 10.

    Это слишком длинный диапазон, поэтому будут большие скачки влево-вправо при оценивании.

    Максимум 5 пунктов, оптимально 3-4.


    1. Epoch8 Автор
      10.02.2025 12:03

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


  1. PetkaKH
    10.02.2025 12:03

    А не проще ли, работать с отзывами на языке оригинала, а потом уже делать манипуляции. Заодно и срез по языковой группе, что в некоторых случаях может быть даже интересно.


    1. Epoch8 Автор
      10.02.2025 12:03

      Теоретически да, просто ответ LLMки на языке оригинала тяжелее проверять. Например вот такой отзыв если ты не знаешь испанского – он какой тональности?
      "¡Tienen una comida brutal, de chuparse los dedos! Por las noches caemos seguido en su restaurante."


      1. PetkaKH
        10.02.2025 12:03

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


  1. KonstantinTokar
    10.02.2025 12:03

    Интересно, вы фильтруете фейковые отзывы? При большом количестве, возможно, есть какие то особенности в них.


    1. Epoch8 Автор
      10.02.2025 12:03

      ух, фильтрация фейков – это отдельная задача, там надо не только на текст смотреть, но и на время публикации, мб IP отправителя, возраст аккаунта и кучу еще всего. У нас было пару таких подходов, но это отдельная большая тема


  1. vikarti
    10.02.2025 12:03

    Связываемся с недовольными пользователями, чтобы устранить их проблемы.

    Примерно как Ростелеком на все посты с просьбой написать в ВК им? Или как большинство банков на банки ру/vc и прочих пикабу у кого "а это не мы были а с чего вы решили что мы - нам пофиг"(притом что записи даже есть что таки они)/"у нас все по закону"(а то что получается бред, часто еще и игнорирующий законы - ну и что).

    Хуже только типа-интеллектуальные чатботы которые сначала доведут человека ответами НЕ по теме, а потом или оператор удивляется почему его только что не матом или уже этому удивляется сотрудник в офисе.


    1. Epoch8 Автор
      10.02.2025 12:03

      "напишите нам в личку, и мы проигнорируем" :)