Skip to content

RandomToga/toxic_comments

Repository files navigation

Toxic Comments Classification

Проект по анализу и классификации токсичных комментариев с применением методов машинного обучения, обработки естественного языка (NLP), а также визуализацией результата через веб-интерфейс и контейнеризацией с помощью Docker.

Цель проекта

Разработка модели, способной автоматически определять токсичные высказывания в текстах. Также реализован веб-интерфейс и API для практического применения модели.


Используемый стек

  • Python 3
  • Pandas, scikit-learn, NLTK — анализ и обработка данных
  • FastAPI — REST API для предсказаний
  • Модель: Logistic Regression
  • HTML / CSS / JavaScript — пользовательский веб-интерфейс
  • Docker — контейнеризация приложения
  • Jupyter Notebook — для анализа и обучения
  • Среда: venv (изолированная Python-среда)

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

Файл Описание
toxic_comments.ipynb Основной ноутбук с анализом данных, подготовкой и обучением моделей
train.ipynb Файл, через который тестила API
app_api.py FastAPI-приложение для предсказания токсичности
labeled.csv Используемый размеченный датасет с токсичными/нетоксичными комментариями
index.html Главная страница сайта для ввода комментария
style.css Стилизация веб-интерфейса
script.js JS-логика отправки запроса к API
Dockerfile Файл сборки Docker-образа
requirements.txt Список Python-зависимостей

Этапы разработки

  1. Импорт и очистка данных

    • Загрузка labeled.csv
  2. Анализ данных

    • Статистика по классам (токсичный / нетоксичный)
    • Визуализация распределения
  3. Преобразование текста

    • Использование TF-IDF векторизации
  4. Обучение моделей

    • Logistic Regression, Pipeline
    • Оценка по метрикам: Precision, Recall
  5. Сохранение/экспорт модели

    • Сохранение модели через dill
  6. Создание API

    • Построен REST API с использованием FastAPI в app_api.py
  7. Тестирование

    • Проверка модели и API на тестовых данных
  8. Создание и стилизация веб-страницы

  9. Контейнеризация проекта с Docker


Веб-интерфейс

Разработан простой веб-сайт с полем для ввода текста. Комментарий отправляется на сервер, и результат отображается без перезагрузки страницы.

  • HTML + CSS для структуры и дизайна
  • JavaScript для отправки запроса к API (AJAX)

Docker

Для развёртывания проекта достаточно Docker.

Сборка образа:

docker build -t toxic-service:latest .

Запуск контейнера:

docker run -d --name toxic-service -p 500:5000 toxic-service:latest

Результаты

  • Точность модели: 95%
  • Модель находит 22% негативных комментариев из общего числа негативных комментариев

Пример запроса к API:

curl -X POST http://127.0.0.1:5000/predict_model -H "Content-Type: application/json" -d "{\"text\":\"Я красивая\"}"

Важность проекта

Токсичный контент — серьёзная проблема в интернете. Эта система способна автоматизировать модерацию и повысить безопасность в онлайн-пространствах.


Примеры работы сервиса

1 2

Комментарии от меня

Модель на самом деле не самая сильная, бывают моменты, когда она ошибается. В планах поработать над ней еще, улучшить, применить другие модели, а также я думала о том, чтобы развернуть свой сервер.❤

About

Классификатор токсичности с API.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages