Проект для автоматического анализа эмоциональной окраски текстовых сообщений из 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 # Исходный файл переписки (пример)
python Preprocessing.pyПреобразует сырой JSON-файл переписки в очищенный формат, удаляя служебные сообщения и извлекая текстовый контент.
python Analytics.pyЗапускает процесс классификации эмоций для каждого сообщения с использованием модели cointegrated/rubert-tiny2-cedr-emotion-detection.
Определяемые эмоции:
- 😊 Радость
- 😐 Нейтральное
- 😢 Грусть
- 😠 Злость
- 😨 Страх
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-файл переписки в соответствующем формате.