docs: Analyse complète de la régression de qualité - Causes racines identifiées

This commit is contained in:
2026-03-02 23:09:25 +01:00
parent eb797a4761
commit dfa6e2957b
5 changed files with 930 additions and 3 deletions

View File

@@ -88,11 +88,100 @@
---
## Phase 2 : Amélioration de la Détection (3 semaines)
## Phase 2 : Correction de la Régression de Qualité (3-4 jours) - PRIORITÉ CRITIQUE
### 2.1 Amélioration des Regex
### 2.0 Analyse de la Régression (COMPLÉTÉ ✅)
- [ ] 2.1.1 Améliorer la détection des téléphones
- [x] 2.0.1 Analyser la régression de qualité en production
- [x] 2.0.1.1 Comparer documents originaux vs anonymisés
- [x] 2.0.1.2 Identifier les artefacts OCR
- [x] 2.0.1.3 Identifier les sur-masquages
- [x] 2.0.1.4 Comparer test dataset vs production
- [x] 2.0.1.5 Documenter les causes racines
### 2.1 Optimisation OCR (1-2 jours) - CRITIQUE
- [ ] 2.1.1 Optimiser les paramètres docTR
- [ ] 2.1.1.1 Augmenter la résolution d'entrée (300 → 400 DPI)
- [ ] 2.1.1.2 Activer le post-traitement docTR
- [ ] 2.1.1.3 Tester différentes configurations sur 10 documents scannés
- [ ] 2.1.1.4 Mesurer le taux d'artefacts OCR (cible: <5%)
- [ ] 2.1.2 Implémenter le nettoyage des artefacts OCR
- [ ] 2.1.2.1 Créer `detectors/ocr_cleaner.py`
- [ ] 2.1.2.2 Implémenter la fusion des lettres espacées (`P Nr °a t``Praticien`)
- [ ] 2.1.2.3 Implémenter la fusion des chiffres espacés (`1o 0s 1p``10100`)
- [ ] 2.1.2.4 Utiliser un dictionnaire médical pour corriger les mots fragmentés
- [ ] 2.1.2.5 Intégrer dans `_extract_with_doctr()`
- [ ] 2.1.2.6 Tester sur 20 documents scannés
- [ ] 2.1.2.7 Mesurer l'amélioration de lisibilité (cible: >80%)
### 2.2 Whitelist Médicaments (1 jour) - CRITIQUE
- [ ] 2.2.1 Créer la whitelist de médicaments
- [ ] 2.2.1.1 Vérifier que `_load_edsnlp_drug_names()` fonctionne
- [ ] 2.2.1.2 Ajouter les médicaments manquants (IDACIO, etc.)
- [ ] 2.2.1.3 Créer `config/medications_whitelist.yml`
- [ ] 2.2.1.4 Charger la whitelist au démarrage
- [ ] 2.2.2 Intégrer la whitelist dans le NER
- [ ] 2.2.2.1 Modifier `_mask_with_eds_pseudo()` pour filtrer les médicaments
- [ ] 2.2.2.2 Ajouter le filtre dans la boucle de masquage NER
- [ ] 2.2.2.3 Tester sur 10 documents avec médicaments
- [ ] 2.2.2.4 Vérifier que 0 médicament est masqué
### 2.3 Raffiner Regex Termes Médicaux (1 jour) - CRITIQUE
- [ ] 2.3.1 Modifier les regex problématiques
- [ ] 2.3.1.1 Modifier `RE_SERVICE` pour exclure "Chef de service"
- [ ] 2.3.1.2 Modifier `RE_ETABLISSEMENT` pour exclure "Chef de Clinique"
- [ ] 2.3.1.3 Créer `config/medical_terms_whitelist.yml`
- [ ] 2.3.1.4 Ajouter les termes structurels (Chef de service, Praticien hospitalier, etc.)
- [ ] 2.3.2 Intégrer la whitelist dans le pipeline
- [ ] 2.3.2.1 Charger la whitelist au démarrage
- [ ] 2.3.2.2 Filtrer les détections avant masquage
- [ ] 2.3.2.3 Tester sur 10 documents
- [ ] 2.3.2.4 Vérifier que 0 terme médical structurel est masqué
### 2.4 Validation de la Correction (1 jour)
- [ ] 2.4.1 Ré-anonymiser le corpus de test
- [ ] 2.4.1.1 Ré-anonymiser les 27 documents du test dataset
- [ ] 2.4.1.2 Exécuter l'évaluateur de qualité
- [ ] 2.4.1.3 Vérifier que Recall=100%, Precision=100%, F1=100%
- [ ] 2.4.1.4 Mesurer les nouvelles métriques (artefacts OCR, médicaments, termes médicaux)
- [ ] 2.4.2 Ré-anonymiser un échantillon de production
- [ ] 2.4.2.1 Sélectionner 50 documents de production (scannés)
- [ ] 2.4.2.2 Ré-anonymiser avec les corrections
- [ ] 2.4.2.3 Comparer avec la baseline (avant corrections)
- [ ] 2.4.2.4 Mesurer l'amélioration:
- Artefacts OCR: <5% (était ~30%)
- Médicaments masqués: 0 (était >0)
- Termes médicaux masqués: 0 (était >10)
- Lisibilité: >80% (était ~60%)
- PII/doc: <30 (était 54.8)
- [ ] 2.4.3 Validation manuelle
- [ ] 2.4.3.1 Sélectionner 10 documents aléatoires
- [ ] 2.4.3.2 Vérifier manuellement la qualité
- [ ] 2.4.3.3 Vérifier la lisibilité médicale
- [ ] 2.4.3.4 Documenter les observations
- [ ] 2.4.4 Générer le rapport de correction
- [ ] 2.4.4.1 Créer `REGRESSION_FIX_REPORT.md`
- [ ] 2.4.4.2 Documenter les métriques avant/après
- [ ] 2.4.4.3 Documenter les corrections appliquées
- [ ] 2.4.4.4 Documenter les résultats de validation
---
## Phase 3 : Amélioration Avancée de la Détection (3 semaines) - OPTIONNEL
### 3.1 Amélioration des Regex
- [ ] 3.1.1 Améliorer la détection des téléphones
- [ ] 2.1.1.1 Créer `detectors/improved_regex.py`
- [ ] 2.1.1.2 Implémenter `RE_TEL_IMPROVED` (formats fragmentés)
- [ ] 2.1.1.3 Ajouter 20+ tests unitaires pour les téléphones