RAG_APP / docs /preprocess_script_readme.md
sxid003's picture
Upload 83 files
3107242 verified
# Script de Prétraitement et Génération d'Embeddings
## 📋 **Vue d'ensemble**
Le script `preprocess_titlecat_titledate_embeddings.py` est un pipeline de prétraitement qui génère les embeddings nécessaires au fonctionnement du système MCP. Il traite deux types de données :
- **📚 Documents Juridiques** : Génère des embeddings basés sur le titre + catégorie des documents
- **🏛️ Transcriptions Parlementaires** : Génère des embeddings basés sur le titre + date des transcriptions
## 🔧 **Fonctionnement du Script**
### **Étape 1 : Documents Juridiques (title+category)**
```python
preprocess_and_save_documents()
```
**Fichier source** : `dataset/documents.csv`
**Données traitées** :
- `Nom du document` + `Catégorie`
- Métadonnées : ID, Nom, Lien, Catégorie, Langue
**Fichiers générés** :
- `output/title_cat_embeddings.npy` : Embeddings des documents
- `output/title_cat_metadatas.json` : Métadonnées structurées
### **Étape 2 : Transcriptions Parlementaires (title+date)**
```python
preprocess_and_save_parlement()
```
**Fichier source** : `data/youtube/raw/parlement_transcript.csv`
**Données traitées** :
- `titre` + `date`
- Métadonnées : ID, titre, date, langue, lien
**Fichiers générés** :
- `output/parlement_titledate_embeddings.npy` : Embeddings des transcriptions
- `output/parlement_titledate_metadatas.json` : Métadonnées structurées
## 🎯 **Modèle d'Embedding Utilisé**
- **Modèle** : `paraphrase-multilingual-mpnet-base-v2`
- **Caractéristiques** : Multilingue (français, arabe)
## 📊 **Logging et Traçabilité**
Le script génère des logs détaillés dans :
```
logs/preprocess_titlecat_titledate_embeddings.log
```
**Format des logs** :
```
2024-01-15 10:30:00 - INFO - 1/2 Starting preprocessing and embedding for documents (title+category).
2024-01-15 10:32:15 - INFO - 2/2 Starting preprocessing and embedding for parliament transcripts (title+date).
2024-01-15 10:34:30 - INFO - Preprocessing and embedding completed.
```
## 🚀 **Exécution**
### **Prérequis**
- Fichier `dataset/documents.csv` avec les documents juridiques
- Fichier `data/youtube/raw/parlement_transcript.csv` avec les transcriptions
- Modèle SentenceTransformer installé
### **Commande d'exécution**
```bash
python scripts/preprocess_titlecat_titledate_embeddings.py
```
### **Sortie attendue**
```
Saved 150 embeddings and metadatas.
Saved 75 parlement embeddings and metadatas (sans sous-titre).
```
## 📁 **Structure des Fichiers Générés**
### **Documents Juridiques**
```json
[
{
"Nom du document": "Code pénal",
"Lien": "https://adala.justice.gov.ma/...",
"Catégorie": "Codes",
"Langue": "fr",
"Id": "1"
}
]
```
### **Transcriptions Parlementaires**
```json
[
{
"id": "1",
"titre": "Débat sur l'éducation",
"date": "2024-01-15",
"langue": "fr",
"lien": "https://youtube.com/..."
}
]
```
## 🔄 **Intégration avec le Pipeline MCP**
Ce script doit être exécuté **avant** d'utiliser le pipeline MCP :
1. Exécuter ce script pour générer les embeddings
2. Lancer le pipeline MCP qui utilisera ces embeddings
## 🛠️ **Dépannage**
### **Erreur courante : Fichier CSV manquant**
```
FileNotFoundError: [Errno 2] No such file or directory: 'dataset/documents.csv'
```
**Solution** : Vérifier que les fichiers CSV sources existent
### **Erreur courante : Modèle non trouvé**
```
OSError: Model paraphrase-multilingual-mpnet-base-v2 not found
```
**Solution** : Installer SentenceTransformer et télécharger le modèle