This commit is contained in:
Biqoz
2025-09-15 19:04:38 +02:00
parent 3e70181b58
commit 3f9c007c9e
46 changed files with 919 additions and 146 deletions

View File

@@ -0,0 +1,34 @@
# Recognizer pour formes juridiques belges
recognizer_registry:
recognizers:
- name: BelgianCompanyFormsRecognizer
supported_language: fr
supported_entity: SOCIETE_BELGE
patterns:
- name: SRL avec nom
regex: "\\b(?:SRL|Srl)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s&'-]+\\b"
score: 0.95
- name: SA avec nom
regex: "\\b(?:SA|Sa)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s&'-]+\\b"
score: 0.95
- name: ASBL avec nom
regex: "\\b(?:ASBL|Asbl)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s&'-]+\\b"
score: 0.95
- name: SC avec nom
regex: "\\b(?:SC|Sc)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s&'-]+\\b"
score: 0.9
- name: SNC avec nom
regex: "\\b(?:SNC|Snc)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s&'-]+\\b"
score: 0.9
- name: SComm avec nom
regex: "\\b(?:SComm|Scomm)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s&'-]+\\b"
score: 0.9
context:
[
"société",
"entreprise",
"forme juridique",
"statut",
"commercial",
"association",
]

View File

@@ -3,7 +3,7 @@ recognizer_registry:
recognizers:
- name: BelgianEnterpriseRecognizer
supported_language: fr
supported_entity: BE_ENTERPRISE_NUMBER
supported_entity: NUMERO_ENTREPRISE_BELGE
patterns:
- name: Numéro BCE avec deux points
regex: "(?<=\\bBCE\\s*:\\s*)((BE)?\\s?0\\d{3}[\\.\\s]?\\d{3}[\\.\\s]?\\d{3})\\b"
@@ -20,5 +20,4 @@ recognizer_registry:
- name: Numéro patronal
regex: "\\b(?:numéro\\s+)?patronal\\s*:?\\s*\\d{7}\\b"
score: 0.9
context:
["TVA", "intracommunautaire", "ONSS", "entreprise", "patronal"]
context: ["TVA", "intracommunautaire", "ONSS", "entreprise", "patronal"]

View File

@@ -3,7 +3,7 @@ recognizer_registry:
recognizers:
- name: SmartOrganizationRecognizer
supported_language: fr
supported_entity: ORGANIZATION
supported_entity: ORGANISATION
patterns:
# Noms avec suffixes typiques d'entreprise
- name: Noms entreprise avec suffixes

View File

@@ -3,7 +3,7 @@ recognizer_registry:
recognizers:
- name: BelgianProfessionalIdRecognizer
supported_language: fr
supported_entity: BE_PROFESSIONAL_ID
supported_entity: ID_PROFESSIONNEL_BELGE
patterns:
- name: Numéro IEC avec deux points
regex: "(?<=\\bIEC\\s*:\\s*)\\d{6}\\b"
@@ -17,4 +17,4 @@ recognizer_registry:
- name: Numéro de médecin
regex: "\\b(?:Dr\\.|médecin)\\s*n°\\s*\\d{5,7}\\b"
score: 0.85
context: ["expert-comptable", "IEC", "avocat", "médecin", "professionnel"]
context: ["IEC", "avocat", "médecin", "professionnel"]

View File

@@ -0,0 +1,23 @@
# Recognizer pour formes juridiques françaises
recognizer_registry:
recognizers:
- name: FrenchCompanyFormsRecognizer
supported_language: fr
supported_entity: SOCIETE_FRANCAISE
patterns:
- name: SARL avec nom
regex: "\\b(?:SARL|Sarl)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s&'-]+\\b"
score: 0.95
- name: SAS avec nom
regex: "\\b(?:SAS|Sas)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s&'-]+\\b"
score: 0.95
- name: SA avec nom
regex: "\\b(?:SA|Sa)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s&'-]+\\b"
score: 0.9
- name: EURL avec nom
regex: "\\b(?:EURL|Eurl)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s&'-]+\\b"
score: 0.95
- name: SCI avec nom
regex: "\\b(?:SCI|Sci)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s&'-]+\\b"
score: 0.9
context: ["société", "entreprise", "forme juridique", "statut", "commercial"]

View File

@@ -3,7 +3,7 @@ recognizer_registry:
recognizers:
- name: FrenchSIRETRecognizer
supported_language: fr
supported_entity: FR_SIRET
supported_entity: SIRET_SIREN_FRANCAIS
patterns:
- name: SIRET complet
regex: "\\b[0-9]{3}\\s?[0-9]{3}\\s?[0-9]{3}\\s?[0-9]{5}\\b"

View File

@@ -0,0 +1,20 @@
# Recognizer pour clés API et secrets techniques
recognizer_registry:
recognizers:
- name: APISecretsRecognizer
supported_language: fr
supported_entity: CLE_API_SECRETE
patterns:
- name: Clé API générique
regex: "\\b(?:API[_\\s]?KEY|api[_\\s]?key)\\s*[=:]\\s*[A-Za-z0-9\\-_]{16,64}\\b"
score: 1.0
- name: Token d'accès
regex: "\\b(?:access[_\\s]?token|token)\\s*[=:]\\s*[A-Za-z0-9\\-_\\.]{20,128}\\b"
score: 0.95
- name: Secret AWS
regex: "\\b(?:AWS[_\\s]?SECRET|aws[_\\s]?secret)\\s*[=:]\\s*[A-Za-z0-9/+=]{40}\\b"
score: 1.0
- name: Clé privée
regex: "\\b(?:private[_\\s]?key|secret[_\\s]?key)\\s*[=:]\\s*[A-Za-z0-9\\-_]{16,64}\\b"
score: 0.95
context: ["API", "clé", "secret", "token", "authentification", "accès"]

View File

