Files

9.9 KiB

Analyse Réelle de la Qualité d'Anonymisation

Date: 2 mars 2026
Corpus Analysé: /home/dom/Téléchargements/II-1 Ctrl_T2A_2025_CHCB_DocJustificatifs/anonymise
Statut: ⚠️ PROBLÈMES IDENTIFIÉS - AMÉLIORATIONS NÉCESSAIRES


🔍 Résumé de l'Analyse

Fichiers Analysés

  • 16 fichiers texte anonymisés
  • 16 fichiers audit correspondants
  • Échantillon: 10 premiers documents analysés en détail

Métriques Globales

  • Détections: 696 PII sur 10 documents (69.6 PII/document)
  • Ratio de masquage: 5.8% - 11.4% (acceptable)
  • Fuites potentielles: 182 "noms propres" détectés

⚠️ PROBLÈMES IDENTIFIÉS

1. Faux Positifs Massifs - "Noms Propres" (CRITIQUE)

Problème: Le pattern de détection des noms propres capture des termes médicaux légitimes.

Exemples de faux positifs détectés:

- "Note IDE" (19 occurrences) → Note infirmière
- "Hospitalisation MCO" → Type d'hospitalisation
- "Pose DMI" → Acte médical
- "Examen ORL" → Spécialité médicale
- "Avis ORL" → Consultation
- "Relais ATB" → Traitement antibiotique
- "Culture PUSS" → Examen bactériologique
- "Sortie ORALE" → Mode de sortie
- "Réalisé ORALE" → Examen réalisé
- "Apyrétique CRP" → Terme médical
- "Poursuite ATB" → Traitement
- "Rochers RDV" → Examen radiologique
- "Normal DESINFECTION" → Protocole
- "Normal COMPLETE" → État
- "Normal ENFANT" → État
- "Matricule INS" → Identifiant
- "Cou ORL" → Examen
- "Paris RUE" → Adresse (déjà masquée partiellement)
- "Hospitalier RPPS" → Identifiant (déjà masqué)
- "Essai AINS" → Traitement
- "Habite SAINT" → Ville (déjà masquée partiellement)
- "Dernier RDV" → Rendez-vous
- "Bétadine ORL" → Produit médical

Impact:

  • Pas de fuite réelle (ce sont des termes médicaux, pas des noms de personnes)
  • ⚠️ Faux positifs dans l'analyse (182 occurrences)
  • Lisibilité préservée (ces termes ne sont PAS masqués dans le texte final)

Cause: Le pattern regex \b[A-Z][a-z]{2,}\s+[A-Z]{2,}\b est trop large et capture:

  • Termes médicaux avec acronymes (Note IDE, Avis ORL)
  • Combinaisons de mots médicaux (Hospitalisation MCO)
  • Termes techniques (Culture PUSS, Relais ATB)

2. Détections Excessives de Noms (53.9%)

Statistiques:

  • 375 noms détectés sur 696 PII (53.9%)
  • Moyenne: 37.5 noms/document

Analyse:

{
  "NOM": 375,           // 53.9% - TRÈS ÉLEVÉ
  "DATE_NAISSANCE": 136, // 19.5% - Normal
  "ETAB": 41,           // 5.9% - Normal
  "CODE_POSTAL": 36,    // 5.2% - Normal
  "VILLE": 18,          // 2.6% - Normal
  "ADRESSE": 18,        // 2.6% - Normal
  "RPPS": 18,           // 2.6% - Normal
  "IPP": 16,            // 2.3% - Normal
  "TEL": 12,            // 1.7% - Normal
  "force_term": 10,     // 1.4% - Normal
  "DOSSIER": 7,         // 1.0% - Normal
  "NIR": 3,             // 0.4% - Normal
  "AGE": 2,             // 0.3% - Normal
  "EMAIL": 2,           // 0.3% - Normal
  "EPISODE": 2          // 0.3% - Normal
}

Problème Potentiel:

  • Trop de noms détectés peut indiquer:
    1. Bonne détection (si ce sont de vrais noms)
    2. ⚠️ Faux positifs (si ce sont des termes médicaux)
    3. ⚠️ Sur-détection (noms de médecins dans en-têtes répétés)

Besoin: Analyser manuellement un échantillon pour vérifier si ce sont de vrais noms ou des faux positifs.


3. Répétitions dans les En-têtes/Pieds de Page

Observation: Documents trackare avec beaucoup de détections (69.6 PII/document en moyenne).

Cause Probable:

  • En-têtes répétés sur chaque page (noms de médecins, établissement)
  • Pieds de page répétés (numéros, dates)
  • Sidebars avec informations répétées

Impact:

  • Pas de fuite (tout est masqué)
  • ⚠️ Statistiques gonflées (même PII compté plusieurs fois)
  • ⚠️ Lisibilité potentiellement affectée (trop de masquage)

POINTS POSITIFS

1. Aucune Fuite Réelle Détectée

  • 0 date de naissance en clair (contexte "Né(e) le")
  • 0 téléphone en clair
  • 0 email en clair
  • 0 adresse complète en clair
  • 0 CHCB en clair

2. Lisibilité Préservée

  • Ratio de masquage: 5.8% - 11.4% (acceptable, <20%)
  • Texte médical encore compréhensible
  • Termes médicaux préservés

3. Détections Fonctionnelles

  • Noms de personnes détectés
  • Dates de naissance détectées
  • Identifiants (RPPS, IPP, NIR) détectés
  • Coordonnées (téléphone, adresse) détectées

🎯 RECOMMANDATIONS D'AMÉLIORATION

Priorité 1: Réduire les Faux Positifs "Noms Propres"

Problème: Pattern trop large capture des termes médicaux.

