Sentiment Analysis
Анализ тональности определяет, выражает ли текст положительное, отрицательное или нейтральное мнение. Рассматриваются словарные методы и методы на основе Transformer, аспекты и смещения.
Анализ тональности, также называемый анализом мнений, — это задача обработки естественного языка (NLP), которая определяет позицию, выраженную в тексте. Обычно она обозначается как положительная, отрицательная или нейтральная, а иногда — как оценка, рейтинг в звёздах или эмоция, например гнев или радость. Компании анализируют отзывы о продуктах, обращения в поддержку, ответы на опросы и публикации в социальных сетях, чтобы понять отношение клиентов к продукту или бренду по большему объёму текста, чем может прочитать любая команда; чат-боты поддержки используют чат-боты, чтобы в первую очередь передавать разгневанных клиентов сотруднику.
Уровни анализа#
При анализе на уровне документа всему отзыву присваивается одна метка, а при анализе на уровне предложения метку получает каждое предложение. Аспектный анализ тональности (ABSA) идёт дальше и определяет мнение о каждой упомянутой в тексте характеристике: «Экран великолепный, но батареи едва хватает до обеда» — положительная оценка экрана и отрицательная оценка батареи. Совместная задача SemEval-2014 по ABSA стандартизировала этот подход на отзывах о ноутбуках и ресторанах; извлечение аспектов пересекается с распознаванием именованных сущностей (NER), поскольку обе задачи находят объекты, о которых говорится в предложении.
От словарей к трансформерам#
Методы на основе словарей подсчитывают слова из словаря тональности — списка слов с положительными или отрицательными оценками — и добавляют правила для отрицаний («не хорошо») и усилителей («очень хорошо»). В своём неконтролируемом методе 2002 года Питер Тёрни оценивал фразы по тому, как часто они встречались в интернете рядом со словами «отлично» или «плохо», а VADER (2014) настроил словарь и правила для социальных сетей, включая эмотиконы, заглавные буквы и восклицательные знаки. Также в 2002 году Бо Панг, Лиллиан Ли и Шивакумар Вайтьянатхан обучили классификаторы наивного байесовского алгоритма, максимальной энтропии и метода опорных векторов (SVM) на отзывах о фильмах. Они выяснили, что эти классификаторы превосходят созданные людьми списки ключевых слов, но хуже справляются с определением тональности, чем с классификацией тем.
В наборе данных Stanford Sentiment Treebank (2013) были размечены 215 154 фразы из 11 855 предложений отзывов о фильмах, чтобы модели могли научиться тому, как слова «не» и «но» меняют тональность последующего текста; его бинарная версия SST-2 вошла в бенчмарк GLUE. Сегодня большинство классификаторов дообучают на размеченных примерах предварительно обученный трансформер, например BERT, и преобразуют оценки на выходе в вероятности классов с помощью softmax. DistilBERT, дообученный на SST-2, достигает точности 91,3% на проверочной выборке:
from transformers import pipeline
# DistilBERT fine-tuned on the Stanford Sentiment Treebank (SST-2)
classifier = pipeline("sentiment-analysis", model="distilbert/distilbert-base-uncased-finetuned-sst-2-english")
reviews = [
"The battery life is not bad at all.",
"Oh great, it crashed again five minutes after the update.",
"The screen is gorgeous, but the battery barely lasts a morning.",
]
for review, result in zip(reviews, classifier(reviews)):
print(f"{result['label']:<8} {result['score']:.3f} {review}")Классификатор определяет фразу «совсем неплохо» как положительную (0,997), а саркастический отзыв «О, здорово» — как отрицательный (0,998). В третьем отзыве хвалят экран и критикуют батарею, но модель уровня документа может вернуть только одну метку: отрицательную, с оценкой 0,966; похвала при этом теряется. Большие языковые модели (LLM) тоже определяют тональность без примеров, используя запрос, и могут возвращать по одной метке для каждого аспекта, но стоимость обработки одного отзыва у них гораздо выше, чем у классификатора с 66 миллионами параметров.
Мультимодальная тональность#
Люди выражают мнение не только словами, но и интонацией и выражением лица; сарказм часто можно определить только по интонации. В CMU-MOSEI (2018), крупнейшем на момент выпуска наборе данных для этой задачи, размечена тональность 23 453 видеофрагментов с участием 1000 человек, а модели мультимодального обучения объединяют расшифровку речи, аудио и изображение лица говорящего, чтобы её предсказывать. Эта цель также связана с аффективными вычислениями. Анализ канала лица — это задача классификации изображений: классификационная модель Ultralytics YOLO26, обученная на обрезанных изображениях лиц, разложенных по папкам в соответствии с выражением лица, возвращает вероятность каждого выражения в result.probs — такой же тип выходных данных softmax, как у описанного выше классификатора текста.
Сложности#
С сарказмом, иронией и сравнениями («лучше старого, что само по себе о многом говорит») по-прежнему трудно работать. Значение слов, выражающих тональность, зависит от предметной области: «непредсказуемый» — похвала сюжету фильма, но критика рулевого управления автомобиля. Поэтому без новых обучающих данных точность модели, обученной на отзывах о фильмах, падает при анализе отзывов о товарах. Модели также наследуют смещения из данных. В 2018 году Светлана Кириченко и Саиф Мохаммад проверили 219 систем анализа тональности на предложениях, различавшихся только именем или словами с указанием пола, например «он» или «она», и обнаружили, что некоторые системы стабильно выдавали более высокие или низкие оценки в зависимости от пола или расы, на которую указывало имя.
Анализ тональности и связанные термины#
- Классификация текста: общая задача присвоения тексту меток, например темы или категории спама. Анализ тональности — это классификация текста с метками, обозначающими мнение.
- Распознавание эмоций: определяет конкретные эмоции по тексту, лицам, голосу или физиологическим сигналам. При анализе тональности мнение обычно сводят к полярности.
- Распознавание именованных сущностей: определяет, о чём говорится в тексте, а ABSA связывает каждое упоминание с выраженным мнением о нём.