@@ -0,0 +1,20 @@
# Recognizer pour contrats et références internes
recognizer_registry:
recognizers:
- name: ContractReferenceRecognizer
supported_language: fr
supported_entity: REFERENCE_CONTRAT
patterns:
- name: Numéro de contrat
regex: "\\b(?:contrat|contract)\\s*n?°?\\s*:?\\s*[A-Z0-9\\-/]{4,15}\\b"
score: 0.95
- name: Référence interne
regex: "\\b(?:ref|référence|dossier)\\s*:?\\s*[A-Z]{2,4}[\\-/]?[0-9]{4,8}\\b"
score: 0.9
- name: ID transaction
regex: "\\b(?:transaction|trans)\\s*ID\\s*:?\\s*[A-Z0-9]{6,12}\\b"
score: 0.95
- name: Numéro de facture
regex: "\\b(?:facture|invoice)\\s*n?°?\\s*:?\\s*[A-Z0-9\\-/]{4,12}\\b"
score: 0.9
context: ["contrat", "référence", "dossier", "facture", "transaction", "commande"]

View File

@@ -0,0 +1,20 @@
# Recognizer pour identifiants employés et clients
recognizer_registry:
recognizers:
- name: EmployeeClientIDRecognizer
supported_language: fr
supported_entity: ID_PROFESSIONNEL_BELGE
patterns:
- name: Matricule employé
regex: "\\b(?:matricule|employee|emp)\\s*:?\\s*[A-Z0-9]{4,10}\\b"
score: 0.95
- name: ID client
regex: "\\b(?:client|customer)\\s*ID\\s*:?\\s*[A-Z0-9]{4,12}\\b"
score: 0.95
- name: Code utilisateur
regex: "\\b(?:user|utilisateur)\\s*:?\\s*[a-z]+\\.[a-z]+\\b"
score: 0.9
- name: Identifiant RH
regex: "\\b(?:RH|HR)[\\-/]?[0-9]{4,8}\\b"
score: 0.85
context: ["matricule", "employé", "client", "utilisateur", "ID", "identifiant"]

View File

@@ -0,0 +1,29 @@
# Recognizer pour montants financiers et devises
recognizer_registry:
recognizers:
- name: FinancialAmountRecognizer
supported_language: fr
supported_entity: MONTANT_FINANCIER
patterns:
- name: Montant avec devise EUR
regex: "\\b(?:[0-9]{1,3}(?:[\\s.,][0-9]{3})*|[0-9]+)(?:[.,][0-9]{1,2})?\\s*€\\b"
score: 0.95
- name: Montant avec devise USD
regex: "\\b(?:[0-9]{1,3}(?:[\\s.,][0-9]{3})*|[0-9]+)(?:[.,][0-9]{1,2})?\\s*(?:USD|\\$)\\b"
score: 0.95
- name: Montant abrégé avec K/M
regex: ""
score: 0.9
- name: Salaire annuel
regex: ""
score: 0.95
context:
[
"montant",
"prix",
"coût",
"budget",
"salaire",
"rémunération",
"facture",
]

View File

@@ -5,30 +5,52 @@ recognizer_registry:
supported_language: fr
supported_entity: MARKET_SHARE
patterns:
# Pourcentages de marché
# Pourcentages simples (nouveau pattern plus permissif)
- name: Simple Percentage
regex: "\\b\\d{1,2}(?:[,.]\\d{1,2})?%\\b"
score: 0.7
# Part de marché explicite
- name: Explicit Market Share
regex: "\\b(?:part\\s+de\\s+marché|parts?\\s+de\\s+marché)\\b"
score: 0.9
# Pourcentages de marché avec contexte
- name: Market Share Percentage
regex: "\\b(?:détient|possède|contrôle|représente)?\\s*(?:environ\\s+)?(?:\\d{1,2}(?:[,.]\\d{1,2})?%)\\s*(?:de\\s+(?:part\\s+de\\s+)?marché|du\\s+marché|de\\s+parts?)\\b"
score: 0.9
# Positions de marché
- name: Market Position
regex: "\\b(?:leader|numéro\\s+\\d+|\\d+(?:er|ème)\\s+acteur|position\\s+dominante|monopole)\\s+(?:du\\s+)?(?:marché|secteur)\\b"
score: 0.85
# Parts relatives
- name: Relative Market Share
regex: "\\b(?:majoritaire|minoritaire|principale|significative)\\s+(?:part\\s+de\\s+)?marché\\b"
score: 0.8
# Données de concentration
- name: Market Concentration
regex: "\\b(?:concentration|consolidation|fusion)\\s+(?:du\\s+)?marché\\b"
score: 0.75
# Chiffres d'affaires relatifs
- name: Revenue Share
regex: "\\b(?:\\d{1,2}(?:[,.]\\d{1,2})?%)\\s*(?:du\\s+)?(?:chiffre\\s+d'affaires|CA|revenus?)\\s+(?:du\\s+)?(?:marché|secteur)\\b"
score: 0.85
context:
["part de marché", "position concurrentielle", "leader", "concurrent", "secteur", "industrie", "chiffre d'affaires", "revenus", "concentration", "monopole", "oligopole"]
[
"part de marché",
"position concurrentielle",
"leader",
"concurrent",
"secteur",
"industrie",
"chiffre d'affaires",
"revenus",
"concentration",
"monopole",
"oligopole",
]

View File