Solution: Améliorer le filtre de stopwords médicaux.

Actions:

  1. Ajouter les termes médicaux courants à _MEDICAL_STOP_WORDS_SET:

    # Termes médicaux avec acronymes
    "note ide", "avis orl", "examen orl", "culture puss",
    "relais atb", "poursuite atb", "essai ains",
    
    # Combinaisons médicales
    "hospitalisation mco", "pose dmi", "sortie orale",
    "réalisé orale", "apyrétique crp",
    
    # Termes techniques
    "rochers rdv", "normal desinfection", "normal complete",
    "normal enfant", "matricule ins", "cou orl",
    "dernier rdv", "bétadine orl", "habite saint",
    
    # Autres
    "paris rue", "hospitalier rpps"
    
  2. Améliorer le pattern de détection pour exclure les acronymes médicaux:

    # Avant (trop large)
    r'\b[A-Z][a-z]{2,}\s+[A-Z]{2,}\b'
    
    # Après (plus précis)
    r'\b[A-Z][a-z]{2,}\s+[A-Z][a-z]{2,}\b'  # Exclut les ALL-CAPS
    
  3. Créer une liste d'acronymes médicaux à exclure:

    MEDICAL_ACRONYMS = {
        "IDE", "ORL", "MCO", "DMI", "ATB", "AINS", "CRP",
        "PUSS", "RDV", "INS", "RPPS", "IPP", "NIR"
    }
    

Impact Attendu:

  • Réduction de 80-90% des faux positifs "noms propres"
  • Amélioration de la précision globale
  • Pas d'impact sur la détection des vrais noms

Priorité 2: Optimiser la Détection des Répétitions

Problème: Mêmes PII détectés plusieurs fois (en-têtes/pieds de page).

Solution: Implémenter une dédoplication intelligente.

Actions:

  1. Détecter les zones répétées (en-têtes, pieds de page, sidebars)
  2. Compter chaque PII unique une seule fois dans les statistiques
  3. Masquer toutes les occurrences (sécurité)
  4. Rapporter uniquement les PII uniques dans l'audit

Impact Attendu:

  • Statistiques plus réalistes (37.5 → ~15 noms/document)
  • Meilleure compréhension de la qualité réelle
  • Pas d'impact sur la sécurité (tout reste masqué)

Priorité 3: Validation Manuelle sur Échantillon

Problème: Besoin de vérifier la qualité réelle sur des documents complets.

Actions:

  1. Sélectionner 10 documents aléatoires
  2. Vérifier manuellement:
    • Fuites réelles (PII en clair)
    • Faux positifs (termes médicaux masqués à tort)
    • Faux négatifs (PII manqués)
    • Lisibilité médicale
  3. Documenter les findings
  4. Ajuster les règles en conséquence

Impact Attendu:

  • Validation objective de la qualité
  • Identification de cas limites
  • Amélioration ciblée des règles

Priorité 4: Améliorer les Stopwords Médicaux

Problème: Liste actuelle incomplète pour le contexte médical français.

Actions:

  1. Extraire les termes médicaux des documents anonymisés
  2. Identifier les patterns récurrents:
    • Acronymes médicaux (ORL, IDE, MCO, ATB, AINS)
    • Termes techniques (culture, relais, avis, examen)
    • Combinaisons fréquentes (Note IDE, Avis ORL)
  3. Enrichir _MEDICAL_STOP_WORDS_SET
  4. Tester sur le corpus complet

Impact Attendu:

  • Réduction massive des faux positifs
  • Amélioration de la précision
  • Meilleure lisibilité

📊 Comparaison Avant/Après (Estimée)

Métrique Actuel Après Améliorations Amélioration
Faux Positifs "Noms" 182 ~20 -89%
Détections NOM/doc 37.5 ~15 -60%
Précision Globale ~70% ~95% +25 points
Lisibilité Bonne Excellente +
Fuites Réelles 0 0 =

🚀 Plan d'Action

Phase 1: Corrections Immédiates (1-2h)

  1. Enrichir _MEDICAL_STOP_WORDS_SET avec les termes identifiés
  2. Améliorer le pattern de détection des noms propres
  3. Créer la liste des acronymes médicaux
  4. Tester sur 10 documents

Phase 2: Validation (2-3h)

  1. Validation manuelle sur 10 documents aléatoires
  2. Mesurer la précision réelle
  3. Identifier les cas limites
  4. Ajuster les règles

Phase 3: Optimisation (3-4h)

  1. Implémenter la dédoplication des répétitions
  2. Optimiser les statistiques d'audit
  3. Améliorer le reporting
  4. Tester sur le corpus complet

Phase 4: Documentation (1h)

  1. Documenter les améliorations
  2. Mettre à jour les métriques
  3. Créer un guide de validation

Temps Total Estimé: 7-10 heures


📝 Conclusion

État Actuel

  • Sécurité: Aucune fuite réelle détectée
  • Lisibilité: Préservée (ratio <20%)
  • ⚠️ Précision: Faux positifs sur termes médicaux
  • ⚠️ Statistiques: Gonflées par répétitions

Prochaines Étapes

  1. Enrichir les stopwords médicaux (priorité 1)
  2. Améliorer le pattern de détection (priorité 1)
  3. Validation manuelle (priorité 3)
  4. Optimiser la dédoplication (priorité 2)

Objectif Final

  • Précision: >95% (actuellement ~70%)
  • Faux Positifs: <5% (actuellement ~30%)
  • Lisibilité: Excellente (actuellement bonne)
  • Fuites: 0 (actuellement 0)

Dernière mise à jour: 2 mars 2026
Auteur: Kiro AI Assistant
Statut: ⚠️ AMÉLIORATIONS EN COURS