Algorithme de matching d'adresses : tutoriel en 6 étapes

Vous avez deux fichiers d'adresses. L'un vient de votre CRM, l'autre d'un prestataire externe. Vous devez les fusionner sans créer de doublons. Le problème : « M. Jean Dupont, 14 avenue Victor Hugo, 69002 Lyon » et « Dupont Jean, 14 av. V. Hugo, Lyon 69002 » désignent la même personne, mais aucune comparaison caractère par caractère ne les rapprochera.
C'est le rôle des algorithmes de matching. Ils calculent un degré de similitude entre deux enregistrements et vous permettent de décider, sur la base d'un score chiffré, s'il s'agit d'un doublon ou non.
Ce tutoriel vous accompagne de A à Z : préparation des données, choix de l'algorithme, paramétrage du seuil, vérification des résultats. Chaque étape contient des exemples concrets avec des adresses françaises et des indications de coût pour que vous puissiez évaluer le retour sur investissement.
Étape 1 : préparer et normaliser vos données
Avant de comparer quoi que ce soit, vos données doivent être dans un format homogène. Un algorithme de matching, aussi performant soit-il, produira des résultats incohérents si un fichier utilise « av. » et l'autre « avenue ».
Ce qu'il faut normaliser
| Élément | Avant | Après |
|---|---|---|
| Civilité | M., Monsieur, Mr | M. |
| Rue | av., avenue, Ave | avenue |
| Numéro | 14 bis, 14b, 14B | 14 B |
| Code postal | F-75001, 75 001 | 75001 |
| Ville | PARIS, paris, Paris cedex | Paris |
| Casse | DUPONT, dupont | Dupont |
| Accents | Lefèvre, Lefevre | Lefèvre |
Exemple de normalisation sur un fichier réel
Avant normalisation :
M. DUPONT Jean-Pierre | 14 av Victor Hugo | 69002 LYON
Mme Lefèvre, Marie | 27 Bld Haussmann | 75009 paris
Mr Martin P. | 3 r. de la Paix | 13001 Marseille
Après normalisation :
M. | Dupont | Jean-Pierre | 14 | avenue Victor Hugo | 69002 | Lyon
Mme | Lefèvre | Marie | 27 | boulevard Haussmann | 75009 | Paris
M. | Martin | P. | 3 | rue de la Paix | 13001 | Marseille
Le découpage en champs séparés (civilité, nom, prénom, numéro, voie, code postal, ville) est indispensable. Sans cette structuration, les algorithmes comparent des chaînes mixtes et le taux de faux positifs explose.
En France, la norme RNVP (Restructuration, Normalisation et Validation Postale) définit les règles de formatage reconnues par La Poste. Un fichier RNVP conforme garantit que les adresses suivent une structure exploitable pour le matching.
Étape 2 : choisir le bon algorithme selon le champ
Tous les algorithmes ne se valent pas pour tous les champs. Un algorithme performant sur les noms de famille peut être médiocre sur les noms de rue. Le choix doit se faire champ par champ.
Tableau de recommandation
| Champ | Algorithme recommandé | Pourquoi |
|---|---|---|
| Nom de famille | Jaro-Winkler + phonétique | Sensible aux premières lettres, détecte « Dupont » vs « Dupond » |
| Prénom | Jaro-Winkler | Gère les diminutifs (Jean vs Jean-Pierre) |
| Numéro de rue | Comparaison exacte | 14 ≠ 15, pas de marge de tolérance |
| Nom de voie | Levenshtein normalisé | Gère les abréviations après normalisation |
| Code postal | Comparaison exacte | 75009 ≠ 75019, une erreur change le quartier |
| Ville | Levenshtein ou exact | Peu de variantes après normalisation |
Pourquoi combiner plusieurs algorithmes
Un seul algorithme ne couvre pas tous les cas. Prenons un exemple :
Enregistrement A : Lefèvre | Marie | 27 | boulevard Haussmann | 75009 | Paris
Enregistrement B : Lefebvre | Marie | 27 | bd Haussmann | 75009 | Paris
Jaro-Winkler sur le nom :
"Lefèvre" vs "Lefebvre" → 89 % (les premières lettres correspondent)
Levenshtein sur la voie (après normalisation) :
"boulevard Haussmann" vs "boulevard Haussmann" → 100 %
Phonétique sur le nom :
"Lefèvre" → L116, "Lefebvre" → L116 → correspondance phonétique
Score combiné : (89 % × 0,30) + (100 % × 0,05) + (100 % × 0,20) + (100 % × 0,15) + (100 % × 0,15) + (100 % × 0,05) + bonus phonétique 5 %
= 26,70 + 5,00 + 20,00 + 15,00 + 15,00 + 5,00 + 5,00
= 91,70 % → Doublon confirmé
Sans la combinaison, un seul algorithme aurait pu hésiter. C'est le score pondéré qui donne la réponse fiable. Pour une explication détaillée de chaque algorithme, consultez notre article Fuzzy matching pour les adresses.
Étape 3 : définir les pondérations par champ
Tous les champs n'ont pas la même importance pour identifier un doublon. Le code postal et le numéro de rue sont des identifiants forts. Le prénom seul est faible (combien de « Marie » à Paris ?).
Pondérations recommandées pour les adresses françaises
| Champ | Pondération | Justification |
|---|---|---|
| Nom de famille | 30 % | Identifiant principal, mais des homonymes existent |
| Prénom | 10 % | Trop de prénoms courants pour être discriminant seul |
| Numéro de rue | 15 % | Fort pouvoir discriminant si présent |
| Nom de voie | 20 % | Discriminant après normalisation |
| Code postal | 15 % | 5 chiffres, erreur = autre commune |
| Ville | 5 % | Redondant avec le code postal |
| Bonus phonétique | 5 % | Récompense une correspondance sonore |
Adapter les pondérations selon le contexte
Pour un fichier B2B avec des noms d'entreprise, le champ « raison sociale » prendrait 40 % et le prénom tomberait à 0 %. Pour un fichier médical, le nom et la date de naissance seraient surpondérés.
Un piège fréquent : donner trop de poids au nom de famille dans les grandes villes. Paris compte plus de 15 000 « Martin ». Si le nom pèse 50 %, deux « Martin » habitant des arrondissements différents risquent d'être marqués comme doublons.
Étape 4 : calibrer le seuil de décision
Le seuil détermine à partir de quel score deux enregistrements sont considérés comme doublons. C'est le paramètre qui a le plus d'impact sur la qualité du résultat.
Méthode de calibrage en 4 temps
1. Démarrez à 80 % – c'est le point d'équilibre pour la plupart des fichiers d'adresses français.
2. Extrayez un échantillon – prenez les 100 premières paires identifiées comme doublons et vérifiez manuellement.
3. Mesurez deux métriques :
Fichier test : 15 000 adresses clients, fichier CRM d'un e-commerçant lyonnais
Seuil 90 % :
Paires détectées : 180
Vrais doublons : 175 (97 % de précision)
Doublons manqués : estimés à 220 (taux de rappel ~45 %)
Seuil 80 % :
Paires détectées : 420
Vrais doublons : 385 (92 % de précision)
Doublons manqués : estimés à 60 (taux de rappel ~86 %)
Seuil 70 % :
Paires détectées : 780
Vrais doublons : 510 (65 % de précision)
Doublons manqués : estimés à 15 (taux de rappel ~97 %)
4. Choisissez selon votre priorité :
- Publipostage (coût par envoi) → privilégiez le rappel (seuil 75-80 %) pour ne rater aucun doublon, quitte à vérifier quelques faux positifs
- Fusion de bases (intégrité des données) → privilégiez la précision (seuil 85 %) pour ne pas fusionner des personnes différentes
Impact financier concret
Un e-commerçant qui envoie quatre campagnes Destineo MD par an à 0,256 EUR l'unité :
15 000 adresses × 10 % de doublons = 1 500 doublons
1 500 × 0,256 EUR × 4 campagnes = 1 536 EUR/an de gaspillage postal
Avec seuil à 80 % (86 % de rappel) :
1 290 doublons détectés × 0,256 EUR × 4 = 1 321 EUR économisés/an
Avec seuil à 90 % (45 % de rappel) :
675 doublons détectés × 0,256 EUR × 4 = 691 EUR économisés/an
La différence de 630 EUR par an justifie à elle seule le temps passé à calibrer correctement le seuil.
Étape 5 : exécuter le matching et traiter les résultats
Une fois les paramètres définis, l'exécution produit trois catégories de résultats qu'il faut traiter différemment.
Catégorie 1 : doublons certains (score > 90 %)
Score 96 % :
A : Dupont | Jean | 14 | avenue Victor Hugo | 69002 | Lyon
B : Dupont | Jean | 14 | av. Victor Hugo | 69002 | Lyon
→ Fusion automatique possible
Ces paires peuvent être fusionnées sans vérification manuelle. Gardez l'enregistrement le plus complet (celui avec le plus de champs renseignés).
Catégorie 2 : doublons probables (score 75-90 %)
Score 84 % :
A : Lefèvre | Marie | 27 | boulevard Haussmann | 75009 | Paris
B : Lefebvre | M. | 27 | boulevard Haussmann | 75009 | Paris
→ Vérification recommandée
Un opérateur doit valider ces paires. Le prénom abrégé « M. » pourrait correspondre à Marie, Martine ou Madeleine. Prévoyez 30 secondes par paire, soit environ 2 heures pour 200 paires.
Catégorie 3 : faux positifs probables (score 60-75 %)
Score 68 % :
A : Martin | Pierre | 8 | rue de la République | 69001 | Lyon
B : Martin | Paul | 8 | rue de la République | 69003 | Lyon
→ Probablement deux personnes distinctes (prénom et arrondissement différents)
Ces paires sont rarement des doublons. Ne les fusionnez pas sans preuve supplémentaire (numéro de téléphone, adresse email).
Pour une vue d'ensemble des méthodes de détection de doublons au-delà du matching, consultez Détecter les doublons : 7 méthodes pour des données propres.
Étape 6 : automatiser et planifier les passages réguliers
Le matching d'adresses n'est pas une opération ponctuelle. Les données se dégradent en continu : déménagements, erreurs de saisie, imports de fichiers externes.
Fréquence recommandée
| Taille du fichier | Fréquence | Raison |
|---|---|---|
| < 5 000 adresses | Tous les 6 mois | Peu de nouveaux doublons entre les passages |
| 5 000 – 50 000 | Trimestriel | Accumulation significative de doublons en 3 mois |
| > 50 000 | Mensuel | Volume suffisant pour justifier l'effort |
| Après chaque import | Immédiat | Les fichiers externes sont la première source de doublons |
Automatisation avec un outil dédié
Les étapes 1 à 5 représentent un travail considérable si vous les réalisez manuellement à chaque passage. Un outil comme ListenFix automatise l'ensemble du processus : normalisation, choix des algorithmes, pondération, scoring et catégorisation des résultats. Le traitement se fait intégralement sur votre poste, sans transfert de données vers un serveur externe, ce qui simplifie la conformité RGPD et les obligations CNIL.
Avec la validation des codes postaux pour 29 pays et la détection de ménages (plusieurs personnes à la même adresse), le matching va au-delà de la simple comparaison de chaînes.
Télécharger ListenFix gratuitement et testez le matching sur votre propre fichier. Le traitement de 10 000 adresses prend moins de 30 secondes.
Ce que le matching ne résout pas
Le matching d'adresses détecte les doublons et les quasi-doublons. Il ne corrige pas les adresses invalides (numéro de rue inexistant, code postal erroné) et ne vérifie pas si une personne habite toujours à l'adresse indiquée.
Pour les fichiers destinés au publipostage, combinez le matching avec une validation RNVP auprès de La Poste. Le surcoût est faible par rapport aux économies réalisées sur les plis non distribuables (NPAI). Un taux de NPAI supérieur à 3 % sur un envoi Destineo MD déclenche des pénalités tarifaires.
Le matching est l'étape qui élimine le gaspillage le plus visible : les envois en double. La validation postale élimine le gaspillage invisible : les envois vers des adresses qui n'existent plus.
Nettoyez vos adresses — essayez maintenant
ListenFix détecte nettement plus de doublons qu'Excel grâce au fuzzy matching. 100% hors ligne, conforme au RGPD.
Essayer gratuitement