Анализ эмоциональной окраски текстов на основе датасета GoEmotions
Мясоедова Ю. В.
Аннотация: Статья посвящена анализу эмоциональной окраски текстов с использованием датасета GoEmotions, созданного Google Research в 2020 году. Дается обзор структуры датасета, включающего 58 тысяч комментариев с Reddit, аннотированных по 27 эмоциональным категориям и нейтральному классу. Описывается применение Python-библиотек и фреймворка Streamlit для обработки данных, визуализации результатов и создания интерактивного интерфейса. Особое внимание уделяется анализу частотности эмоций и выявлению соэмоциональных связей через построение матрицы совместной встречаемости. Результаты демонстрируют устойчивые паттерны сочетаемости эмоций, такие как восхищение и благодарность или раздражение и неодобрение, что подчеркивает практическую ценность датасета для задач NLP, включая разработку чат-ботов и модерацию контента.
Ключевые слова: GoEmotions, анализ эмоций, обработка естественного языка, машинное обучение, соэмоциональность, частотность эмоций, тепловая карта, Streamlit, Python, датасет Reddit.
Анализ эмоциональной окраски текстов играет ключевую роль в обработке естественного языка (NLP), позволяя выявлять скрытые паттерны в коммуникации и адаптировать ИИ-системы к человеческим эмоциям. В данной статье рассматривается применение датасета GoEmotions для классификации и исследования эмоций в текстах. Особое внимание уделяется анализу частотности эмоциональных меток и выявлению соэмоциональных связей с помощью методов машинного обучения.
Датасет GoEmotions – это крупный и тщательно аннотированный набор данных, для анализа эмоционального текста, созданный Google Research в 2020 году. Он предназначен для обучения ИИ-моделей распознаванию и классификации эмоций в коротких текстах.
Этот датасет используется для разработки более чувствительных чат-ботов, систем модерации контента, улучшения качества обслуживания клиентов и других приложений, где понимание эмоционального состояния пользователя имеет решающее значение.
Он содержит более 58 тысяч комментариев, извлеченных с платформы Reddit. Каждый комментарий был вручную аннотирован человеком для одной или нескольких из 27 различных категорий эмоций, а также категории «нейтральный». Это отличает его от многих других датасетов, которые обычно фокусируются на небольшом количестве базовых эмоций.
Основная цель GoEmotions – предоставить обширный и разнообразный набор данных для обучения моделей машинного обучения (особенно нейронных сетей) для глубокого анализа тональности и эмоций в текстах.
Для выполнения анализа эмоциональной окраски текстовых сообщений используется комплекс специализированных библиотек языка программирования Python. Данный подход охватывает полный цикл обработки данных, включая подготовку текстовых корпусов, реализацию алгоритмов машинного обучения и визуализацию результатов.
Для обеспечения интерактивности и удобства взаимодействия с системой анализа применяется фреймворк Streamlit. Этот инструмент предоставляет эффективные средства для быстрого прототипирования и развертывания веб-приложений на базе Python. Интеграция Streamlit позволяет создать интуитивно понятный графический интерфейс, что облегчает процесс демонстрации функционала и использования модели анализа эмоциональной окраски для неспециалистов.
Загрузка данных осуществляется посредством метода load_dataset, который обеспечивает автоматизированное получение текстового контента и присвоенных ему эмоциональных меток. На данном этапе, как правило, загружается обучающая выборка датасета, предназначенная для калибровки и валидации моделей машинного обучения.
Для анализа частотности эмоций в датасете GoEmotions используется счётчик, который последовательно обрабатывает все текстовые записи, подсчитывая количество упоминаний каждой эмоциональной метки.
График частотности эмоций представлен на рисунке 1.
Рисунок 1 – График частотности эмоций
На данном графике демонстрируется распределение эмоциональных категорий в исследуемом датасете. Наиболее частотной категорией является neutral (нейтральная). Среди выраженных эмоций лидируют admiration (восхищение) и approval (одобрение), за которыми следуют gratitude (благодарность) и annoyance (раздражение), а также amusement (веселье) и curiosity (любопытство). Менее частотными, но все же присутствующими, являются эмоции love (любовь), optimism (оптимизм), disapproval (неодобрение), anger (гнев) и joy (радость). Наименее представленными в датасете являются такие эмоции, как grief (горе), pride (гордость), relief (облегчение) и embarrassment (смущение), что указывает на их сравнительно редкое выражение в анализируемых текстовых сообщениях.
Соэмоциональность – это устойчивые эмоциональные сочетания, которые систематически возникают вместе в определённых ситуациях или коммуникативных контекстах.
Для выявления соэмоциональных связей между эмоциями строится матрица, фиксирующая частоту совместного употребления эмоциональных маркеров в текстах. Алгоритм последовательно анализирует каждое сообщение: при обнаружении сочетания разных эмоций соответствующий элемент матрицы инкрементируется. Полученные данные структурируются в таблицу с упорядоченными по стандартному перечню эмоций строками и столбцами, что обеспечивает наглядность анализа эмоциональных корреляций.
Матрица соэмоциональности представлена на рисунке 2.
Рисунок 2 – Матрица соэмоциональности
Представленная тепловая карта демонстрирует частоту совместного употребления различных эмоциональных маркеров в текстовых сообщениях датасета GoEmotions.
Анализ матрицы выявляет наличие выраженных соэмоциональных связей между логически ассоциированными парами эмоций. Наиболее заметные кластеры совместной встречаемости наблюдаются между: gratitude (благодарность) и admiration (восхищение), annoyance (раздражение) и disapproval (неодобрение), curiosity (любопытство) и surprise (удивление).
Менее интенсивные, но значимые корреляции также прослеживаются между amusement (веселье) и joy (радость), а также nervousness (нервозность) и fear (страх). Большинство остальных эмоциональных пар демонстрируют низкую частоту совместного появления, что указывает на тенденцию к выражению этих эмоций в относительно изолированном контексте или в менее выраженных комбинациях.
Таким образом, GoEmotions – это важный ресурс в области обработки естественного языка (NLP) для исследований и разработки в области распознавания эмоций по тексту. Исследование выявило ключевые тенденции: доминирование нейтральных эмоций, частотные сочетания, а также редкие, но значимые корреляции. Использование современных методов машинного обучения в сочетании с интерактивной визуализацией через Streamlit открывает новые возможности для практического применения этих данных.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.