# Darija Offensive Language Detection π²π¦
A sophisticated deep learning system for detecting offensive language in Moroccan Darija using a hybrid CNN-LSTM architecture with MorRoBERTa embeddings.
## π― Overview
This project implements a state-of-the-art offensive language detection system specifically designed for Moroccan Darija (Moroccan Arabic dialect). The model combines the power of pre-trained transformer embeddings with a hybrid CNN-LSTM architecture to achieve high accuracy in identifying offensive content.
### Key Features
- **Domain-Specific**: Uses MorRoBERTa, specifically trained on Moroccan Arabic
- **Hybrid Architecture**: Combines CNN for local pattern detection with LSTM for sequential modeling
- **Multi-Scale Feature Extraction**: Uses multiple CNN kernel sizes (3, 4, 5) to capture different n-gram patterns
- **Production-Ready**: Complete training pipeline with evaluation metrics and visualization
- **Efficient**: Frozen embeddings approach for faster training and deployment
## ποΈ Architecture
```
Input Text
β
MorRoBERTa Embedder (Frozen)
β
Multi-Scale CNN Layers (k=3,4,5)
β
Feature Concatenation
β
Bidirectional LSTM
β
Classification Head
β
Offensive/Non-Offensive
```
### Model Components
1. **MorRoBERTa Embedder**: Pre-trained transformer for contextualized embeddings
2. **Hybrid CNN-LSTM Classifier**:
- 3 parallel Conv1D layers with different kernel sizes
- Batch normalization and dropout for regularization
- Bidirectional LSTM for sequence modeling
- Dense classification head
## π Dataset
The model is trained on the **Moroccan Darija Offensive Language Detection Dataset**, which contains:
- Moroccan Darija text samples
- Binary labels (Offensive/Non-Offensive)
- Balanced distribution across classes
### Data Split
- **Training**: 70%
- **Validation**: 15%
- **Test**: 15%
## π Quick Start
### Prerequisites
```bash
pip install torch torchvision torchaudio
pip install transformers
pip install scikit-learn pandas numpy matplotlib seaborn β¦