bakalarka_praca/README.md

85 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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