From da1368eb0ee943e3bdabcae568c54e7394a78ac7 Mon Sep 17 00:00:00 2001 From: Nacim Date: Tue, 24 Jun 2025 15:35:52 +0200 Subject: [PATCH] Update default.yaml --- conf/default.yaml | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/conf/default.yaml b/conf/default.yaml index 5e8b789..7b005f9 100644 --- a/conf/default.yaml +++ b/conf/default.yaml @@ -78,17 +78,32 @@ recognizer_registry: patterns: [{name: IBAN Pattern, regex: "\\b[A-Z]{2}[0-9]{2}\\s?(?:[A-Z0-9]{4}\\s?){2,7}[A-Z0-9]{1,4}\\b", score: 0.95}] context: ["iban", "compte"] - - name: SWIFTRecognizer + # --- DÉTECTEUR SWIFT CORRIGÉ --- + # Nous écrasons le détecteur par défaut de Presidio ("SwiftCodeRecognizer") + # avec notre propre version, plus intelligente et contextuelle. + - name: SwiftCodeRecognizer # <-- NOM EXACT du détecteur Presidio pour l'écraser supported_language: fr supported_entity: SWIFT_CODE patterns: - - name: BIC/SWIFT Code + - name: BIC/SWIFT Code with context and deny list # La regex est correcte, mais son score est intentionnellement très bas. regex: "\\b[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}(?:[A-Z0-9]{3})?\\b" - score: 0.01 # <-- LE CHANGEMENT CLÉ. Le match seul n'est plus suffisant. - # Le contexte devient essentiel pour augmenter le score au-dessus du seuil. - # J'ai ajouté "code swift" pour plus de robustesse. - context: ["bic", "swift", "code swift"] + score: 0.01 # Le match seul ne vaut presque rien. + + # LISTE D'EXCLUSION : Ces mots, même s'ils correspondent à la regex, + # ne seront JAMAIS considérés comme un SWIFT code. + deny_list: [ + "CONTRAT", "DOCUMENT", "DOCUMENTS", "CONSTITUE", "D'INVESTISSEMENT", + "UTILISANT", "DEVRAIENT", "ENVISAGER", "CONSEIL", "QUALIFIÉS", "ÉVALUER", + "IMPLICATIONS", "ACCUMULE", "OBLIGATIONS", "FINANCEMENT", "EXCLUANT", + "CONVERTIBLE", "INSTRUMENTS", "CIRCULATION", "ENTREPRISES", "COMMERCE", + "ÉVÉNEMENT", "PAYABLES", "INCLUANT", "JURIDICTION", "INFORMATION", + "FOURNIRA", "DISPOSITIONS", "RELATIFS", "RELATION", "PRESTATAIRE", + "SERVICES", "RECONNAÎT" + ] + + # Le contexte reste essentiel pour valider une détection. + context: ["bic", "swift", "code swift"] - name: SmartOrganizationRecognizer supported_language: fr