# English to Kinyarwanda Translation Project
## Table of Contents
- Introduction
- Dataset Creation and Preprocessing
- Model Architecture and Design Choices
- Training Process and Hyperparameters
- Evaluation Metrics and Results
- Insights and Potential Improvements
- Conclusion
## Introduction
This project aims to build a translation model that translates text from English to Kinyarwanda. The project involves several key steps, including dataset preparation, model building, training, and evaluation.
## Dataset Creation and Preprocessing
1. **Dataset Sources:**
- The dataset is created from three separate sources containing English-Kinyarwanda sentence pairs.
- Each source was inspected for quality and consistency.
2. **Data Cleaning:**
- Removed duplicate entries and irrelevant rows.
- Handled missing values by removing rows with incomplete translations.
3. **Standardization:**
- Converted all datasets to a common format (TSV) with consistent column names: `english` and `kinyarwanda`.
4. **Combining Datasets:**
- The three datasets were merged into a single file using Pandas:
```python
import pandas as pd
dataset1 = pd.read_csv('dataset1.tsv', sep='\t')
dataset2 = pd.read_csv('dataset2.tsv', sep='\t')
dataset3 = pd.read_csv('dataset3.tsv', sep='\t')
combined_dataset = pd.concat([dataset1, dataset2, dataset3], ignore_index=True)
combined_dataset.drop_duplicates(inplace=True)
combined_dataset.to_csv('combined_dataset.tsv', sep='\t', index=False)
```
5. **Splitting the Dataset:**
- The combined dataset was split into training (80%), validation (10%), and test sets (10%).
## Model Architecture and Design Choices
- **Model Type:** Transformer-based architecture was chosen due to its effectiveness in handling sequence-to-sequence tasks.
- **Layers:** The model consists of an encoder-decoder structure with the following specifications:
- Number of layers: 6
- Hidden size: 512
- Number of attention heads: 8
- Dropout: 0.1
- **Embedding:** Used a shared embeddin …