Модель машинного обучения для классификации комментариев на позитивные и токсичные.
Цель проекта — разработка инструмента для автоматического выявления токсичных комментариев в интернет-магазине «Викишоп» для отправки на модерацию.
- Классифицировать комментарии на позитивные и токсичные
- Достигнуть метрики F1 не менее 0.75
- Обеспечить высокую скорость обработки для практического применения
- Python 3.x
- pandas, numpy, matplotlib, seaborn
- scikit-learn, imbalanced-learn, catboost
- nltk, pymystem3
- TfidfVectorizer, SMOTE
- Jupyter Notebook
git clone https://github.com/kagor4/toxic_comments_project.git
cd toxic_comments_project
pip install -r requirements.txt
Затем откройте и запустите файл toxic_comments_project.py
или ноутбук с аналогичным кодом в Jupyter.
Проект использует датасет /datasets/toxic_comments.csv
:
- Столбец
text
— текст комментария - Столбец
toxic
— целевой признак (0 — позитивный, 1 — токсичный)
Дополнительно созданы признаки:
corpus
— лемматизированный текстnumbers_of_words
— количество слов в текстеaverage_word_length
— средняя длина слова
- Лучшая модель:
CatBoostClassifier
сTfidfVectorizer
иSMOTE
- Метрика: F1 = 0.7506 (достигнуто целевое значение ≥ 0.75)
- Время предсказания: ~10.52 секунды
- Основные особенности:
- Обработка дисбаланса классов с помощью SMOTE
- Лемматизация текстов на русском и английском
- Рекомендации:
- Рассмотреть настройку гиперпараметров для повышения F1
- Оценить модель по дополнительным метрикам (ROC-AUC, precision, recall)
- Исследовать BERT для улучшения качества
📦 toxic_comments_project/
├── toxic_comments_project.py # анализ и обучение модели
├── requirements.txt # зависимости
└── README.md # описание проекта
- Настроить гиперпараметры моделей для улучшения F1
- Добавить поддержку BERT для обработки текстов
- Создать веб-интерфейс для классификации комментариев
Автор: kagor4