Введение

Мы живем в мире, который более самоуверен, чем когда-либо. Любая услуга, которую мы потребляем, оставляет нас либо удовлетворенными, либо неудовлетворенными. А с появлением социальных сетей мы в кратчайшие сроки обнародуем наши взгляды. Доступны обширные источники данных в виде обзоров, опросов об удовлетворенности клиентов, жалоб клиентов и т. Д. Компании могут использовать эти данные, чтобы понять, о чем говорят клиенты, и принимать решения на основе данных для улучшения своих услуг.

А теперь поговорим о машинном обучении!

Анализ настроений - это процесс понимания того, насколько довольны покупатели. сервис. Уровень удовлетворенности обычно измеряется по трем классам (положительный, отрицательный или нейтральный). Хотя количество занятий могло быть разным. Когда мы пометили данные, мы можем использовать множество классификационных моделей машинного обучения и глубокого обучения. Однако, если помеченные данные недоступны, нам придется вернуться к методам, основанным на лексике. Есть еще немало способов провести анализ настроений без учителя, однако этот пост будет охватывать только контролируемые методы.

УТП этого сообщения - Аспектно-ориентированный анализ настроений (ABSA). Это наиболее практичная форма анализа настроений, поскольку в реальных данных клиенты говорят о нескольких аспектах услуги, и мнения могут быть разными для каждого аспекта.

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

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

Создание данных

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

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

Обратите внимание, что некоторые ячейки оставлены пустыми. Это говорит о том, что в обзоре не говорится об этом аспекте.

Очистка текста

Самый важный шаг в любой задаче НЛП - это предварительная обработка текста. Это может включать:

  • Нижний регистр
  • Удалить символы, отличные от ASCII
  • Удалить знаки препинания
  • Удалите лишние строки и пробелы
  • Удалить стоп-слова
  • Стемминг
  • Базовая коррекция заклинаний
  • Коррекция сленга
  • и т.п.

Пакеты Python, такие как nltk и spacy, могут использоваться для большинства шагов. Для исправления орфографии более простой подход - использовать словарь орфографических ошибок с соответствующими исправлениями. Еще один аспект предварительной обработки - это смайлы и смайлы. Для любой другой задачи НЛП смайлы могут не понадобиться. Однако для анализа настроений они играют жизненно важную роль. Пакет emot в Python - хороший выбор для обнаружения, удаления или замены смайлика / смайлика зарезервированным токеном.

Модель

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

Архитектура модели выглядит примерно так:

В модели я сначала передаю токенизированные входные данные через слой внедрения, а затем двунаправленный LSTM. После этого я делаю в своей модели 4 ветви, по одной для каждого аспекта. У каждой ветви есть слой самовнимания, который придает больший вес словам, описывающим данный аспект. Вы также можете попробовать без слоя самовнимания. Но мои эксперименты показали, что локализованное использование внимания для каждого аспекта помогло модели изучить шаблоны и диаграммы, написанные для каждого аспекта. Здесь я использовал простой скалярный продукт внимания. Это можно заменить многими изощренными методами внимания (о которых я расскажу в своих следующих статьях!)
Затем мы добавим 2–3 полностью связанных плотных слоя. Выходные данные каждой ветви преобразуются с помощью softmax по 4 классам; положительный, отрицательный, нейтральный и отсутствующий.

Хотя для аспектно-ориентированного анализа тональности может быть гораздо больше моделей, я считаю эту архитектуру простой, но эффективной. Это не только устраняет необходимость в нескольких моделях для каждого аспекта, но также совместно тренирует присутствие / отсутствие аспекта вместе с его настроением.

Заключение

Анализ настроений - одно из наиболее широко используемых приложений НЛП. Он использует данные, существующие в огромных количествах на публичных платформах. И предоставляет предприятиям полезную информацию, помогая им улучшать свои услуги и, в свою очередь, повышать уровень удовлетворенности клиентов. Анализ настроений на основе аспектов - это шаг вперед по сравнению с традиционным анализом настроений. Такие модели, как BERT, оказались очень эффективными для анализа настроений. Однако практическое применение научило меня, что более простые модели могут дать достойную производительность при гораздо меньших вычислительных требованиях и времени обучения. Более того, при работе с языками, отличными от английского, довольно сложно найти хороших предварительно обученных моделей!

Я энтузиаст НЛП и работаю в этой индустрии уже более 6 лет. Однако мое путешествие в блог только началось. Поддержите, хлопнув в ладоши по этому сообщению. Будущие сообщения будут включать такие темы, как механизмы внимания от Bahdanau до Multi-Head и самовнимание; токенизаторы, языковые модели, модели Seq2Seq и т. д. (будем надеяться, что список будет бесконечным…)

Ваше здоровье!

Эрам