Comment effectuez-vous la validation d'adresse? [fermé]


88

Est-il même possible d'effectuer une validation d'adresse (physique, pas e-mail)? Il semble que le grand nombre de formats d'adresse, même aux seuls États-Unis, rendrait cette tâche assez difficile. D'un autre côté, cela semble être une tâche qui serait nécessaire pour plusieurs exigences commerciales.


22
quoi que vous fassiez, si l'adresse semble invalide, laissez l'utilisateur sélectionner qu'elle est réellement valide, ne la rejetez pas simplement parce que le validateur dit qu'elle est invalide.
Pim Jager

Voulez-vous dire "saisie automatique d'adresse" ou "validation d'adresse"? Je veux dire qu'aucun service ne saura jamais tous les changements qui se produisent dans le monde réel. Chaque minute, des millions de nouvelles adresses apparaissent et d'anciennes sont démolies. Et je parle localement maintenant, dans le cadre d'une planète.
Yevgeniy Afanasyev

Réponses:


27

Voici un moyen gratuit et en quelque sorte «hors des sentiers battus» de le faire. Pas parfait à 100%, mais il devrait rejeter les adresses manifestement inexistantes.

Envoyez l'adresse complète au service Web de géocodage de Google . Ce service tente de renvoyer les coordonnées exactes de l'emplacement où vous l'alimentez, c'est-à-dire la latitude et la longitude.

D'après mon expérience, si l'adresse n'est pas valide, vous obtiendrez un résultat de 602 du service. Il y a certainement une possibilité de faux positifs ou de faux négatifs, mais utilisé en conjonction avec d'autres contrôles de cohérence, cela pourrait être utile.

