Skip to content

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

Notifications You must be signed in to change notification settings

alksqw/Chat_emotion_analyzer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Анализатор эмоций в переписке

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

📊 Возможности

  • Предобработка данных: очистка и структурирование сырых данных переписки
  • Анализ эмоций: автоматическое определение эмоциональной окраски сообщений с использованием модели ruBERT
  • Визуализация: создание интерактивных графиков и диаграмм для анализа настроения
  • Мультиязычность: поддержка русского языка для классификации эмоций

🛠 Установка и зависимости

pip install transformers torch matplotlib pandas numpy

Требуется Python 3.7+ и следующие библиотеки:

  • transformers - для работы с NLP моделями
  • torch - фреймворк машинного обучения
  • matplotlib - построение графиков
  • pandas - обработка данных
  • numpy - математические операции

📁 Структура проекта

├── Preprocessing.py    # Модуль предобработки данных
├── Analytics.py        # Модуль анализа эмоций
├── Visualization.py    # Модуль визуализации результатов
└── your_file.json      # Исходный файл переписки (пример)

🚀 Использование

1. Предобработка данных

python Preprocessing.py

Преобразует сырой JSON-файл переписки в очищенный формат, удаляя служебные сообщения и извлекая текстовый контент.

2. Анализ эмоций

python Analytics.py

Запускает процесс классификации эмоций для каждого сообщения с использованием модели cointegrated/rubert-tiny2-cedr-emotion-detection.

Определяемые эмоции:

  • 😊 Радость
  • 😐 Нейтральное
  • 😢 Грусть
  • 😠 Злость
  • 😨 Страх

3. Визуализация результатов

python Visualization.py

Генерирует три типа визуализаций:

  • Временная шкала настроения - динамика эмоционального состояния по ходу переписки
  • Круговые диаграммы эмоций - распределение эмоций для каждого участника
  • Сравнительная гистограмма - средний уровень настроения по авторам

📊 Выходные данные

После выполнения анализа создаются следующие файлы:

  • *_cleaned.json - очищенные данные переписки
  • *_emotions.json - результаты анализа эмоций с метаинформацией
  • *_mood_timeline.png - график динамики настроения
  • *_emotion_pie_charts.png - диаграммы распределения эмоций
  • *_mood_comparison.png - сравнение настроений участников

🎯 Особенности

  • Автоматическое определение авторов - система автоматически идентифицирует участников переписки
  • Сглаживание временных рядов - для лучшей визуализации трендов настроения
  • Цветовая кодировка - интуитивно понятная палитра для разных эмоций
  • Детальная статистика - процентное соотношение эмоций и средние показатели настроения
  • Оптимизация производительности - прогресс-бар для отслеживания процесса анализа

💡 Пример использования

# Запуск полного цикла анализа
from Preprocessing import clean_chat_data
from Analytics import analyze_chat_emotions
from Visualization import create_visualizations

# Предобработка -> Анализ -> Визуализация

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


Для работы требуется исходный JSON-файл переписки в соответствующем формате.

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages