Salut à tous !
Je bosse sur un projet d’anonymisation automatique de données clients pour être conforme RGPD, et je galère à choisir la bonne approche technique.
Actuellement j’ai testé deux solutions :
Approche 1 : Regex classiques
python
import re
email_pattern = r'[a-zA
-Z0-9._%+
-]+@[a-zA
-Z0-9.
-]+\.[a-zA
-Z]{2,}'
phone_pattern = r'(?:(?:\+|00)33|0)\s*[1-9](?:[\s.
-]*\d{2}){4}'
# Anonymisation basique
text = re.sub(email_pattern, '[EMAIL]', text)
text = re.sub(phone_pattern, '[PHONE]', text)
Approche 2 : Modèles IA spécialisés PII
J’ai testé spaCy avec des modèles personnalisés mais c’est assez lourd à mettre en place.
Le problème :
Les regex ratent plein de cas (emails mal formatés, numéros internationaux) et les modèles IA sont plus précis mais beaucoup plus lents (on traite 50k documents par jour).
Quelqu’un a déjà eu ce dilemme ?
Comment vous avez tranché entre performance et précision pour la détection PII ?
Merci d’avance !
@sophie_legal_tech salut Sophie !
J’ai eu exactement le même problème il y a 6 mois.
Au final j’ai opté pour une approche hybride qui marche plutôt bien : Étape 1 : Pré-filtrage rapide avec regex améliorées
python
# Patterns plus robustes que les tiens email_advanced = r'\b[A-Za
-z0-9._%+
-]+@[A-Za
-z0-9.
-]+\.[A-Z|a
-z]{2,}\b' phone_fr = r'(?:(?:\+|00)33[\s.-]?[1
-9]|0[1-9])(?:[\s.
-]?\d{2}){4}' iban_pattern = r'\b[A-Z]{2}\d{2}[A
-Z0-9]{4}\d{7}([A
-Z0-9]?){0,16}\b'
Étape 2 : IA uniquement sur les cas complexes J’utilise un modèle léger (Microsoft Presidio) seulement sur les documents où les regex trouvent peu de résultats, ou sur des échantillons random pour validation. Résultats concrets :
-
Performance : 95% des docs traités en <2s avec regex
-
Précision : 98.5% de détection PII (validé sur 10k docs annotés manuellement)
-
Coût : divisé par 3 vs full IA Tu veux que je partage ma config Presidio ?
Hello !
Excellente discussion 
Juste un point important côté conformité RGPD : attention à ne pas oublier la pseudonymisation vs anonymisation.
Ce que vous décrivez (remplacer par [EMAIL], [PHONE]) c’est plutôt de la pseudonymisation.
Pour une vraie anonymisation RGPD-compliant, il faut :
- Identifier toutes les données indirectement identifiantes
-
Combinaisons âge + code postal + profession
-
Habitudes comportementales uniques
-
Métadonnées cachées dans les docs
- Techniques d’anonymisation robustes
Question pratique : vos documents contiennent quoi exactement ?
Emails clients, commentaires, factures ?
Selon le type de données, les exigences CNIL changent pas mal.
Par exemple pour des données sensibles (santé, opinions politiques), même pseudonymisées elles restent soumises au RGPD complet.
Vous avez fait une AIPD (analyse d’impact) sur votre process d’anonymisation ?
Super topic !
J’ajoute ma pierre à l’édifice
@claire_cnil excellent point sur la distinction pseudo/anonymisation.
J’ai bossé sur un projet similaire et on a fini par implémenter une stack complète : Architecture production qui tourne bien :
python
# Pipeline d'anonymisation en 3 étapes def anonymize_pipeline(document): #
1.
Détection PII rapide (regex + NER léger) pii_candidates = fast_pii_detection(document) #
2.
Classification fine avec IA si nécessaire if len(pii_candidates) > threshold: verified_pii = ai_classification(pii_candidates) # 3.
Anonymisation contextuelle return contextual_anonymization(document, verified_pii)
Tools stack 2025 : - Microsoft Presidio : excellent pour la détection multi
-langue - AWS Comprehend PII : si vous êtes sur AWS, très performant
-
Differential Privacy libs :
Google DP ou IBM diffprivlib pour les agrégats Métriques de notre prod : - 200k docs/jour traités
-
Latence moyenne 1.2s/doc
-
Précision 99.1% (validé par audit externe)
-
Coût : ~€800/mois sur AWS Le truc important c’est d’avoir une bonne gouvernance des données dès le départ.
On log tout, on trace les transformations, et on garde des métriques de qualité en temps réel. Resources utiles : - Microsoft Presidio documentation
Merci à tous pour ces réponses détaillées !
@marc_data_eng ton approche hybride m’intéresse beaucoup, je vais tester Presidio.
Tu peux partager ta config s’il te plaît ? @claire_cnil merci pour le rappel RGPD !
En fait on traite principalement des emails clients (support, retours produits) et quelques factures.
Effectivement on fait plutôt de la pseudonymisation pour l’instant…
Je vais creuser l’AIPD, on l’a pas encore faite
ta stack a l’air robuste !
Question budget : les €800/mois AWS c’est juste pour l’anonymisation ou toute votre pipeline data ? Update de mon côté : J’ai commencé à tester Microsoft Presidio aujourd’hui, et effectivement c’est plus flexible que mes regex.
Le truc cool c’est qu’on peut entraîner des recognizers custom pour nos domaines métier spécifiques.
python
# Test Presidio - détection améliorée from presidio_analyzer import AnalyzerEngine from presidio_anonymizer import AnonymizerEngine analyzer = AnalyzerEngine() results = analyzer.analyze(text=sample_text, language='fr') print(f"PII détectées: {len(results)} éléments")
Prochain step : benchmarker performance vs mes regex sur un échantillon de 1000 docs.
Vous avez des recommandations pour les métriques de qualité à tracker en continu ?