@@ -0,0 +1,71 @@
# Recognizer pour données professionnelles génériques (France/Belgique)
recognizer_registry:
recognizers:
# Recognizer pour titres de civilité
- name: GenericCivilityTitleRecognizer
supported_language: fr
supported_entity: TITRE_CIVILITE
patterns:
- name: Titres de civilité
regex: "\\b(?:M\\.|Mme|Mlle|Dr\\.|Pr\\.|Prof\\.|Docteur|Professeur|Maître|Me\\.)(?=\\s+[A-ZÀ-Ÿ])"
score: 0.9
- name: Titres honorifiques
regex: "\\b(?:Monsieur|Madame|Mademoiselle)(?=\\s+[A-ZÀ-Ÿ])"
score: 0.85
context: ["identité", "titre", "civilité"]
# Recognizer pour données professionnelles générales
- name: GenericProfessionalDataRecognizer
supported_language: fr
supported_entity: DONNEES_PROFESSIONNELLES
patterns:
- name: Titre de poste
regex: "\\b(?:directeur|directrice|manager|responsable|chef|ingénieur|ingénieure|consultant|consultante)\\s+[a-zà-ÿ\\s]+\\b"
score: 0.8
- name: Département
regex: "\\b(?:département|service|division)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s]+\\b"
score: 0.75
- name: Adresse professionnelle
regex: "\\b(?:siège\\s+social|adresse\\s+professionnelle)\\s*:?\\s*[0-9]{1,4}\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s'-]+\\b"
score: 0.9
- name: Email professionnel
regex: "\\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}\\b"
score: 0.85
- name: Numéro IEC
regex: "\\b(?:n°\\s*IEC|numéro\\s*IEC|IEC)\\s*:?\\s*([0-9]{6,8})\\b"
score: 0.9
- name: Avocat
regex: "\\b(?:avocat|avocate)\\b"
score: 0.9
- name: Expert-comptable
regex: "\\b(?:expert-comptable|expert\\s+comptable)\\b"
score: 0.99
- name: Notaire
regex: "\\b(?:notaire)\\b"
score: 0.95
- name: Médecin
regex: "\\b(?:médecin|docteur\\s+en\\s+médecine)\\b"
score: 0.95
# Données spécifiques belges intégrées
- name: Numéro ONSS employeur
regex: "\\b(?:ONSS|onss)\\s*:?\\s*[0-9]{7}\\b"
score: 0.95
- name: Numéro patronal
regex: "\\b(?:numéro\\s+)?patronal\\s*:?\\s*[0-9]{7}\\b"
score: 0.9
context:
[
"professionnel",
"travail",
"bureau",
"entreprise",
"poste",
"fonction",
"réglementé",
"ordre",
"diplôme",
"ONSS",
"patronal",
"employeur",
"siège social"
]

View File

@@ -0,0 +1,20 @@
# Recognizer pour secrets d'affaires et projets
recognizer_registry:
recognizers:
- name: TradeSecretsRecognizer
supported_language: fr
supported_entity: SECRET_COMMERCIAL
patterns:
- name: Nom de projet interne
regex: "\\b(?:projet|project)\\s+[A-Z][a-zA-Z]{3,15}\\b"
score: 0.85
- name: Code projet
regex: "\\b(?:projet|project)\\s*:?\\s*[A-Z]{2,4}[\\-/]?[0-9]{2,4}\\b"
score: 0.9
- name: Plan stratégique
regex: "\\b(?:plan|stratégie)\\s+(?:stratégique|business)\\s+[0-9]{4}\\b"
score: 0.9
- name: Formule interne
regex: "\\b(?:formule|recette|procédé)\\s+[A-Z][\\-0-9A-Z]{2,10}\\b"
score: 0.85
context: ["projet", "stratégique", "confidentiel", "interne", "secret", "propriétaire"]

View File

@@ -3,7 +3,7 @@ recognizer_registry:
recognizers:
- name: BelgianAddressRecognizer
supported_language: fr
supported_entity: BE_ADDRESS
supported_entity: ADRESSE_BELGE
patterns:
# Pattern principal : numéro + rue + code postal + ville (SANS contexte)
- name: Adresse complète avec numéro devant

View File

@@ -3,7 +3,7 @@ recognizer_registry:
recognizers:
- name: BelgianIDCardRecognizer
supported_language: fr
supported_entity: BE_ID_CARD
supported_entity: CARTE_IDENTITE_BELGE
patterns:
- name: Carte d'identité belge
regex: "\\b[0-9]{3}\\-[0-9]{7}\\-[0-9]{2}\\b"
@@ -15,7 +15,7 @@ recognizer_registry:
- name: BelgianPassportRecognizer
supported_language: fr
supported_entity: BE_PASSPORT
supported_entity: PASSEPORT_BELGE
patterns:
- name: Passeport belge
regex: "\\b[A-Z]{2}[0-9]{6}\\b"

View File

@@ -3,7 +3,7 @@ recognizer_registry:
recognizers:
- name: BelgianNRNRecognizer
supported_language: fr
supported_entity: BE_NATIONAL_REGISTER_NUMBER
supported_entity: REGISTRE_NATIONAL_BELGE
patterns:
- name: NRN avec points et tiret
regex: "\\b[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}-[0-9]{3}\\.[0-9]{2}\\b"

View File

@@ -3,7 +3,7 @@ recognizer_registry:
recognizers:
- name: BelgianPhoneRecognizer
supported_language: fr
supported_entity: BE_PHONE_NUMBER
supported_entity: TELEPHONE_BELGE
patterns:
# Patterns avec contexte Tel: et Tél:
- name: Téléphone fixe avec contexte Tel
@@ -20,7 +20,7 @@ recognizer_registry:
score: 0.99
# Patterns généraux (sans contexte spécifique)
- name: Téléphone fixe belge
regex: '(?<!BCE\s*:?\s*)\b0[1-9](?:[./\s]?\d{2,3}){3}(?=\b|\)|$|[.,;])(?!.*BCE)'
regex: '(?<!BCE\s*:?\s*)(?<!FR[0-9]{2}\s[0-9]{4}\s[0-9]{4}\s)\b0[1-9](?:[./\s]?\d{2,3}){3}(?=\b|\)|$|[.,;])(?!.*BCE)(?!\s[0-9A-Z]{4}\s[0-9A-Z]{3})'
score: 0.95
- name: Mobile belge
regex: '\b04[0-9]{2}[./\s]?[0-9]{2}[./\s]?[0-9]{2}[./\s]?[0-9]{2}(?=\b|\)|$|[.,;])'

View File

