# English-Luganda Translator
A machine learning translator for English ↔ Luganda using transformer sequence-to-sequence models.
**Status**: [SUCCESS] Clean ML pipeline ready for training on Google Colab GPU
---
## [SUMMARY] Overview
This project implements a complete machine learning workflow for English-Luganda translation:
- **Model**: Helsinki-NLP/OPUS-MT-en-mul (143.1M parameters)
- **Framework**: PyTorch + HuggingFace Transformers
- **Training**: Google Colab with Tesla T4 GPU (or CPU fallback)
- **Performance**: BLEU score 20.69 on 5,008 test samples
- **Visualizations**: Data distribution, training results, quality metrics dashboard
---
## [STATS] Datasets
The project uses **5 real English-Luganda parallel datasets**:
1. **Kambale Corpus** (~50,012 pairs)
- High-quality parallel translations
- Domain: Agriculture, society, community
2. **Cultural Dataset** (~12 pairs)
- Buganda cultural and heritage terms
- Domain: Traditions, kingship, culture
3. **JW300** (~15 pairs)
- Religious and literary texts
- Domain: Spiritual, philosophical
4. **Makerere NLP** (~15 pairs)
- Academic Luganda
- Domain: Formal, educational
5. **Sunbird SALT** (~18 pairs)
- Low-resource language data
- Domain: General language patterns
**Total**: 50,072 real translation pairs
**Data Splits**:
- Training: 40,056 pairs (80%)
- Validation: 5,008 pairs (10%)
- Testing: 5,008 pairs (10%)
---
## 🏗️ Project Structure
```
src/ # ML Pipeline modules
├── config.py # Centralized configuration
├── utils.py # Helper functions
├── 1_load_data.py # Step 1: Load all 5 datasets
├── 2_preprocess.py # Step 2: Create train/val/test splits
├── 3_train.py # Step 3: Train transformer model
└── 4_evaluate.py # Step 4: Evaluate & calculate BLEU
scripts/
└── run_pipeline.py # Run complete pipeline
data/
├── raw/ # Original CSV files (5 datasets)
│ ├── kambale_train.csv
│ ├── cul …