Pipeline Python pour enrichir un dataset Arabe (MSA) → Darija (MA) depuis livres PDF & transcriptions YouTube ; normalisation, segmentation par tokens, génération (OpenAI ou règles) et export JSON. Projet de stage d’application chez YaneCode Digital.
# NLP for Darija — Enrichissement de `traduction_darija.json`
Projet extrait et industrialisé à partir du notebook **`Darija_Arabe.ipynb`**. L’objectif est de construire un **pipeline reproductible** pour enrichir un dataset parallèle **Arabe (MSA) → Darija marocaine** (écriture arabe) en s’appuyant sur :
* des **livres** (38 PDF) placés dans `BOOK_DATA/` ;
* des **transcriptions YouTube** décrites par `data/videos_youtube_info.xlsx` ;
* une **génération** de propositions darija (OpenAI optionnel + fallback par règles) ;
* une **fusion traçable** dans `traduction_darija.json`.
> **Python**: 3.12.8
---
## Arborescence
```
nlp-darija/
├─ BOOK_DATA/ # (existe déjà) 38 livres PDF
├─ data/
│ └─ videos_youtube_info.xlsx # (existe) feuille YouTube
├─ artifacts/ # sorties intermédiaires (.jsonl/.json)
├─ src/
│ ├─ config.py
│ ├─ cli.py
│ ├─ utils/
│ │ ├─ logging_utils.py
│ │ └─ textnorm.py
│ ├─ text/
│ │ ├─ tokens.py
│ │ └─ segment.py
│ ├─ io/
│ │ ├─ pdf_reader.py
│ │ ├─ ocr.py
│ │ └─ youtube.py
│ ├─ dataset/
│ │ ├─ build.py
│ │ ├─ export.py
│ │ └─ stats.py
│ ├─ estimation/
│ │ └─ costs.py
│ └─ generation/
│ └─ openai_gen.py
├─ traduction_darija.json # fichier final (enrichi)
├─ README.md
├─ requirements.txt
├─ LICENSE
└─ .gitignore
```
---
## Installation rapide
1. **Créer l’environnement** (recommandé)
```bash
python -m venv .venv
# Windows PowerShell
. .venv\Scripts\Activate.ps1
# Mac/Linux
source .venv/bin/activate
```
2. **Installer les dépendances**
```bash
pip install -r requirements.txt
```
3. **(Optionnel) Configurer les outils système**
* **Tesseract OCR** (pour `src/io/ocr.py`) — nécessaire si vos PDF sont scannés.
* **Poppler** (pour `pdf2image`).
Configurer via variables d’environnement (Windows surtout) :
```powershell
$env:TESSERACT_CMD = "C:\\Program Files\\Tesseract-OCR\\tesseract.exe"
$env:POPPLER_PATH = "C:\\Program Files\\poppler-24.08.0\\Library\\bi …