@@ -0,0 +1,20 @@
# Recognizer pour numéros de TVA belges
recognizer_registry:
recognizers:
- name: BelgianVATRecognizer
supported_language: fr
supported_entity: TVA_BELGE
patterns:
- name: TVA belge format standard
regex: "\\bBE[0-9]{4}\\.[0-9]{3}\\.[0-9]{3}\\b"
score: 1.0
- name: TVA belge compact
regex: "\\bBE[0-9]{10}\\b"
score: 0.95
- name: TVA avec contexte
regex: "\\b(?:TVA|tva)\\s*:?\\s*BE[0-9]{4}\\.[0-9]{3}\\.[0-9]{3}\\b"
score: 1.0
- name: Numéro d'entreprise BCE
regex: "\\b(?:BCE|bce)\\s*:?\\s*BE[0-9]{4}\\.[0-9]{3}\\.[0-9]{3}\\b"
score: 1.0
context: ["TVA", "BCE", "numéro d'entreprise", "identification", "intracommunautaire"]

View File

@@ -3,12 +3,18 @@ recognizer_registry:
recognizers:
- name: FrenchAddressRecognizer
supported_language: fr
supported_entity: FR_ADDRESS
supported_entity: ADRESSE_FRANCAISE
patterns:
- name: Adresse française complète
regex: "\\b\\d{1,4}(?:bis|ter|quater)?\\s+(?:rue|avenue|boulevard|place|impasse|allée|chemin|route)\\s+[A-Za-zà-ÿ\\s'-]+,\\s*[0-9]{5}\\s+[A-Za-zà-ÿ\\s'-]+\\b"
- name: Adresse française complète avec virgule
regex: "\\b\\d{1,4}(?:bis|ter|quater)?\\s+(?:rue|avenue|boulevard|place|impasse|allée|chemin|route|square|villa|cité|passage|quai|cours|esplanade)\\s+[A-Za-zà-ÿ\\s'-]+?,\\s*[0-9]{5}\\s+[A-Za-zà-ÿ'-]+(?=\\s*$|\\s*\\n|\\s*-)"
score: 0.95
- name: Code postal français
regex: "\\b[0-9]{5}\\b"
- name: Adresse française sans virgule
regex: "\\b\\d{1,4}(?:bis|ter|quater)?\\s+(?:rue|avenue|boulevard|place|impasse|allée|chemin|route|square|villa|cité|passage|quai|cours|esplanade)\\s+[A-Za-zà-ÿ\\s'-]+?\\s+[0-9]{5}\\s+[A-Za-zà-ÿ'-]+(?=\\s*$|\\s*\\n|\\s*-)"
score: 0.9
- name: Numéro et type de voie
regex: "\\b\\d{1,4}(?:bis|ter|quater)?\\s+(?:rue|avenue|boulevard|place|impasse|allée|chemin|route|square|villa|cité|passage|quai|cours|esplanade)\\s+[A-Za-zà-ÿ\\s'-]{3,30}(?=\\s*[-,]|\\s*$|\\s+[0-9]{5}|\\s*\\n)"
score: 0.65
- name: Code postal français (isolé)
regex: "(?<!\\d{1,4}(?:bis|ter|quater)?\\s+(?:rue|avenue|boulevard|place|impasse|allée|chemin|route|square|villa|cité|passage|quai|cours|esplanade)\\s+[A-Za-zà-ÿ\\s'-]+?,\\s*)\\b[0-9]{5}\\b(?!\\s+[A-Za-zà-ÿ'-]+)"
score: 0.6
context: ["adresse", "domicile", "résidence", "siège social"]

View File

@@ -3,12 +3,18 @@ recognizer_registry:
recognizers:
- name: FrenchIDCardRecognizer
supported_language: fr
supported_entity: FR_ID_CARD
supported_entity: CARTE_IDENTITE_FRANCAISE
patterns:
- name: Numéro CNI nouveau format
- name: Numéro CNI nouveau format (9 chiffres)
regex: "\\b[0-9]{9}\\b"
score: 0.98
- name: Numéro CNI ancien format (12 chiffres)
regex: "\\b[0-9]{12}\\b"
score: 0.85
- name: Numéro CNI avec espaces
score: 0.95
- name: Numéro CNI avec espaces (nouveau)
regex: "\\b[0-9]{3}\\s[0-9]{3}\\s[0-9]{3}\\b"
score: 0.99
- name: Numéro CNI avec espaces (ancien)
regex: "\\b[0-9]{4}\\s[0-9]{4}\\s[0-9]{4}\\b"
score: 0.9
context:
@@ -16,7 +22,7 @@ recognizer_registry:
- name: FrenchPassportRecognizer
supported_language: fr
supported_entity: FR_PASSPORT
supported_entity: PASSEPORT_FRANCAIS
patterns:
- name: Numéro de passeport français
regex: "\\b[0-9]{2}[A-Z]{2}[0-9]{5}\\b"
@@ -28,7 +34,7 @@ recognizer_registry:
- name: FrenchDriverLicenseRecognizer
supported_language: fr
supported_entity: FR_DRIVER_LICENSE
supported_entity: PERMIS_CONDUIRE_FRANCAIS
patterns:
- name: Permis de conduire français
regex: "\\b[0-9]{12}\\b"

View File

@@ -3,7 +3,7 @@ recognizer_registry:
recognizers:
- name: FrenchTaxIDRecognizer
supported_language: fr
supported_entity: FR_TAX_ID
supported_entity: NUMERO_FISCAL_FRANCAIS
patterns:
- name: Numéro fiscal français
regex: "\\b[0-9]{13}\\b"
@@ -15,7 +15,7 @@ recognizer_registry:
- name: FrenchBankAccountRecognizer
supported_language: fr
supported_entity: FR_BANK_ACCOUNT
supported_entity: COMPTE_BANCAIRE_FRANCAIS
patterns:
- name: RIB français
regex: "\\b[0-9]{5}\\s[0-9]{5}\\s[0-9]{11}\\s[0-9]{2}\\b"

View File

