Skip to content

Модель классификации токсичных комментариев с F1 0.7506 на основе CatBoost и TF-IDF. Использованы Python, Scikit-learn, NLTK, SMOTE.

Notifications You must be signed in to change notification settings

kagor4/toxic_comments_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Классификация токсичных комментариев для «Викишоп»

Модель машинного обучения для классификации комментариев на позитивные и токсичные.
Цель проекта — разработка инструмента для автоматического выявления токсичных комментариев в интернет-магазине «Викишоп» для отправки на модерацию.

🎯 Цель проекта

  • Классифицировать комментарии на позитивные и токсичные
  • Достигнуть метрики 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                 # описание проекта

✅ TODO

  • Настроить гиперпараметры моделей для улучшения F1
  • Добавить поддержку BERT для обработки текстов
  • Создать веб-интерфейс для классификации комментариев

© Автор

Автор: kagor4

About

Модель классификации токсичных комментариев с F1 0.7506 на основе CatBoost и TF-IDF. Использованы Python, Scikit-learn, NLTK, SMOTE.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages