# 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