@@ -0,0 +1,20 @@
# Recognizer pour numéros de téléphone français
recognizer_registry:
recognizers:
- name: FrenchPhoneRecognizer
supported_language: fr
supported_entity: TELEPHONE_FRANCAIS
patterns:
- name: Téléphone français avec indicatif international
regex: "\\b(?:\\+33|0033|33)\\s?0?[1-9](?:[\\s\\-\\.]?[0-9]{2}){4}\\b"
score: 1.0
- name: Téléphone français format standard
regex: "\\b(?<!\\s)(?<!boulevard\\s)(?<!avenue\\s)(?<!rue\\s)(?<!place\\s)0[1-9](?:[\\s\\-\\.]?[0-9]{2}){4}(?![0-9])(?!\\s[A-Za-z])(?!\\s[A-Z][a-z])\\b"
score: 0.85
- name: Mobile français
regex: "\\b(?<!boulevard\\s)(?<!avenue\\s)(?<!rue\\s)(?<!place\\s)(?:(?:\\+33|0033|33)\\s?0?[67]|0[67])(?:[\\s\\-\\.]?[0-9]{2}){4}(?![0-9])(?!\\s[A-Za-z])(?!\\s[A-Z][a-z])\\b"
score: 0.95
- name: Téléphone avec parenthèses
regex: "\\b\\(0[1-9]\\)(?:[\\s\\-\\.]?[0-9]{2}){4}\\b"
score: 0.9
context: ["téléphone", "tél", "mobile", "portable", "fixe", "numéro"]

View File

@@ -3,7 +3,7 @@ recognizer_registry:
recognizers:
- name: FrenchINSEERecognizer
supported_language: fr
supported_entity: FR_SOCIAL_SECURITY_NUMBER
supported_entity: NUMERO_SECURITE_SOCIALE_FRANCAIS
patterns:
- name: INSEE complet avec espaces
regex: "\\b[12]\\s*[0-9]{2}\\s*(?:0[1-9]|1[0-2])\\s*(?:2[ABab]|[0-9]{2})\\s*[0-9]{3}\\s*[0-9]{3}[\\s]?[0-9]{2}\\b"

View File

@@ -0,0 +1,17 @@
# Recognizer pour numéros de TVA français
recognizer_registry:
recognizers:
- name: FrenchVATRecognizer
supported_language: fr
supported_entity: TVA_FRANCAISE
patterns:
- name: TVA intracommunautaire française
regex: "\\bFR[0-9A-Z]{2}[0-9]{9}\\b"
score: 1.0
- name: TVA avec espaces
regex: "\\bFR\\s[0-9A-Z]{2}\\s[0-9]{3}\\s[0-9]{3}\\s[0-9]{3}\\b"
score: 0.95
- name: Numéro TVA avec contexte
regex: "\\b(?:TVA|tva)\\s*:?\\s*FR[0-9A-Z]{2}[0-9]{9}\\b"
score: 1.0
context: ["TVA", "intracommunautaire", "numéro de TVA", "identification fiscale"]

View File

@@ -0,0 +1,24 @@
# Recognizer pour adresses postales génériques
recognizer_registry:
recognizers:
- name: GenericAddressRecognizer
supported_language: fr
supported_entity: ADRESSE
patterns:
- name: Adresse avec numéro et rue
regex: "\\b\\d{1,4}(?:bis|ter|quater)?[A-Za-z]?\\s+(?:rue|avenue|boulevard|place|impasse|allée|chemin|route|quai|square|passage|villa|cité|cours|esplanade|promenade|sentier|voie|lotissement)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s'-]{3,30}(?=\\s*[-,]|\\s*$|\\s+[0-9]{4,5}|\\s*\\n)"
score: 0.8
- name: Code postal générique
regex: "\\b(?<!FR[0-9]{2}\\s)(?<![0-9]\\s)[0-9]{4,5}(?!\\s[0-9]{4})(?!\\s[0-9A-Z]{4})\\b"
score: 0.6
- name: Adresse complète avec ville et virgule
regex: "\\b\\d{1,4}(?:bis|ter|quater)?[A-Za-z]?\\s+(?:rue|avenue|boulevard|place|impasse|allée|chemin|route|quai|square|passage|villa|cité|cours|esplanade|promenade|sentier|voie|lotissement)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s'-]+?,\\s*[0-9]{4,5}\\s+[A-ZÀ-Ÿ][a-zà-ÿ'-]+(?=\\s*$|\\s*\\n|\\s*-)"
score: 0.95
- name: Adresse complète sans virgule
regex: "\\b\\d{1,4}(?:bis|ter|quater)?[A-Za-z]?\\s+(?:rue|avenue|boulevard|place|impasse|allée|chemin|route|quai|square|passage|villa|cité|cours|esplanade|promenade|sentier|voie|lotissement)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s'-]+?\\s+[0-9]{4,5}\\s+[A-ZÀ-Ÿ][a-zà-ÿ'-]+(?=\\s*$|\\s*\\n|\\s*-)"
score: 0.9
- name: Adresse simple avec type de voie
regex: "\\b(?:rue|avenue|boulevard|place|impasse|allée|chemin|route|quai|square|passage|villa|cité|cours|esplanade|promenade|sentier|voie|lotissement)\\s+[A-ZÀ-Ÿ][a-zà-ÿ\\s'-]{3,30}(?=\\s*[-,]|\\s*$|\\s+[0-9]{4,5}|\\s*\\n)"
score: 0.65
context:
["adresse", "domicile", "résidence", "siège", "demeurant", "résidant"]

View File

@@ -11,9 +11,6 @@ recognizer_registry:
- name: IBAN compact
regex: "\\b[A-Z]{2}[0-9]{2}[0-9A-Z]{12,30}\\b"
score: 0.9
- name: IBAN belge spécifique
regex: "\\bBE[0-9]{2}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4}\\b"
score: 0.95
- name: IBAN français spécifique
regex: "\\bFR[0-9]{2}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{3}\\b"
score: 0.95

View File

