# Systém na detekciu nenávistnej reči – Bakalárska práca **Autor**: Tetiana Mohorian **Škola**: Technická univerzita v Košiciach, FEI **Vedúci práce**: doc. Ing. Daniel Hládek, PhD. **Rok**: 2025 --- ## 📌 Prehľad projektu Táto bakalárska práca predstavuje komplexný systém na detekciu nenávistnej reči v slovenčine pomocou veľkých jazykových modelov (LLM). Súčasťou riešenia sú: - 🧠 Jemne doladené modely SlovakT5 a mT5 - 🤖 Telegram bot, ktorý moderuje skupinové konverzácie v reálnom čase - 🌐 Webová aplikácia s prehľadom klasifikácií a históriou - 🗃️ Integrácia databáz PostgreSQL a MySQL - 🐳 Nasadenie pomocou Docker a Kubernetes --- ## 📊 Výsledky modelov ### Tab. 1 – Výsledky tréningu modelu pomocou few-shot learning | Modely | Precision | Recall | F1 Score | |--------------------|-----------|--------|----------| | mT5-small | 0.4923 | 0.6400 | 0.5662 | | mT5-base | 0.4533 | 0.6800 | 0.5440 | | mT5-large | 0.6473 | 0.5903 | 0.6188 | | **Slovak-T5-base** | **0.6689**| **0.6082** | **0.6386** | | Slovak-T5-small | 0.6230 | 0.5748 | 0.5989 | --- ### Tab. 2 – Porovnanie modelu SlovakT5-base pred a po doladení LoRA | Model | Precision | Recall | F1 Score | |-----------------------|-----------|--------|----------| | Slovak-T5-base | 0.6689 | 0.6082 | 0.6386 | | Slovak-T5-base (LoRA) | 0.7113 | 0.7859 | 0.7486 | --- ## ⚙️ Komponenty - **Telegram Bot**: Sleduje správy, detekuje nenávistný obsah a odstraňuje ich v reálnom čase. - **Webová Aplikácia**: Flask + React rozhranie zobrazujúce históriu detekcií. - **Modely**: SlovakT5, mT5 – doladené pomocou PEFT / LoRA. - **Databázy**: MySQL (bot), PostgreSQL (web). - **Nasadenie**: Kubernetes + Google Cloud Run. --- ## 📦 Nasadenie Všetky komponenty sú zabalené do Docker kontajnerov. Nasadenie prebieha pomocou Kubernetes (ConfigMap, Deployment, PVC, Secret). Bot aj web bežia v rovnakom kontajneri v rámci namespace `botspace`. --- ## 🔐 Premenné prostredia (.env) | Premenná | Popis | |--------------|------------------------------| | `TOKEN` | Token Telegram bota | | `DB_USER` | Užívateľ MySQL | | `DB_PASSWORD`| Heslo do MySQL | | `DB_HOST` | Host pre databázu | | `DB_NAME` | Názov databázy | --- ## 📜 Poznámka Tento projekt vznikol ako súčasť bakalárskej práce a demonštruje použitie moderných NLP prístupov pre analýzu toxicity v reálnom čase. Kód a architektúra boli navrhnuté tak, aby boli modulárne, rozšíriteľné a pripravené na praktické použitie v reálnych systémoch. --- ## 📚 Dataset - **TUKE-KEMT/hate_speech_slovak** - Dve triedy: `0 = neutrálne`, `1 = nenávistné` - Využitý pre hodnotenie aj doladenie modelov