Files
anonymisation/config/dictionnaires.yml
Domi31tls ac5c35ae2d feat: externalisation des listes — stop-words et villes modifiables sans code
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>
2026-03-31 07:45:42 +02:00

79 lines
1.8 KiB
YAML

version: 1
encoding: utf-8
normalization: NFKC
whitelist:
sections_titres:
- DIM
- GHM
- GHS
- RUM
- COMPTE
- RENDU
- DIAGNOSTIC
noms_maj_excepts:
- Médecin DIM
- Praticien conseil
org_gpe_keep: false
blacklist:
force_mask_terms:
- CENTRE HOSPITALIER COTE BASQUE
- CENTRE HOSPITALIER DE LA COTE BASQUE
- POLYCLINIQUE COTE BASQUE SUD
- POLYCLINIQUE CÔTE BASQUE SUD
- CHCB
- '640780417'
- 'Dates du séjour :'
- CONCERTATION
- BAYONNE CEDEX
- BAYONNE
- '64109'
- LABORATOIRE de BIOLOGIE MEDICALE
- REED LES EMBRUNS
- LES EMBRUNS
- EMBRUNS BIDART
force_mask_regex:
- '[Ee]mbruns'
- 'Centre\s+Hospitalier\s+(?:de\s+(?:la\s+)?)?C[oôÔ]te\s+Basque'
- 'Polyclinique\s+C[oôÔ]te\s+Basque\s+Sud'
- '13\s*,?\s*Avenue\s+de\s+l.Interne\s+J\.?\s*LOEB\s+BP\s*\d+'
kv_labels_preserve:
- FINESS
- IPP
- N° OGC
- Etablissement
regex_overrides:
- name: OGC_court
pattern: \b(?:N°\s*)?OGC\s*[:\-]?\s*([A-Za-z0-9\-]{1,3})\b
placeholder: '[OGC]'
flags:
- IGNORECASE
# Phrases à ne JAMAIS anonymiser (faux positifs récurrents)
# Ajouter ici les expressions qui sont masquées à tort.
# La correspondance est insensible à la casse.
whitelist_phrases:
- "classification internationale"
- "prise en charge"
- "bas de contention"
- "date de naissance"
- "lieu de naissance"
- "ville de résidence"
- "date de sortie"
- "date d'admission"
- "code postal"
# Mots supplémentaires à ne jamais masquer comme noms de personnes
# (complète les 9000+ stop-words intégrés)
additional_stopwords: []
# Exemple :
# - "votre_mot"
# Villes supplémentaires à ne jamais matcher comme lieux
# (complète les 115+ villes blacklistées intégrées)
additional_villes_blacklist: []
# Exemple :
# - "VOTRE_VILLE"
flags:
case_insensitive: true
unicode_word_boundaries: true
regex_engine: python