@@ -0,0 +1,39 @@
# Recognizer pour numéros de carte de crédit
recognizer_registry:
recognizers:
- name: CreditCardRecognizer
supported_language: fr
supported_entity: CREDIT_CARD
patterns:
- name: Visa
regex: "\\b4[0-9]{3}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4}\\b"
score: 1.0
- name: Mastercard
regex: "\\b5[1-5][0-9]{2}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4}\\b"
score: 1.0
- name: American Express
regex: "\\b3[47][0-9]{2}\\s?[0-9]{6}\\s?[0-9]{5}\\b"
score: 1.0
- name: Carte générique 16 chiffres
regex: "\\b(?<!FR[0-9]{2}\\s)[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4}(?!\\s[0-9A-Z]{4}\\s[0-9A-Z]{3})\\b"
score: 0.7
- name: Carte générique 15 chiffres
regex: "\\b[0-9]{4}\\s?[0-9]{6}\\s?[0-9]{5}\\b"
score: 0.7
- name: Carte avec contexte
regex: "\\b(?:carte|card|numéro de carte)\\s*:?\\s*([0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4})\\b"
score: 0.9
- name: Carte masquée
regex: "\\b[0-9]{4}\\s?[*X]{4}\\s?[*X]{4}\\s?[0-9]{4}\\b"
score: 0.8
context:
[
"carte",
"credit",
"crédit",
"visa",
"mastercard",
"amex",
"paiement",
"CB",
]

View File

@@ -3,16 +3,22 @@ recognizer_registry:
recognizers:
- name: EmailRecognizer
supported_language: fr
supported_entity: EMAIL_ADDRESS
supported_entity: ADRESSE_EMAIL
patterns:
- name: Email standard
regex: "\\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Z|a-z]{2,}\\b"
score: 1.0
- name: Email obfusqué
- name: Email obfusqué avec crochets
regex: "\\b[A-Za-z0-9._%+-]+\\s*\\[at\\]\\s*[A-Za-z0-9.-]+\\s*\\[dot\\]\\s*[A-Z|a-z]{2,}\\b"
score: 0.8
- name: Email avec (at) et (point)
regex: "\\b[A-Za-z0-9._%+-]+\\s*\\(at\\)\\s*[A-Za-z0-9.-]+\\s*\\(point\\)\\s*[A-Z|a-z]{2,}\\b"
score: 0.7
- name: Email avec arobase écrite
regex: "\\b[A-Za-z0-9._%+-]+\\s*(?:arobase|at)\\s*[A-Za-z0-9.-]+\\s*(?:point|dot)\\s*[A-Z|a-z]{2,}\\b"
score: 0.75
- name: Email avec espaces
regex: "\\b[A-Za-z0-9._%+-]+\\s+@\\s+[A-Za-z0-9.-]+\\s+\\.\\s+[A-Z|a-z]{2,}\\b"
score: 0.9
context:
["email", "courriel", "mail", "@", "contact", "adresse électronique"]

View File

@@ -0,0 +1,32 @@
# Recognizer pour numéros IBAN
recognizer_registry:
recognizers:
- name: IBANRecognizer
supported_language: fr
supported_entity: IBAN
patterns:
- name: IBAN français
regex: "\\bFR[0-9]{2}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{3}\\b"
score: 1.0
- name: IBAN belge
regex: "\\bBE[0-9]{2}\\s?[0-9]{4}\\s?[0-9]{4}\\s?[0-9]{4}\\b"
score: 1.0
- name: IBAN générique européen
regex: "\\b[A-Z]{2}[0-9]{2}\\s?(?:[A-Z0-9]{4}\\s?){2,7}[A-Z0-9]{1,4}\\b"
score: 0.9
- name: IBAN compact
regex: "\\b[A-Z]{2}[0-9]{2}[A-Z0-9]{12,30}\\b"
score: 0.85
- name: IBAN avec contexte
regex: "\\b(?:IBAN|iban)\\s*:?\\s*([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",
"iban",
"compte",
"bancaire",
"virement",
"RIB",
"coordonnées bancaires",
]

View File

@@ -3,7 +3,7 @@ recognizer_registry:
recognizers:
- name: IpAddressRecognizer
supported_language: fr
supported_entity: IP_ADDRESS
supported_entity: ADRESSE_IP
patterns:
- name: IPv4
regex: "\\b(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\\b"

View File

