Version Python 3.8 : ou plus
Réalisé par : Titouan BEAUVERGER, Morgan PHILIPPE, Marko BABIC
.venv\Scripts\activatepip install -r requirements.txtpython -m spacy download fr_core_news_smL'interface Streamlit offre deux modes d'utilisation :
streamlit run app.py- Entrez une requête dans la barre de recherche
- Configurez les paramètres (k, top-k, reranking) dans la barre latérale
- Cliquez sur "Rechercher" pour obtenir les documents pertinents
- Visualisez les résultats avec scores et extraits de documents
- Configure les paramètres dans la barre latérale
- Lancez l'évaluation sur toutes les requêtes du fichier
requetes.jsonl - Consultez les métriques (MRR, MAP, P@k, R@k)
- Téléchargez les résultats en JSON
python pipeline.py --k 10 --top-k 30 --rerankOptions disponibles :
--k: Nombre de résultats finaux par requête (défaut: 10)--top-k: Nombre de documents TF-IDF à envoyer au cross-encoder (défaut: 30)--rerank: Activer le reranking avec cross-encoder--force-preprocess: Forcer le prétraitement des documents--force-tfidf: Forcer le recalcul du modèle TF-IDF
python preprocess.pypython indexation.pyapp.py: Interface Streamlit avec recherche interactive et évaluationpipeline.py: Pipeline complet (prétraitement → TF-IDF → reranking → évaluation)preprocessing_all_text.py: Prétraitement des documents Wikipediaindexation.py: TF-IDF, similarité cosinus et cross-encoderevaluation.py: Métriques d'évaluation (P@k, R@k, MRR, MAP)
preprocessed_data.pkl: Documents nettoyés et tokenisés (réutilisable)tfidf_model.pkl: Modèle TF-IDF sauvegardéevaluation_results.json: Résultats des métriques d'évaluation
wiki_split_extract_2k/: Corpus de documents Wikipediarequetes.jsonl: Requêtes de test avec documents pertinents (ground truth)
- Prétraitement : Nettoyage, tokenisation, lemmatisation avec spaCy
- Indexation TF-IDF : Vectorisation des documents
- Recherche rapide : Similarité cosinus pour sélectionner top-k documents
- Reranking (optionnel) : Cross-encoder pour améliorer la précision
- Évaluation : Calcul des métriques P@k, R@k, MRR, MAP
- P@k : Précision aux k premiers résultats
- R@k : Rappel aux k premiers résultats
- MRR : Mean Reciprocal Rank (position du 1er document pertinent)
- MAP : Mean Average Precision
- wiki_000711
- wiki_000297
- wiki_000468
- wiki_000612
Le prétraitement supprime automatiquement les bandeaux Wikipedia et autres contenus non pertinents.
- TF-IDF seul : Très rapide (~ms par requête)
- TF-IDF + Cross-Encoder : Plus précis mais plus lent (~secondes par requête)
Recommandation : Utiliser top-k = 3-5× le nombre de résultats finaux pour un bon compromis vitesse/précision.