( Le service Web de géocodage de Yahoo , en revanche, renverra les coordonnées du centre de la ville si la ville existe mais que le reste de l'adresse est faux. Potentiellement utile tant que vous portez une attention particulière au champ "précision" dans le résultat).


4
Y a-t-il quelqu'un qui a réellement utilisé cette méthode sur un système en direct?
Aston

27
Les CGU de Google et Yahoo interdisent l'utilisation de leur service de géocodage sauf en conjonction avec l'utilisation d'une carte affichée à l'utilisateur. Trouvez quelque chose qui ressemble davantage à ce que Jonathan Oliver a suggéré. Voir: code.google.com/apis/maps/terms.html
Matt

1
Je n'obtiens pas les résultats 602 mentionnés lorsque j'entre une mauvaise adresse.
HK1

9
Cela ne devrait vraiment PAS être la réponse choisie. Il enfreint les conditions d'utilisation de Google et ne valide pas vraiment les adresses. Google utilise beaucoup d'intelligence pour "deviner" l'adresse que vous vouliez, même lorsque les informations sont légèrement erronées. Google renverra également un géocode si vous dites entrez 55 Main St et que Google sait qu'il y a une rue 50 Main et une rue principale 60, il retournera un géocode réussi faisant la moyenne de la distance, même si un 55 Main St ne le fait pas réellement exister. Vous devez utiliser un vrai service de validation comme USPS de préférence ou Experian ou SmartyStreets.
jacurtis

1
Cela ferait une merveilleuse application Blockchain où tout le monde contribue avec un nœud en stockant des bits et des morceaux d'une immense base de données en constante évolution ...
decoder7283

18

Il y a un certain nombre de bonnes réponses ici, mais la plupart d'entre elles supposent que l'utilisateur veut une solution «API» où il doit écrire du code pour se connecter à un service tiers et / ou gratter l'USPS. Tout cela est bien beau, mais doit être pris en compte dans les exigences commerciales et les coûts associés à la mise en œuvre, puis mis en balance avec les avantages souhaités.

Selon les besoins de l'entreprise et la manière dont les données sont reçues dans le système, une solution de traitement d'adresse en temps réel peut être le meilleur choix. Si une solution en temps réel est requise, vous voudrez prendre en compte le contrat de licence et les limitations techniques des API Google Maps / Bing / Yahoo. Ils limitent généralement le nombre d'appels que vous pouvez passer chaque jour. L'API des outils Web USPS est la même, en outre, ils restreignent comment / pourquoi vous pouvez utiliser leur système et comment vous êtes autorisé à utiliser les données par la suite.

Dans le même temps, il existe une poignée d'excellents fournisseurs de services qui peuvent facilement traiter une liste d'adresses statique. Essentiellement, vous donnez au fournisseur de services un fichier CSV ou un fichier Excel, il le nettoie et vous le renvoie. Il s'agit d'un accord unique sans engagement ni obligation à long terme - généralement.

Divulgation complète: je suis le fondateur de SmartyStreets. Nous vérifions l'adresse pour les adresses aux États-Unis. Nous pouvons facilement certifier une liste CASS et nous proposons également une API de service Web de vérification d'adresse . Nous n'avons pas de frais cachés, de contrats ou quoi que ce soit. Vous utilisez notre service jusqu'à ce que vous n'en ayez plus besoin et que vous puissiez partir. (Contrairement aux entreprises de téléphonie mobile qui exigent un contrat.)


1
Parfait, exactement ce que je cherchais. Et laissez-moi vous dire que vous avez du style, monsieur. Beau site à la recherche.
Cory Mawhorter

2
Nous utilisons SmartyStreets et c'est génial.
JerSchneid

17
Le coût de SmartyStreet pour 1000 recherches est de 30 $. Vous a sauvé un clic.
William Entriken

1000 recherches = 66 $ pour l'international
Robert Sinclair

En fait , l'USPS a une interface REST pour cela ... Cependant, ce qui est énorme ... Mais si vous frappez cette chose avec un script pour valider une base de données complète d'adresses , ils vont vous interdire. Vous êtes autorisé à valider la saisie des données utilisateur avec celui-ci, il est donc parfait pour une utilisation sur un formulaire Web où les appels API seront chronométrés de manière aléatoire. Assurez-vous simplement que votre formulaire est protégé contre les bots ou vous obtiendrez rapidement votre accès à l'API DoS'd. De plus, cela n'est bon que pour les adresses américaines.
Neil Davis

15

USPS a un nettoyeur d'adresses en ligne , que quelqu'un a gratté dans le service Web d' un pauvre homme. Cependant, si vous faites cela assez souvent, ce serait une meilleure idée de demander un compte USPS et d'appeler leur propre service Web .


17
Pour éviter à quiconque d'avoir des brûlures d'estomac et recevoir une lettre de rejet trois jours plus tard, presque personne n'est vraiment autorisé à utiliser le validateur d'adresse d'USPS. C'est pourquoi l'écran du gars l'a gratté en premier lieu. Il est strictement limité aux organisations à but non lucratif.
Nicholas Piasecki

5
L'USPS ne permet pas que ces données soient utilisées pour autre chose que l'envoi d'une lettre ou d'un colis. En d'autres termes, vous devez envoyer un e-mail à l'adresse que vous recherchez.

16
L'USPS permettra une utilisation commerciale IFF que vous ne revendez pas ou ne nettoyez pas vos bases de données. Nous nous sommes qualifiés pour un compte et l'utilisons pour vérifier / corriger TOUTES les adresses qui arrivent via nos formulaires Web.
marklark

2
Ou avez l'intention d'envoyer un courrier à un moment donné. Mon entreprise s'est initialement vu refuser l'accès à l'API USPS mais, après avoir clarifié notre utilisation prévue (et déclaré que nous n'utiliserions pas l'API pour corriger les anciennes données), nous avons été approuvés.
marklark

4
Vous ne pouvez utiliser l'API de l'USPS que si vous vérifiez une adresse pour effectuer un mailing ou des expéditions: secure.shippingapis.com/registration - si vous ne faites pas de mailings ou expédiez via l'USPS, trouvez une API alternative qui n'a pas les restrictions de licence.
Matt

9

Je vous renvoie à mon article de blog - Une leçon sur le stockage d'adresses , je vais dans certaines des techniques et algorithmes utilisés dans le processus de validation d'adresse. Ma pensée clé est "Ne soyez pas paresseux avec le stockage d'adresses, cela ne vous causera rien d'autre que des maux de tête à l'avenir!"

En outre, il existe une autre question StackOverflow qui pose cette question. Intitulé Comment les adresses géographiques internationales doivent-elles être stockées dans une base de données relationnelle .


8

Au cours du développement d'un service de vérification d'adresse en interne dans une entreprise allemande pour laquelle j'ai travaillé, j'ai rencontré un certain nombre de façons de résoudre ce problème. Je ferai de mon mieux pour résumer mes conclusions ci-dessous:

Logiciel gratuit et open source

De toute évidence, la première approche que quiconque adopterait est une approche open-source (comme openstreetmap.org ), ce qui n'est jamais une mauvaise idée. Mais si vous pouvez vraiment utiliser cela de manière fiable et fiable, cela dépend beaucoup de la mesure dans laquelle vous devez vous fier aux résultats.

Les adresses sont une chose incroyablement variable. Vérifier les adresses américaines n'est pas une tâche facile, mais supportable, mais une fois que vous vous dirigerez vers l'Europe, en particulier le Royaume-Uni avec son vaste système de codes postaux, l'approche open-source manquera tout simplement de données.

Services Web / API

Logiciel de classe entreprise

L'argent le fait, évidemment. Mais toutes les entreprises ou développeurs ne peuvent pas dépenser environ 0,15 USD par recherche d'adresse (soit 150 USD pour 1000 demandes d'API) - un modèle commercial très coûteux que la grande majorité des API de validation d'adresse a implémenté.

Ce que j'ai fini par intégrer: l' API streetlayer

Comme je n'étais pas disposé à adopter l'approche programmatique de la vérification manuelle des données d'adresse, j'ai finalement conclu que j'avais besoin d'une API avec un prix qui ne donnerait pas envie à mon patron de me licencier et de toujours fournir une solution solide et fiable. résultats de la vérification internationale.

Pour faire court, j'ai fini par intégrer une API construite par apilayer, appelée "streetlayer API". J'ai été facilement convaincu par une simple intégration JSON, des résultats de validation étonnamment précis et leur tarification conviviale pour les développeurs. De plus, 100 demandes / mois sont entièrement gratuites.

J'espère que cela t'aides!


bonne réponse, malheureusement l'API streetlayer s'arrête la semaine prochaine (le 03/07/2017). existe-t-il des alternatives pour moins de 15 cent par demande?
Chris

1

J'ai utilisé les services de http://www.melissadata.com Leur "objet adresse" fonctionne très bien. C'est cher, oui. Mais lorsque vous considérez les coûts de rédaction de vos propres solutions, le coût des données sales dans votre application, les courriers retournés - les ventes perdues, etc. - les coûts peuvent être justifiés.


1

Vous pouvez également essayer les solutions de qualité des données de SAP qui sont disponibles à la fois dans une plate-forme serveur traitant un grand nombre de demandes ou en tant que SDK intégrable si vous souhaitez l'exécuter en cours avec votre application. Nous l'utilisons dans notre application et il est très robuste et évolutif.


1

Comme vu sur reddit :

$address = urlencode('1600 Pennsylvania Avenue, Washington, DC');
$json = json_decode(file_get_contents("http://where.yahooapis.com/geocode?q=$address&flags=J"));
print_r($json);

1

Vous pouvez essayer l'API Pitney Bowes «IdentifyAddress» disponible sur - https://identify.pitneybowes.com/

Le service analyse et compare les adresses d'entrée avec les bases de données d'adresses connues dans le monde pour produire un détail normalisé. Il corrige les adresses, ajoute les informations postales manquantes et les met en forme en utilisant le format préféré par l'autorité postale compétente. J'utilise également des bases de données d'adresses supplémentaires afin de pouvoir fournir des détails améliorés, y compris la qualité de l'adresse, le type d'adresse, la translittération (comme du kanji chinois aux caractères latins) et si une adresse est validée au niveau du local / de la maison, de la rue ou de la ville des informations de référence.

Vous trouverez de nombreux échantillons et sdk disponibles sur le site et je l'ai trouvé extrêmement facile à intégrer.


0

Il existe des entreprises qui offrent ce service. Les bureaux de service qui traitent de publipostage de masse nettoieront une liste de diffusion entière pour qu'elle soit dans le bon format, ce qui se traduira par une réduction sur les frais de port. L'USPS vend des bases de données d'informations d'adresses qui peuvent être utilisées pour développer des solutions personnalisées. Ils ont également des listes de fournisseurs agréés qui fournissent ce type de logiciel et de service.

Il existe certains (mais pas beaucoup) de packages qui ont des API pour accrocher la validation d'adresse dans votre logiciel.

Cependant, vous avez raison de dire que c'est un problème assez méchant.

http://www.usps.com/ncsc/ziplookup/vendorslicensees.htm


0

Comme mentionné, il existe de nombreux services, si vous cherchez à valider véritablement l'adresse entière, je vous recommande vivement d'utiliser un service de type Web Service pour vous assurer que les modifications peuvent être rapidement reconnues par votre application.

En plus des services énumérés ci-dessus, webservice.net dispose de ce service de validation d'adresse aux États-Unis. http://www.webservicex.net/WCF/ServiceDetails.aspx?SID=24


0

Nous avons eu du succès avec Perfect Address .

Leur base de données contient tous les noms de rue et plages de numéros de rue américains. Agit également comme un analyseur assez décent pour les champs d'adresse de forme libre, si vous avez la chance d'avoir ce type de données.


Très intéressant ... leur ancien site Web me fait me demander s'ils sont encore en affaires ou fiables?
Anthony Griggs

Cela faisait un moment que j'étais dans l'entreprise où nous utilisions cela. Il ne semble pas qu'ils aient beaucoup changé, mais ils prétendent toujours avoir des données actuelles.
Jason DeFontes

0

Valider qu'il s'agit d'une adresse valide est une chose.

Mais si vous essayez de valider une personne donnée vit à une adresse donnée, votre seule quasi-garantie serait un courrier de test à l'adresse, et même cela n'est pas certain si la personne est organisée ou connaît quelqu'un à cette adresse.

Sinon, les gens pourraient simplement spécifier une adresse aléatoire arbitraire dont ils savent qu'elle existe et cela ne signifierait rien pour vous.

Le mieux que vous puissiez faire pour obtenir des résultats immédiats est de demander à l'utilisateur d'envoyer une copie photographiée / numérisée de la tête de son relevé bancaire ou d'une autre preuve de résidence récente, car au moins, ils doivent travailler plus dur pour l'oublier, et forgeage dit que les choses apparaissent facilement avec un niveau de base d'analyse médico-légale d'image.


0

Il n'y a pas de solution globale. Pour un pays donné, c'est au mieux assez délicat.

Au Royaume-Uni, le PostOffice contrôle les adresses postales et peut fournir (moyennant un coût) des informations d'adresse à des fins de validation.

Les agences gouvernementales tiennent également une longue liste d'adresses, et celles-ci sont centralisées dans le NLPG (National Land and Property Gazetteer).

En fait, la validation par rapport à ces listes est très difficile. La plupart des gens ne savent même pas exactement comment leur adresse est détenue par le bureau de poste. Certaines entreprises ne savent même pas quel numéro elles se trouvent dans une rue en particulier.

Votre meilleur pari est d'approcher une entreprise spécialisée dans ce genre de choses.


0

Pour les données d'adresse basées aux États -Unis, mon entreprise a utilisé GeoStan . Il a des liaisons pour C et Java (et nous avons créé une liaison Perl). Notez qu'il s'agit d'un produit commercial et qu'il n'est pas bon marché. Il est cependant assez rapide (~ 300 adresses par seconde) et offre des fonctionnalités telles que la certification CASS (remise de courrier en masse USPS), le marquage DPV (vérification du point de livraison) et le géocodage LON / LAT.

Il existe un module Perl Geo :: PostalAddress , mais il utilise l'heuristique et n'a pas les autres fonctionnalités mentionnées pour GeoStan.

Edit: certains ont mentionné `` le faire vous-même '', si vous décidez de le faire, une bonne source d'informations pour commencer est le US Census Tiger Data Set , qui contient beaucoup d'informations sur les États-Unis, y compris des informations d'adresse.


0

Yahoo a également une API Placemaker. Il n'est bon que pour les emplacements, mais il a un identifiant universel pour tous les emplacements du monde.

Il semble qu'il n'y a pas de norme dans la liste ISO .



0

Le service Fixaddress.com est disponible et fournit les services suivants,

1) Validation d'adresse.

2) Correction d'adresse.