@@ -0,0 +1,31 @@
# Recognizer pour lieux géographiques
recognizer_registry:
recognizers:
- name: LocationRecognizer
supported_language: fr
supported_entity: LOCATION
patterns:
- name: Ville française (sauf si dans adresse)
regex: "(?<!\\d{1,4}(?:bis|ter|quater)?\\s+(?:rue|avenue|boulevard|place|impasse|allée|chemin|route|square|villa|cité|passage|quai|cours|esplanade)\\s+[A-Za-zà-ÿ\\s'-]+?,\\s*[0-9]{5}\\s+)\\b(?:Paris|Marseille|Lyon|Toulouse|Nice|Nantes|Strasbourg|Montpellier|Bordeaux|Lille|Rennes|Reims|Le Havre|Saint-Étienne|Toulon|Grenoble|Dijon|Angers|Nîmes|Villeurbanne|Saint-Denis|Le Mans|Aix-en-Provence|Clermont-Ferrand|Brest|Limoges|Tours|Amiens|Perpignan|Metz|Besançon|Boulogne-Billancourt|Orléans|Mulhouse|Rouen|Caen|Nancy|Saint-Denis|Argenteuil|Montreuil|Roubaix|Tourcoing|Nanterre|Avignon|Créteil|Dunkerque|Poitiers|Asnières-sur-Seine|Courbevoie|Versailles|Colombes|Fort-de-France|Aulnay-sous-Bois|Saint-Pierre|Rueil-Malmaison|Pau|Aubervilliers|Champigny-sur-Marne|Antibes|La Rochelle|Cannes|Calais|Béziers|Colmar|Bourges|Mérignac|Saint-Nazaire|Issy-les-Moulineaux|Noisy-le-Grand|Évry|Cergy|Pessac|Vénissieux|Ivry-sur-Seine|Clichy|Troyes|Lorient|Montauban|Neuilly-sur-Seine|Antony|Sarcelles|Niort|Chambéry|Le Blanc-Mesnil|Beauvais|Maisons-Alfort|Chelles|Meaux|Levallois-Perret|Valence|Quimper|Arras|Villejuif|Hyères|La Seyne-sur-Mer|Fréjus|Albi|Sartrouville|Fontenay-sous-Bois|Clamart|Sevran|Compiègne|Drancy|Le Tampon|Bayonne|Massy|Gennevilliers|Corbeil-Essonnes|Saint-Ouen|Garges-lès-Gonesse|Bagneux|Cagnes-sur-Mer|Grasse|Talence|Castres|Douai|Wattrelos|Cholet|Vannes|Suresnes|Puteaux|Gagny|Belfort|Chartres|Saint-Priest|Vincennes|Montrouge|Meyzieu|Villepinte|Caluire-et-Cuire|Bourg-en-Bresse|Roanne|Concarneau|Saint-Brieuc|Épinay-sur-Seine|Vaulx-en-Velin|Rosny-sous-Bois|Arles|Thonon-les-Bains|Viry-Châtillon|Alfortville|Livry-Gargan|Herblay|Houilles|Schiltigheim|Franconville|Châtillon|Nogent-sur-Marne|Pontoise|L'Haÿ-les-Roses|Malakoff|Châtenay-Malabry|Conflans-Sainte-Honorine|Villemomble|Tremblay-en-France|Montigny-le-Bretonneux|Athis-Mons|Chatou|Villeneuve-Saint-Georges|Les Mureaux|Champs-sur-Marne|Yerres|Savigny-sur-Orge|Villetaneuse|Sainte-Geneviève-des-Bois|Marignane|Goussainville|Stains|Poissy|Rillieux-la-Pape|Charleville-Mézières)\\b"
score: 0.7
- name: Pays
regex: "\\b(?:France|Belgique|Suisse|Canada|Allemagne|Italie|Espagne|Portugal|Royaume-Uni|États-Unis|Maroc|Algérie|Tunisie|Sénégal|Côte d'Ivoire|Mali|Burkina Faso|Niger|Tchad|République centrafricaine|Cameroun|Gabon|République démocratique du Congo|Madagascar|Maurice|Seychelles|Comores|Djibouti|Vanuatu|Nouvelle-Calédonie|Polynésie française|Wallis-et-Futuna|Saint-Pierre-et-Miquelon|Mayotte|Guyane|Martinique|Guadeloupe|La Réunion)\\b"
score: 0.85
- name: Lieu de naissance
regex: "\\b(?:né|née|naissance)\\s+(?:à|au|aux|en|dans)\\s+([A-ZÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ][a-zàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß'-]+(?:[\\s-][A-Za-zàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþß'-]+)*)\\b"
score: 0.95
- name: Région française
regex: "\\b(?:Île-de-France|Auvergne-Rhône-Alpes|Hauts-de-France|Nouvelle-Aquitaine|Occitanie|Grand Est|Provence-Alpes-Côte d'Azur|Pays de la Loire|Bretagne|Normandie|Bourgogne-Franche-Comté|Centre-Val de Loire|Corse)\\b"
score: 0.8
context:
[
"lieu",
"ville",
"pays",
"région",
"naissance",
"domicile",
"résidence",
"né",
"née",
]

View File

@@ -0,0 +1,37 @@
# Recognizer pour noms et prénoms génériques
recognizer_registry:
recognizers:
- name: GenericPersonNameRecognizer
supported_language: fr
supported_entity: PERSONNE
patterns:
- name: Nom avec titre de civilité complet
regex: "(?<!\\w)(?:Monsieur|Madame|Mademoiselle|Docteur|Professeur)\\s+[A-ZÀ-Ÿ][a-zà-ÿ'-]{2,}(?:\\s+[A-ZÀ-Ÿ][a-zà-ÿ'-]{2,})*(?=\\s*\\(|\\s*,|\\s*$|\\s+(?:né|née|demeurant))"
score: 0.8
- name: Nom avec contexte explicite
regex: "(?<=\\b(?:témoin|expert|consultant|gérant|directeur)\\s+)[A-ZÀ-Ÿ][a-zà-ÿ'-]{2,}\\s+[A-ZÀ-Ÿ][a-zà-ÿ'-]{2,}(?=\\s*\\(|\\s*,|\\s*$)"
score: 0.7
- name: Prénom seul avec contexte
regex: "(?<=\\b(?:je suis|mon nom est|je m'appelle|appelé|nommé)\\s+)[A-ZÀ-Ÿ][a-zà-ÿ'-]{2,}(?=\\s|$|\\.|,)"
score: 0.6
- name: Nom complet simple
regex: "(?<=\\b(?:témoin|expert|consultant|gérant|directeur|Monsieur|Madame|appelé|nommé)\\s+)[A-ZÀ-Ÿ][a-zà-ÿ'-]{2,}\\s+[A-ZÀ-Ÿ][a-zà-ÿ'-]{2,}(?=\\s*\\(|\\s*,|\\s*$)"
score: 0.5
- name: Prénom français courant
regex: "(?<!\\w)(?:Nicolas|Pierre|Jean|Marie|Paul|Michel|Philippe|Alain|Bernard|Christian|Daniel|François|Jacques|Laurent|Marc|Olivier|Pascal|Patrick|Stéphane|Thierry|Vincent|Antoine|Bruno|Christophe|David|Eric|Frédéric|Guillaume|Henri|Julien|Luc|Mathieu|Maxime|Sébastien|Thomas|Yves|Alexandre|André|Arnaud|Benoît|Cédric|Didier|Dominique|Emmanuel|Fabrice|Gérard|Hervé|Jérôme|Lionel|Louis|Ludovic|Marcel|Maurice|Michaël|Patrice|Raphaël|Raymond|Rémi|René|Richard|Robert|Roger|Serge|Sylvain|Sylvie|Anne|Catherine|Christine|Françoise|Isabelle|Martine|Monique|Nathalie|Nicole|Pascale|Sandrine|Sophie|Valérie|Véronique|Brigitte|Chantal|Corinne|Dominique|Élisabeth|Hélène|Jacqueline|Jeanne|Joëlle|Karine|Laurence|Michèle|Nadine|Patricia|Sabine|Simone|Suzanne|Sylviane|Thérèse|Viviane|Yvette|Yvonne|Agnès|Amélie|Audrey|Béatrice|Bénédicte|Camille|Carole|Caroline|Céline|Claire|Delphine|Émilie|Estelle|Évelyne|Florence|Geneviève|Gwenaëlle|Ingrid|Julie|Laetitia|Laure|Magali|Mélanie|Muriel|Odile|Pauline|Solange|Stéphanie|Virginie)(?=\\s|$|\\.|,)"
score: 0.7
context:
[
"témoin",
"expert",
"consultant",
"gérant",
"directeur",
"Monsieur",
"Madame",
"appelé",
"nommé",
"je suis",
"je m'appelle",
"mon nom est",
]

