Методы анализа текстовых данных пользовательских обращений. llm-модели.. llm-модели. классификация текста.. llm-модели. классификация текста. семантическая разметка.
Методы анализа текстовых данных пользовательских обращений - 1

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

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

Хотя процент уникальных обращений на линию поддержки с проблемой от рекламы затрагивает менее 0,2% от MAU, учитывая масштаб активной базы пользователей, на ежемесячной основе мы получаем порядка 20 тысяч сообщений о проблемах, связанных с рекламными уведомлениями.

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

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

Частотный анализ слов

С точки зрения технической реализации самый простой способ — это анализ частотности употребления отдельных слов в текстах обращений. Такая методика не позволяет провести семантический анализ или оценить тональность текста, однако благодаря этому способу можно быстро определить верхнеуровневые проблемы (в контексте отказа от рекламы) относительно простым алгоритмом на Python. При необходимости можно также оценить содержание обращений с часто употребимыми словами. 

Очевидный недостаток метода — пренебрежение контекстом употребления. Но в случае работы только с негативными обращениями эта проблема нивелируется спецификой тематик обращений. 

Этапы применения частотного анализа слов:

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

  1. Токенизация текста — разбиение на составные части (токены). В контексте нашей задачи один токен равен одному слову.

  1. Удаление базовых шумовых слов. К таким относятся часто употребимые, но не имеющие ценности с точки зрения аналитического вывода слова. Например, союзы, частицы и так далее. Еще в этом пункте следует объединить однокоренные слова среди самых высокочастотных.

  2. Подсчет статистики и анализ полученного распределения. В случае необходимости — возвращение к удалению шумовых слов и повторение процесса качественного извлечения целевых слов.

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

Пример кода реализации:

# Предположим, есть df с колонкой rej_reason — в которой построчно содержатся причины отказов
# Сделаем единый текст из всех строк DataFrame при помощи конкатенации строк .cat() на выходе str
text_1 = df.rej_reason.str.cat(sep=' ')

# Переведем весь текст в нижний регистр
text_2 = text_1.lower()

# Стандартный набор символов для удаления из текста
import string
spec_chars = string.punctuation
print(spec_chars)

# Для удаления символов используем поэлементную обработку текста: к пустой строке добавляем символы из text_2 при условии, что они не входят в набор spec_chars: цифры не удаляются
# На выходе текст без символов
text_3 = "".join([ch for ch in text_2 if ch not in spec_chars])

# Промежуточно можем посмотреть на первые 1000 символов
text_3[:1000]
# Можно также объявить простую функцию, которая удаляет указанный набор символов из исходного текста:
def remove_chars_from_text(text, chars):
	return " ".join([ch for ch in text if ch not in chars])

# Разбиваем текст на слова — токены. Для этого можно использовать готовый метод библиотеки NLTK:
import nltk
from nltk import word_tokenize
nltk.download('punkt_tab')
# Получение отдельных токенов (слов):
text_tokens = word_tokenize(text_3)

# Для применения инструментов частотного анализа библиотеки NLTK необходимо преобразовать список токенов к классу Text, который входит в эту библиотеку:
text_all = nltk.Text(text_tokens)

# Библиотека NLTK содержит готовые списки стоп-слов для различных языков. Получим список стоп-слов для русского языка:
import nltk
from nltk.corpus import stopwords
nltk.download('stopwords')
russian_stopwords = stopwords.words("russian")

# Список стоп-слов может быть расширен с помощью стандартного метода extend:
russian_stopwords.extend(['это', 'нею'])

# Очищаем текст:
text_clear = [word for word in text_all if word not in russian_stopwords]

# Для подсчета статистики распределения частот слов в тексте применяется класс FreqDist (frequency distributions):
from nltk.probability import FreqDist
fdist = FreqDist(text_clear)
fdist.plot(30,cumulative=False)

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

Пример распределения закона Ципфа и отхождение от теоретического распределения после обработки слов — распределение частот топ-21 слова

Пример распределения закона Ципфа и отхождение от теоретического распределения после обработки слов — распределение частот топ-21 слова

Исходя из полученного распределения (топ-21 слово), можем сделать следующие выводы:

1. В большей степени негатив клиентов происходит из-за нерелевантных звонков. Потом по убыванию идут СМС-уведомления, email- и баннерные рассылки, замыкают топ упоминаемых каналов пуш-уведомления.

2. В контексте отдельных продуктов основное упоминание приходится на кредитные продукты.

3. Иные причины: мешают взаимодействию, слова «день» и «каждый» в контексте негативных обращений означают излишнюю частотность коммуникаций.

Кластерный анализ обращений

В основе кластерного анализа лежат методы поиска ближайших соседей. Этапы применения подхода в нашем случае выглядели так:

  1. Разметка обращений по упоминаниям отдельных банковских продуктов до уровня бизнес-направления с помощью регулярных выражений. В нашем случае — 14 с учетом группы отсутствия упоминания конкретного продукта. В общем случае группировка может основываться на направлениях работы продуктовых команд или иной логике разбиения по существующим бизнес-направлениям. Далее по каждому выделенному направлению.

  1. Эмбеддинг текста — векторное представление с помощью модели BERT.

  1. Применение UMAP для снижения размерности данных, а для кластеризации текста — алгоритма HDBSCAN.

  1. Выбор оптимального числа кластеров методами локтя и силуэтного анализа.

  1. Определение полученных тем с помощью T-Pro. 

  1. Построение дашборда на основе полученных кластеров в Apache Superset.

Точность разметки регулярными выражениями проверялась вручную на выборочных данных для каждой бизнес-темы и составила по метрике среднего Accuracy 92%. 

Методы кластеризации определяют отдельные группы, но не дают описания выделенных кластеров. Поэтому для определения тем полученных групп применялся T-Pro. Такая современная технология позволяет также проводить семантический и лингвистический анализ текста, а также оценить его тональность.

Распределение абсолютного числа обращений по бизнес-темам по месяцам

Распределение абсолютного числа обращений по бизнес-темам по месяцам

Полученные данные легко анализировать в разрезе выбранного временного периода. Первый этап позволил сразу же определить характерную особенность негативных обращений: от 60 до 80% обращений происходят без конкретизации причины отказов.

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

Распределение итоговых тем и облако тегов по итогам кластеризации

Распределение итоговых тем и облако тегов по итогам кластеризации

Основные проблемы рекламы связаны:

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

2. Проблемами таргетинга. В результате этого могут быть предложены продукты, недоступные в регионе нахождения клиента.

3. Чувствительными возрастными группами. Пользователи с детьми выражают беспокойство ввиду возможного случайного оформления банковских продуктов детьми. Аналогичная проблема существует и с группой пользователей пожилого возраста.;

4. Ошибочной временной зоной. Малая часть коммуникаций может прийти в ночное время, что вызывает беспокойство клиентов.

5. Излишней частотой коммуникаций.

6. Промотированием спецпредложений, акций, игр и других неклассических банковских активностей.

7. Отдельными маркетинговыми стратегиями, упоминание которых выходит на уровень масштаба общих проблематик.

Последний пункт особенно полезен в контексте анализа отдельных маркетинговых промо и А/Б-тестов. Такой анализ предоставляет возможность получить обратную связь от пользователей, получивших маркетинговые уведомления конкретного А/Б-теста. Это позволяет сделать выводы о причинах возникновения дополнительных отказов от рекламы (в сравнении с контрольной группой).

Выводы

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

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

Автор: ALinML

Источник

Рейтинг@Mail.ru
Rambler's Top100