AngoraTek EN
← Retour au blog
Ingénierie des données 8 min de lecture

Peut-on géocoder un recensement ?

Une table arrive dans votre pipeline. Une colonne d'adresses tapées au fil des ans par des humains, en texte libre : « Flat 2, 14 Station Rd. » « Rte 3 Box 12-B. » « Old fire hall, Main Street. » Quelqu'un d'important veut une carte pour lundi, et votre carte sera exactement aussi bonne que ce que le géocodeur fait de ces chaînes.

À l'échelle d'un recensement, d'un fichier de permis ou d'une liste de clients, le géocodage est un problème d'ingestion, et les problèmes d'ingestion se règlent avec des boucles de validation plutôt qu'avec un meilleur fournisseur. La boucle a quatre étapes. Chacune existe parce que celle qui la précédait a exposé une défaillance, et la dernière est tenue par des humains, comme il se doit.

Le géocodage échoue de quatre manières vérifiables

Chacune a une signature détectable dans le code, ce qui est la bonne nouvelle cachée au fond de la mauvaise.

Les adresses rurales n'existent souvent nulle part sous forme de numéro. Une boîte de route rurale est une vraie adresse pour le facteur et un cul-de-sac pour tout répertoire construit à partir de points d'habitation : « Rte 3, Box 12 » ne se résout vers rien, et c'est correct. Les registres ouverts héritent de la même forme : la couverture des adresses d'OpenStreetMap est dense en ville et clairsemée dans les campagnes, un motif qui suit la densité de population plutôt que quelque politique cartographique que ce soit. Le résultat est un déficit de couverture qui, vue depuis un bureau urbain, ressemble à un bruit aléatoire dans les données.

L'ambiguïté est l'échec qui paraît le plus injuste, parce que le géocodeur a fait son travail. Deux rues appelées Station Road dans une même ville, ce n'est pas une hypothèse d'école, c'est la façon la plus courante dont une correspondance assurée se trompe en silence. L'entrée mentionne « Station Road », le répertoire en contient deux séparées de plusieurs kilomètres, et la correspondance tombe sur celle que l'expéditeur ne visait pas. Une coordonnée d'apparence correcte pour un mauvais endroit trône en tête de liste des candidats.

Le bruit de format est l'échec le plus ennuyeux, et c'est aussi là que des lignes entières disparaissent. Les désignations d'appartement et d'étage voyagent dans la chaîne. Les accents et les synonymes de types de voies varient (« rue » contre « r. », « avenue » contre « av. »). Les codes postaux contredisent les noms de communes, et les boîtes postales sont livrables par définition et localisées par rien.

Les valeurs de confiance mentent moins que vous ne l'espériez, et plus que vous ne pouvez le payer. Chaque source renvoie un score, et les gens lisent le score comme un verdict quand il n'est qu'un indice de classement. Nous avons vu un score de 0,9 tomber sur la mauvaise Station Road tandis qu'un 0,6 se révélait une rue correcte avec un chiffre transposé, réparable d'un coup d'œil de quinze secondes. Les scores signifient aussi des choses différentes d'une source à l'autre, si bien qu'un seuil qui marchait sur un jeu de données n'est pas calibré sur le suivant.

ÉchecÀ quoi il ressembleDétection
Lacune ruraleAucun candidat à une distance plausibleLe contrôle inverse renvoie un voisinage clairsemé
AmbiguïtéDeux candidats au nom proche, éloignés dans l'espaceÉtalement des candidats, mesuré en mètres
Bruit de formatÀ quelques éditions de caractères du candidat le plus procheDistance de correspondance au-dessus du seuil après normalisation
Confiance surestiméeScore élevé, mauvais endroitUne seconde source indépendante n'est pas d'accord

La boucle : géocoder, puis se contredire exprès

Géocodez d'abord, et stockez tous les candidats plutôt que la meilleure proposition. Là où la réglementation le permet, lancez une seconde source et gardez les deux réponses. Le géocodeur du Bureau du recensement américain, par exemple, accepte des lots d'adresses américaines de 10 000 lignes par appel. Les candidats coûtent peu, et le contrôle inverse en a besoin.

Le contrôle inverse vient ensuite. Géocodez en inverse le point retenu, et comparez ce qui revient avec ce qui est parti. Cette seule étape intercepte la correspondance fausse mais assurée mieux que n'importe quelle métrique de chaîne, parce que la mauvaise Station Road se résout en inverse vers un quartier que la chaîne d'entrée n'a jamais mentionné.

Voici une impasse que nous vous devons. Notre première tentative classait les candidats par similarité de chaîne, l'outil déjà sur l'étagère. Il a échoué d'une manière spécifique : la file de revue s'est remplie de correspondances de chaînes serrées pointant vers la mauvaise rue, tandis que des correspondances réellement correctes sur une saisie relâchée se faisaient signaler. La proximité de chaînes prédisait la proximité de chaînes, ce qui est précisément ce qu'elle mesure. Le désaccord entre sources indépendantes prédisait l'erreur réelle bien mieux, la file a donc été reclassée par désaccord, grands écarts d'abord, et les heures humaines ont enfin atterri sur les lignes qui comptaient.

Les limites et les solutions de repli viennent en troisième. Vérifiez chaque point apparié contre le polygone auquel vous faites déjà confiance : limite de parcelle ou d'îlot, limite de commune. Quand un registre détient un polygone pour la propriété mais pas de point, accrochez la ligne au centroïde du polygone et étiquetez-la comme vérité au niveau du polygone plutôt que de faire semblant du contraire. Gardez les trois niveaux de vérité visiblement séparés dans votre sortie : au niveau du point, interpolé, au niveau du polygone. Une carte qui les rend identiquement ment par omission, et le mensonge fait surface la première fois que quelqu'un interroge un seul pixel et bâtit une décision dessus.

Tout ce qui reste ambigu part dans la file humaine, trié par désaccord. Les deux candidats de tête apparaissent sur une petite carte, avec la chaîne d'entrée à côté. Avec une interface correcte, un réviseur referme des lignes en bien moins d'une minute, et la file reste bornée parce qu'elle ne tient que le résidu.

Une miséricorde définitionnelle, si votre table est vraiment un recensement de personnes : la plupart des instituts statistiques ne publient rien à cette granularité, et pour de bonnes raisons. Les dépouillements individuels du recensement américain restent scellés 72 ans par la loi. Ce que vous tenez est presque toujours un recensement de locaux : logements, entreprises, parcelles. Les locaux ont des adresses que leurs propriétaires publient. Confirmez de quel recensement vous disposez avant d'expliquer la carte à n'importe qui.

Les données ouvertes avant les licences

Les sources ouvertes gagnent cette famille de problèmes pour des raisons qui n'ont rien à voir avec le prix. Rejouer le traitement le trimestre suivant ne coûte rien, la même source rend la même réponse, et chaque ligne a une piste d'audit qui remonte à une requête reproductible. OpenStreetMap, les répertoires toponymiques nationaux comme le GNIS de l'USGS et les registres d'adresses ouverts portent l'essentiel du poids. La Base Adresse Nationale publiée par la France couvre tout le pays en adresses géolocalisées sous licence ouverte. OpenAddresses agrège des centaines de millions de points d'adresse issus de sources publiques du monde entier. Le compromis est honnête : l'ouverture vous coûte de la couverture au bord rural clairsemé, exactement cette lacune que vous cherchiez à combler. La compensation, c'est que le désaccord entre deux sources ouvertes est lui-même un signal. Là où OSM et un registre national sont d'accord, la ligne est probablement bonne. Là où un seul se prononce, la ligne porte un nom dans la file.

Les obligations d'attribution voyagent avec les données, et elles sont réelles : les termes ODbL s'attachent aux bases dérivées construites sur OpenStreetMap, et chaque registre porte sa propre licence avec sa propre formulation de ce que vous devez afficher. Prévoyez une heure pour les lire. C'est l'heure la moins chère du projet.

Ce qu'aucun jeu de données ne peut corriger

Certaines lignes ne peuvent pas être appariées parce que l'adresse n'existe nulle part comme point. Boîtes de route rurale, descriptions informelles, bâtiments sortis de terre après le dernier rafraîchissement de chaque registre : la file ne descend pas à zéro, et elle ne le fera jamais, quelles que soient les sources que vous empilez. La faute à éviter est de faire semblant du contraire, et un taux d'appariement affiché sans son résidu imprimé à côté, c'est précisément cela.

Alors imprimez le résidu. À côté de la légende, à la même taille de police, un compte honnête de ce que la boucle a apparié, de ce qu'elle a vérifié, de ce qu'elle n'a pu placer qu'au niveau du polygone, et de ce qu'elle a laissé aux humains. Avant de livrer, vous devriez être capable de produire ces quatre nombres depuis le pipeline lui-même. Si vous ne pouvez pas, ce que vous avez construit est un dessin, pas une carte.

Un géocodage est une affirmation. La validation est ce qui en fait une preuve.

AngoraTek construit des pipelines de données pour le travail géospatial, y compris les parties d'ingestion les plus ingrates. Si les adresses et les polygones sont votre semaine, c'est notre genre de problème.

Merci d'avoir lu jusqu'ici. Si cela ressemble au problème sur lequel vous butez, parlez-nous-en. Un fondateur lit chaque message.

Engager la conversation