View File

@@ -0,0 +1,12 @@
# Recognizer pour identifiants personnels génériques
recognizer_registry:
recognizers:
- name: GenericPersonalIDRecognizer
supported_language: fr
supported_entity: IDENTIFIANT_PERSONNEL
patterns:
- name: Numéro d'identité générique
regex: "\\b(?:ID|identifiant|matricule|numéro)\\s*:?\\s*[A-Z0-9]{6,15}\\b"
score: 0.8
context: ["identifiant", "matricule", "référence", "code", "numéro ID"]

View File

@@ -0,0 +1,26 @@
# Recognizer pour numéros de téléphone génériques
recognizer_registry:
recognizers:
- name: GenericPhoneRecognizer
supported_language: fr
supported_entity: TELEPHONE
patterns:
- name: Téléphone international avec indicatif
regex: "\\b\\+[1-9]\\d{1,3}[\\s\\-\\.]?\\d{1,4}[\\s\\-\\.]?\\d{1,4}[\\s\\-\\.]?\\d{1,9}\\b"
score: 0.95
- name: Téléphone français format standard
regex: "\\b(?<!\\s)0[1-9](?:[\\s\\-\\.]?[0-9]{2}){4}(?![0-9])(?!\\s[A-Za-z])\\b"
score: 0.85
- name: Téléphone avec parenthèses
regex: "\\b\\([0-9]{2,4}\\)[\\s\\-\\.]?[0-9]{2,4}[\\s\\-\\.]?[0-9]{2,4}[\\s\\-\\.]?[0-9]{2,4}\\b"
score: 0.9
- name: Téléphone format groupé
regex: "\\b(?<!FR)(?<![0-9]{5}\\s)(?<!\\s)(?<!boulevard\\s)(?<!avenue\\s)(?<!rue\\s)(?<!place\\s)0[1-9][\\s\\-\\.][0-9]{2}[\\s\\-\\.][0-9]{2}[\\s\\-\\.][0-9]{2}[\\s\\-\\.][0-9]{2}(?![\\s\\-\\.][0-9])(?!\\s[A-Za-z])(?!\\s[A-Z][a-z])"
score: 0.7
- name: Téléphone compact 10 chiffres
regex: "\\b(?<!FR[0-9]{2}\\s)(?<![0-9])(?<!\\s)(?<!boulevard\\s)(?<!avenue\\s)(?<!rue\\s)(?<!place\\s)0[1-9](?:[0-9]{2}){4}(?![0-9])(?!\\s[A-Za-z])(?!\\s[A-Z][a-z])\\b"
score: 0.5
- name: Téléphone avec contexte
regex: "\\b(?:tél|téléphone|mobile|portable)\\s*:?\\s*(?:(?:\\+33|0033|33)\\s?0?[1-9](?:[\\s\\-\\.]?[0-9]{2}){4}|0[1-9](?:[\\s\\-\\.]?[0-9]{2}){4})\\b"
score: 0.9
context: ["téléphone", "tél", "mobile", "portable", "contact", "numéro"]

View File

@@ -0,0 +1,20 @@
# Recognizer pour données de localisation GPS
recognizer_registry:
recognizers:
- name: LocationGPSRecognizer
supported_language: fr
supported_entity: LOCALISATION_GPS
patterns:
- name: Coordonnées GPS décimales
regex: "\\b(?:lat|latitude)\\s*[=:]?\\s*[-+]?[0-9]{1,2}\\.[0-9]{4,}\\s*,?\\s*(?:lon|lng|longitude)\\s*[=:]?\\s*[-+]?[0-9]{1,3}\\.[0-9]{4,}\\b"
score: 0.95
- name: Coordonnées simples
regex: "\\b[-+]?[0-9]{1,2}\\.[0-9]{4,}\\s*,\\s*[-+]?[0-9]{1,3}\\.[0-9]{4,}\\b"
score: 0.85
- name: Adresse MAC
regex: "\\b[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}:[0-9A-Fa-f]{2}\\b"
score: 0.9
- name: Géolocalisation
regex: "\\b(?:géolocalisation|GPS|position)\\s*:?\\s*[-+]?[0-9]{1,3}\\.[0-9]+\\s*,\\s*[-+]?[0-9]{1,3}\\.[0-9]+\\b"
score: 0.9
context: ["GPS", "coordonnées", "latitude", "longitude", "géolocalisation", "position"]

View File

@@ -0,0 +1,19 @@
# Recognizer pour URLs et identifiants en ligne
recognizer_registry:
recognizers:
- name: URLOnlineIDRecognizer
supported_language: fr
supported_entity: URL_IDENTIFIANT
patterns:
- name: URL complète
regex: "\\bhttps?://[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}(?:/[^\\s]*)?\\b"
score: 0.95
- name: Identifiant utilisateur
regex: "\\b(?:user:|username:)\\s*[a-zA-Z0-9._-]{3,20}\\b"
score: 0.85
- name: Cookie ID
regex: "\\b(?:cookie|session)\\s*[=:]\\s*[A-Za-z0-9+/=]{16,}\\b"
score: 0.9
context:
["URL", "lien", "site", "utilisateur", "connexion", "session"]