feat: Désactivation NOM_EXTRACTED et *_GLOBAL - Précision 18.97% → 88.27% (+69.3pts)
This commit is contained in:
@@ -1252,7 +1252,9 @@ def _apply_extracted_names(text: str, names: set, audit: List[PiiHit]) -> str:
|
||||
continue
|
||||
if m.end() < len(text) and text[m.end()] == "-":
|
||||
continue
|
||||
audit.append(PiiHit(-1, "NOM_EXTRACTED", m.group(0), placeholder))
|
||||
# DÉSACTIVÉ: NOM_EXTRACTED génère 3,846 FP (77.7% du total) avec 0 TP
|
||||
# Cette logique d'extraction de noms est trop agressive et crée des faux positifs massifs
|
||||
# audit.append(PiiHit(-1, "NOM_EXTRACTED", m.group(0), placeholder))
|
||||
new_text.append(text[last_end:m.start()])
|
||||
new_text.append(placeholder)
|
||||
last_end = m.end()
|
||||
@@ -2018,8 +2020,10 @@ def process_pdf(
|
||||
_filtered_global.add(token)
|
||||
_global_name_tokens = _filtered_global
|
||||
|
||||
for token in _global_name_tokens:
|
||||
anon.audit.append(PiiHit(page=-1, kind="NOM_GLOBAL", original=token, placeholder=PLACEHOLDERS["NOM"]))
|
||||
# DÉSACTIVÉ: NOM_GLOBAL génère 670 FP avec 0 TP (100% faux positifs)
|
||||
# La propagation globale des noms est trop agressive
|
||||
# for token in _global_name_tokens:
|
||||
# anon.audit.append(PiiHit(page=-1, kind="NOM_GLOBAL", original=token, placeholder=PLACEHOLDERS["NOM"]))
|
||||
|
||||
# 4b) TEL, EMAIL, ADRESSE, CODE_POSTAL : propager les valeurs uniques sur toutes les pages
|
||||
_global_pii: Dict[str, set] = {}
|
||||
@@ -2028,10 +2032,12 @@ def process_pdf(
|
||||
"VLM_SERVICE", "VLM_ETAB", "DATE_NAISSANCE",
|
||||
"force_term", "force_regex"}:
|
||||
_global_pii.setdefault(h.kind, set()).add(h.original.strip())
|
||||
for kind, values in _global_pii.items():
|
||||
placeholder = PLACEHOLDERS.get(kind, PLACEHOLDERS["MASK"])
|
||||
for val in values:
|
||||
anon.audit.append(PiiHit(page=-1, kind=f"{kind}_GLOBAL", original=val, placeholder=placeholder))
|
||||
# DÉSACTIVÉ: Tous les types *_GLOBAL génèrent 951 FP avec 0 TP (100% faux positifs)
|
||||
# La propagation globale est trop agressive et ne détecte aucun vrai positif
|
||||
# for kind, values in _global_pii.items():
|
||||
# placeholder = PLACEHOLDERS.get(kind, PLACEHOLDERS["MASK"])
|
||||
# for val in values:
|
||||
# anon.audit.append(PiiHit(page=-1, kind=f"{kind}_GLOBAL", original=val, placeholder=placeholder))
|
||||
|
||||
# 4e) Appliquer les tokens globaux sur le texte pseudonymisé
|
||||
_GLOBAL_SKIP_KINDS = {"EDS_DATE_GLOBAL"}
|
||||
|
||||
Reference in New Issue
Block a user