3) Correction orthographique des adresses.

4) Corriger les erreurs phonétiques.

Fixaddress.com utilise les données USPS et Tiger comme données de référence.

Pour plus de détails, visitez le lien ci-dessous,

http://www.fixaddress.com/



0

Pour commencer, il peut être utile de lever l'ambiguïté sur ce que vous entendez par validation d'adresse. Souhaitez-vous géolocaliser une adresse et vous assurer qu'elle existe réellement? Essayez-vous de vous assurer qu'une adresse reçoit du courrier? Divulgation complète, je travaille pour une entreprise appelée Service Objects et nous proposons des API qui aident à résoudre ces deux scénarios. Nous recevons souvent des questions de nos clients sur la distinction entre une adresse physique et une adresse postale (qui peut parfois être différente) et je pense que ce serait une distinction importante à faire ici. Bien que Google Maps soit un outil de géolocalisation très utile, il ne fera pas grand-chose pour valider une adresse et vous donner des informations au-delà de l'endroit où les gmaps «pensent» l'adresse. Nous avons quelques blogs qui peuvent aider à identifier et expliquer ces sujets plus en détail:

Adresse postale vs adresse physique: quelle est la différence?

Validation d'adresse DOTS vs Google Maps: quelle est la différence?

Pour répondre à votre question, vous pouvez absolument effectuer une validation d'adresse avec les bons outils et des sources de données faisant autorité. Nous travaillons sur des solutions à cela sous la forme d'API qui aideraient à géolocaliser les adresses et à valider les adresses. Le premier aiderait à localiser réellement une adresse et le dernier aiderait à déterminer si une adresse est valide à des fins d'envoi postal. Si vous êtes intéressé, vous trouverez des liens vers les deux ci-dessous

Validation d'adresse

Adresse géocodage


-1

Pour les adresses américaines, vous pouvez exiger un état valide et vérifier que le code postal est valide. Vous pouvez même vérifier que le code postal est dans le bon état, mais au-delà de cela, je ne pense pas qu'il existe de nombreux tests que vous pourriez exécuter qui ne fourniraient pas beaucoup de faux négatifs.

Qu'essayez-vous de faire - éviter de simples erreurs ou imposer une sorte de contrôle d'identité?


Vous devez utiliser des services tiers payants.
mmcdole

Vous n'êtes pas obligé d'utiliser des outils tiers. L'USPS a des services Web qui font cela.
brian d foy

En fait, si la tâche que vous effectuez est "assurez-vous que cette adresse est acceptable pour les services postaux locaux", alors aux États-Unis, l'USPS pourrait être considéré comme la deuxième partie (mais cela fait du client qui a soumis l'adresse comme une sorte de tierce personne).
tripleee

-1

Les API peuvent jouer un rôle crucial dans l'analyse et la normalisation des données d'adresse postale. Ceci est utile en termes de reconnaissance et de vérification des adresses postales en vrac pour la livraison postale fournie par des sociétés telles que USPS et l'expédition de colis fournie par des sociétés telles que UPS et FedEx. La façon dont cela fonctionne est que le service de validation d'adresse renverra une adresse postale analysée avec des valeurs normalisées à la norme USPS. Vous pouvez en savoir plus à ce sujet dans cet article: https://www.tomtom.com/blog/maps/what-is-address-validation/


1
Vos réponses semblent de bonne qualité, mais il est possible que vous soyez signalé pour spam car toutes vos réponses contiennent jusqu'à présent un lien vers tomtom.com . Si vous n'êtes pas déjà au courant, vous voudrez peut-être lire: Comment ne pas être un spammeur
Ardent Coder
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.