Le mot "grand" en stopword filtrait les noms INSEE valides
comme GRAND, BILLON-GRAND lors du masquage NER. Sur le corpus
audit_30 : 17 fuites du nom "GRAND" dans
trackare-05012965-23060770.
Fix : suppression de la ligne (pipeline INSEE exige contexte
fort pour masquer, "grand" minuscule isolé ne sera pas FP).
Tests à venir : tests/unit/test_c8_grand_regression.py (Qwen)
Ref: docs/coordination/inbox/for-dom/2026-05-29_qwen_analyse-regression-grand.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
La cross-validation NER (_cross_validate_name_candidates) gère désormais
les décisions contextuelles nom/terme-médical. Les stop-words purement
médicaux sont supprimés :
- data/stopwords_manuels.txt : 1307 → 233 entrées (uniquement les mots
ambigus qui sont aussi des noms/prénoms INSEE)
- _MEDICAL_STOP_WORDS_SET hardcodé : ~400 → 80 entrées essentielles
(mots courts, formes galéniques, titres hospitaliers)
- Les enrichissements BDPM (~7300), edsnlp (~2000) et fichier externe
sont conservés tels quels
Score qualité inchangé : 100/100 (A+), 0 fuite, 0 faux positif.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Toutes les listes de règles sont maintenant modifiables sans toucher
au code Python :
Fichiers de données (data/) :
- stopwords_manuels.txt : 1307 termes médicaux/techniques
- villes_blacklist.txt : 117 communes à ne pas matcher
- medicaments_stopwords.txt : 7312 médicaments BDPM (existant)
- Chargés automatiquement au démarrage
Config YAML (dictionnaires.yml) :
- additional_stopwords : mots supplémentaires par établissement
- additional_villes_blacklist : villes supplémentaires
- whitelist_phrases : phrases à ne jamais anonymiser
- force_mask_terms : mots à toujours masquer
Chaîne de chargement : code dur → fichiers data/ → YAML config
Les 3 niveaux se cumulent (union).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>