УДК 004.04

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

Сизова Юлия Андреевна – магистрант Московского политехнического университета

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

Ключевые слова: машинное обучение, анализ настроений, отзывы, текстовые данные, ресторан, классификация. 

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

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

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

  • анализ имеющихся данных и отбор необходимых признаков;
  • очистка данных;
  • определение представления текстовых данных;
  • выбор метода машинного обучение и разделение на обучающую и тестовую выборки;
  • обучение модели;
  • проверка точности модели и возможная корректировка параметров.

Для начала изучим имеющийся набор данных. Данные отзывов о ресторанах собраны из нескольких источников, и имеют атрибуты: идентификатор отзыва, текст отзыва и, либо общую оценку, либо три оценки – за еду, интерьер и сервис. При этом, у некоторых отзывов, имеющих оценки по категориям, могут отсутствовать оценки в каких-нибудь категориях. Посмотрим, что представляют из себя данные, визуализировав несколько строк (рисунок 1):

image001

Рисунок 1. Данные отзывов о ресторанах.

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

Проанализировав текст отзывов, было принято решение убрать отзывы со средней оценкой из нашей выборки, в рамках рассматриваемой задачи. Теперь любой отзыв в своем контексте содержит положительный или отрицательный эмоциональный окрас. Далее добавляем столбец для обозначения класса настроения отзыва (class_label), который имеет значения 1 или 0, и оставляем только необходимые для дальнейшего обучения признаки – text и class_label.

На втором шаге произведем очистку текстовых данных. В очистку текста входит:

  1. Удаление всех нерелевантных символов и конструкций. Удалим знаки препинания, числа – они не сильно помогают в определении настроения высказывания при обработке данного текста, они просто увеличат размер набора слов, который мы создадим на последнем шаге, и снизят эффективность алгоритма. Также удалим такие конструкции как упомонания URL, формы с обозначением цен блюд, года, где после цифр сразу пишут букву, а также даты.
  2. Перевод каждого слова в его нижний регистр.
  3. Токенизация текста – разделение его на отдельные слова.
  4. Лемматизация, то есть сведение различных форм одного слова к словарной форме. Работает при помощи словарей, производя морфологический анализ слов [2].
  5. Удаление стоп-слов – слов, которые используются в человеческой речи, но не несут никакой смысловой нагрузки и бесполезны при машинной обработке.

На втором этапе мы просто формируем список слов, который можем потом использовать для построения модели.

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

Воспользуемся подходом Word2vec. Этот подход изучает значение слова, обучаясь на прочтении огромного количества текста, и запоминая, какое слово возникает в схожих контекстах. На выходе получаем словарь, в котором слова со схожим значением располагаются ближе друг к другу [4].

Была обучена модель Word2vec с размером векторного представления слова 300. После обучения модели, можем посмотреть результаты векторного представления слов на плоскости [1], только предварительно уменьшим размерность векторов до 2. Рассмотрим, например, как далеко располагается слово «понравиться» и слова «еда», «восторг», «корпоратив», «плохо» на рисунке 2.

image002

Рисунок 2. Представление слов на системе координат относительно «понравиться».

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

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

 image003

Рисунок 3. Представление слов на системе координат относительно «ужасный».

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

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

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

Для решения задачи классификации текстовых данных по степени эмоционального окраска или настроения, которую мы рассматриваем в работе, существует множество методов машинного обучения. К наиболее подходящим относятся методы: логистическая регрессия, многослойный перцептрон, случайный лес, наивный байесовский метод, метод К-ближайших соседей, дерево решений, стохастический градиентный спуск [5].

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

При использовании алгоритма машинного обучения «случайный лес» для классификации материалов, важно обеспечить равное количество материалов в каждом классе на этапе обучения модели классификатора, так как это существенным образом влияет на качество результата его работы [3]. Поэтому, перед разделением набора данных на обучающую и тестовую выборки, нормализуем его по количеству содержащихся положительных и отрицательных отзывов. Далее разделим получившийся набор на обучающий и тестовый в соотношении 80/20.

Так как некоторые слова могут иметь большее значение для распределения текста в ту или иную категорию, используем метод TF-IDF (Term Frequency – Inverse Document Frequency) для решения этой проблемы. Техника TF-IDF используется для извлечения признаков и для определения терминов, которые неоднократно встречаются в тексте. Полученная функция отражает силу слова в документе.

После, вычислим «среднее» для каждого отзыва. Для каждого слова, определенного с помощью модели Word2Vec, умножаем их на их значение в «словаре» TF-IDF, и после обработки всех слов отзыва делим на количество наблюдений. Применим эти преобразования к входным данным для модели случайного леса.

Создаем модель случайного леса с 501 деревом и критерием «энтропия», и обучаем её на данных обучающей выборки. Далее спрогнозируем результаты тестового набора.

На последнем шаге, оценим точность модели. Построим матрицу ошибок, которая сравнивает предсказания, сделанные нашей моделью, с реальными метками (рисунок 4).

image004

Рисунок 4. Матрица ошибок.

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

Точность (precision) с применением случайного леса составляет 87,9%. Рассчитанные дополнительные показатели оценки – достоверность предсказаний (accuracy), полнота (recall) и F-оценка также составили 87,9%. Полученный результат является очень хорошим.  Однако, при использовании данной модели в дальнейшем, точность может несколько измениться, так как в текстах отзывов могут быть новые слова, не отраженные в векторном пространстве, хоть модель Word2Vec и улавливает семантическое значение слов.

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

Список литературы

  1. Natural Language Processing Classification Using Deep Learning And Word2Vec // Medium URL: https://towardsdatascience.com/natural-language-processing-classification-using-deep-learning-and-word2vec-50cbadd3bd6a (дата обращения: 30.03.2023).
  2. Большакова Е.И., Воронцов К.В., Ефремова Н.Э., Клышинский Э.С., Лукашевич Н.В., Сапин А.С. Автоматическая обработка текстов на естественном языке и анализ данных. – М.: Изд-во НИУ ВШЭ, 2017. –269 с.
  3. Веретенников И.С., Карташев Е.А., Царегородцев А.Л. Оценка качества классификации текстовых материалов с использованием алгоритма машинного обучения «случайный лес» // Известия Алтайского государственного университета. – 2017. – № 4 (96). – С. 78-83.
  4. Ганегедара Т. Обработка естественного языка с TensorFlow. – М.: ДМК Пресс, 2020. – 382 с.
  5. Плешакова Е.С., Гатауллин С.Т., Осипов А.В., Романова Е.В., Самбуров Н.С. – Эффективная классификация текстов на естественном языке и определение тональности речи с использованием выбранных методов машинного обучения // Вопросы безопасности. – 2022. – № 4. – С. 1-14. DOI: 10.25136/2409-7543.2022.4.38658 EDN: UPWMCV URL: https://nbpublish.com/library_read_article.php?id=38658 (дата обращения: 30.03.2023).

Интересная статья? Поделись ей с другими: