fix(detect): RPPS avec qualificateur (RPPS prescripteur :, RPPS de garde :…) (#1)

Étend `RE_RPPS` pour tolérer 0 à 3 mots qualificateurs entre `RPPS`
et le séparateur `:` ou `-`. Couvre les variantes observées :
- RPPS prescripteur :
- RPPS du médecin signataire :
- RPPS de garde -
- N° RPPS :

Si un qualificateur est présent, le séparateur (`:` ou `-`) devient
obligatoire pour éviter d'aspirer du narratif (faux positif type
"Le RPPS est consulté pour vérifier 12345678901 dans la base").

La lambda `_repl_rpps` reconstruit `RPPS : [RPPS]` en sortie : le
qualificateur est consommé mais perdu (pas de fuite, choix cosmétique).

Cas 005_bacterio_complete passe désormais (retiré de KNOWN_FAILURES).
La fuite `10101010101` derrière `RPPS prescripteur :` est masquée.

Cohérent avec le cadrage section 10.1 (règle cœur générique
applicable à tout établissement de santé français — pas de
spécificité locale).

Tests : 72 passed, 1 xfailed (avant : 71 passed, 2 xfailed).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-27 22:33:01 +02:00
parent 7242b5350e
commit c7e71072e7
4 changed files with 22 additions and 11 deletions

View File

@@ -30,10 +30,6 @@ from tools.run_synthetic_review_corpus import ( # noqa: E402
KNOWN_FAILURES: dict[str, str] = {
"005_bacterio_complete": (
"RPPS avec qualificateur (`RPPS prescripteur :`) non détecté — "
"fuite identifiant médecin."
),
"009_multi_etablissements": (
"Fuites résiduelles : suffixe `de Bordeaux` après "
"[ETABLISSEMENT], CHCB en fin de phrase. À traiter via "