Классификация токсичных комментариев — это перспективная задача, которая использует машинное обучение для выявления и пометки оскорбительных комментариев в интернете, тем самым делая онлайн-пространство более безопасным для всех и каждого. Проект предполагает обучение модели на большом массиве комментариев, чтобы выявлять оскорбительные высказывания или язык ненависти. Это начинание предлагает прекрасную возможность для новичков попробовать свои силы в обработке естественного языка и машинном обучении. В целом, проект «Классификация токсичных комментариев» — это отличная инициатива, которая может помочь сделать интернет более безопасным и инклюзивным пространством для всех.
- 👥 Регистрация и авторизация пользователей
- 📝 Создание и публикация комментариев
- 📰 Автоматическая детоксикация введенного текста
- Frontend: React, JavaScript
- Backend: FastAPI, GO
- База данных: PostgreSQL
- Детоксикация текста: модель детоксикации текста
- Построение модели: Torch, Transformers
- Обработка датасета: Pandas, Datasets
📦 Detoxic_Comments ┣ 📂 backend # Бэкенд-сервер на Go + Python ┃ ┣ 📂 go # Точка входа Go-приложения ┃ ┃ ┣ 📂 cmd/server # Точка входа Go-приложения ┃ ┃ ┃ ┗ 📜 main.go # Запуск HTTP-сервера ┃ ┃ ┣ 📂 internal # Внутренние модули Go-приложения ┃ ┃ ┃ ┣ 📂 db # Работа с базой данных ┃ ┃ ┃ ┃ ┗ 📜 conn.go # Подключение и инициализация базы данных ┃ ┃ ┃ ┣ 📂 handler # HTTP-хендлеры (обработка запросов) ┃ ┃ ┃ ┃ ┣ 📜 comment.go ┃ ┃ ┃ ┃ ┗ 📜 user.go ┃ ┃ ┃ ┗ 📂 model # Структуры моделей ┃ ┃ ┃ ┣ 📜 predict.go # Детоксикация текста ┃ ┃ ┃ ┗ 📜 user.go # Инициализация базы ┃ ┃ ┣ 📜 init.sql # SQL-скрипт для инициализации БД ┃ ┃ ┣ 📜 go.mod # Go-модули ┃ ┃ ┗ 📜 go.sum ┃ ┣ 📂 models/ruT5-base # Предобученная модель ruT5 для анализа токсичности ┃ ┃ ┣ 📜 config.json ┃ ┃ ┣ 📜 old_spiece.model ┃ ┃ ┣ 📜 pytorch_model.bin ┃ ┃ ┣ 📜 special_tokens_map.json ┃ ┃ ┣ 📜 spiece.model ┃ ┃ ┗ 📜 tokenizer_config.json ┃ ┣ 📂 venv # Виртуальное окружение Python (игнорируется Git) ┃ ┣ 📂 .gitignore ┃ ┣ 📜 app.py # Python-интерфейс для работы с моделью ruT5 ┃ ┗ 📜 requirements.txt # Зависимости Python ┣ 📂 frontend # Веб-интерфейс на React ┃ ┣ 📂 public # Статичные файлы (HTML-шаблон) ┃ ┃ ┗ 📜 index.html ┃ ┣ 📂 src # Исходный код React-приложения ┃ ┃ ┣ 📂 API # API-запросы к бэкенду (fetch/axios) ┃ ┃ ┃ ┣ 📜 auth.js # Авторизация и регистрация ┃ ┃ ┃ ┗ 📜 index.js # Общие запросы ┃ ┃ ┣ 📂 components # Переиспользуемые UI-компоненты ┃ ┃ ┃ ┣ 📜 AppRouter.jsx # Роутинг ┃ ┃ ┃ ┣ 📜 ArticleItem.jsx # Отображение статьи ┃ ┃ ┃ ┣ 📜 Comment.jsx # Отображение комментариев в профиле ┃ ┃ ┃ ┣ 📜 CommentPost.jsx # Отображение комментариев в посте ┃ ┃ ┃ ┣ 📜 Footer.jsx # Компонент футера ┃ ┃ ┃ ┣ 📜 Navbar.jsx # Навбар ┃ ┃ ┃ ┗ 📜 ToxicMeter.jsx # Индикатор токсичности комментария ┃ ┃ ┣ 📂 context # React Context API ┃ ┃ ┃ ┗ 📜 AuthContext.jsx # Контекст аутентификации пользователя ┃ ┃ ┣ 📂 pages # Страницы приложения ┃ ┃ ┃ ┣ 📜 ArticlePage.jsx # Страница статьи с комментариями ┃ ┃ ┃ ┣ 📜 Auth.jsx # Логин/регистрация ┃ ┃ ┃ ┣ 📜 MainPage.jsx # Главная страница ┃ ┃ ┃ ┗ 📜 Profile.jsx # Профиль пользователя ┃ ┃ ┣ 📂 styles # CSS-модули для компонентов ┃ ┃ ┃ ┣ 📜 *.module.css # Отдельный стиль под каждый компонент ┃ ┃ ┣ 📂 UI # Шрифты и иконки ┃ ┃ ┃ ┣ 📂 font ┃ ┃ ┃ ┗ 📂 icons ┃ ┃ ┣ 📂 utils # Вспомогательные функции ┃ ┃ ┃ ┣ 📜 consts.js # Константы ┃ ┃ ┃ ┗ 📜 formatDate.js # Форматирование дат ┃ ┃ ┣ 📜 App.js # Корневой компонент React-приложения ┃ ┃ ┣ 📜 index.js # Точка входа React ┃ ┃ ┣ 📜 index.css # Глобальные стили ┃ ┃ ┗ 📜 routes.js # Объявление роутов ┃ ┣ 📜 .gitignore ┃ ┣ 📜 package.json # Зависимости frontend ┃ ┗ 📜 package-lock.json ┣ 📜 .gitignore ┣ 📜 docker-compose.yml # Запуск проекта ┣ 📜 Dockerfile.fastapi # Dockerfile для backend FastAPI ┣ 📜 Dockerfile.frontend # Dockerfile для frontend React ┣ 📜 Dockerfile.go # Dockerfile для backend Go ┗ 📜 README.md
Перед запуском проекта необходимо создать файл .env в корневой директории и указать в нём параметры подключения к базе данных:
DB_HOST=go_db
DB_USER=your_username
DB_PASSWORD=your_password
DB_NAME=your_database
DB_PORT=5432Замените значения на соответствующие вашей конфигурации. Этот файл будет использоваться docker-compose и приложением для подключения к базе данных.
Примечание: Убедитесь, что файл .env находится в той же директории, откуда вы запускаете docker-compose, чтобы переменные были корректно загружены.
git clone https://github.com/shadxwkxw/Detoxic_Comments.git
cd Detoxic_Comments
docker-compose up --build -d # Сборка и запуск проекта
docker-compose down # Остановка и удаления контейнеров