https://github.com/itallix/fluffy-carnival
Классификация эмоций в текстах на русском языке
https://github.com/itallix/fluffy-carnival
Last synced: 3 months ago
JSON representation
Классификация эмоций в текстах на русском языке
- Host: GitHub
- URL: https://github.com/itallix/fluffy-carnival
- Owner: itallix
- License: mit
- Created: 2024-12-04T19:25:35.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-12-18T00:21:55.000Z (5 months ago)
- Last Synced: 2024-12-26T22:27:46.974Z (4 months ago)
- Language: Jupyter Notebook
- Size: 18.2 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MIPT Hackathon Winter 2024
## Команда проекта N39
Участник | Роль | Функции |
|----------|------|---------|
| **Кубракова Екатерина** | `Team Lead`, `Data Scientist` | общая координация проекта, EDA, подготовка данных, тестирование базовых архитектур |
| **Дяминова Эльвира** | `Data Scientist`, `ML Engineer` | подбор гиперпараметров, обучение модели классификатора эмоций на базе T5, подготовка презентации |
| **Лилиом Елизавета** | `Data Scientist`, `NLP Engineer` | аугментация данных, тестирование разных подходов к расширению базового набора данных, балансировка классов, тестирование моделей Paraphrasing, оптимизация baseline решения |
| **Карнюшин Виталий** | `MLOps` | развертывание модели, подготовка инфраструктуры для инференса, сравнительный анализ инференс-серверов, оформление репозитория |## Параметры проекта по классификации эмоций
### Основные характеристики
Параметр | Значение |
|----------|-----------|
| **Задача** | Классификация эмоций в текстах |
| **Язык текстов** | Русский |
| **Тип задачи** | Multi-class + Multi-label |
| **Тип модели** | LM (до 1 млрд параметров) |
| **Оцениваемая метрика** | F1-score (weighted) |
| **Количество классов** | 7 (`anger`, `disgust`, `fear`, `joy`, `sadness`, `surprise`, `neutral`) |
| **Домен данных** | Транскрибированные тексты (ASR) |
| **Особенности домена** | Отсутствие пунктуации и капитализации, ошибки транскрибации |
| **Стек технологий** | `pytorch`, `transformers`, `huggingface` |
| **Данные для обучения** | [ссылка](https://disk.yandex.ru/d/awG8jCY01BGcAQ) |### Требования к итоговой работе
1. Ноутбук с решением кейса с помощью технологического стека
2. Презентация + питч
3. [Сабмит на Kaggle](https://www.kaggle.com/competitions/cryptonite-hack-sf)### Ресурсы и материалы
1. [Paper "Emotion Classification in Short English Texts using Deep Learning Techniques"](https://arxiv.org/abs/2402.16034)
2. [Paper "DeepEmotex: Classifying Emotion in Text Messages using Deep Transfer Learning"](https://arxiv.org/abs/2206.06775)
3. [Семинар по классификации текстов с использованием предобученных моделей](https://www.youtube.com/watch?v=uRAsurPHycw)## Исследования
Наши эксперименты находятся в папке [notebooks](https://github.com/itallix/fluffy-carnival/tree/main/notebooks)### Подготовка данных
1. Exploratory Data Analysis (EDA). Лемматизация и токенизация данных, составление облака слов для оценки ключевых и наиболее частотных слов. Оценка распределения слов по классам.
2. Аугментация данных за счет двойного перевода «ru – en – ru». Использовались модели от Helsinki-NLP/opus-mt-...-...
- fear & disgust: 43410 -> 44707
- anger & fear & disgust & sadness & surprise: 43410 -> 50745
3. Поиск новых датасетов и их апробация на baseline модели. В итоге был взят [датасет с твитами](https://www.kaggle.com/datasets/pashupatigupta/emotion-detection-from-text) на английском языке. Для перевода использовалась модель от Helsinki-NLP. Это позволило увеличить тренировочный датасет до 58204.### Модели
На данный момент исследованы эти модели от ai-forever. Результаты каждой из них будут представлены позже.
Модели от ai-forever | Num Parameters | Training Data Volume
|--------------------|----------------|---------------------|
| ruBert-base |178 M |30 GB |
| ruBert-large |427 M |30 GB |
| ruRoberta-large |355 M |250 GB |
| ruT5-base |222 M |300 GB |
| ruT5-large |737 M |300 GB| |## Финальное решение подробно описано в [final_solution](https://github.com/itallix/fluffy-carnival/blob/main/final_solution)
Параметр | Значение |
|----------|-----------|
Модель| ai-forever/ruRoberta-large
Количество экпох | 4
Результат f1 на тесте | 0.59814
Датасет | Аугментация 5 классов «ru–en–ru» + доп. данные от твитовПрезентация - [team 39.pdf](https://github.com/itallix/fluffy-carnival/blob/main/final_solution/presentation/team%2039.pdf), также в папке [presentation](https://github.com/itallix/fluffy-carnival/tree/main/final_solution/presentation) есть версия pptx.