web-dev-qa-db-fra.com

Comment effectuez-vous la validation des adresses?

Est-il même possible d'effectuer une validation d'adresse (physique, pas de courrier électronique)? Il semble que le grand nombre de formats d'adresses, même aux États-Unis seulement, rendrait la tâche assez difficile. D'autre part, cela semble être une tâche nécessaire pour répondre à plusieurs besoins de l'entreprise.

80
Kevin Pang

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

Envoyez l'adresse complète à le 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 est invalide, vous obtiendrez un résultat de 602 du service. Il existe certainement une possibilité de faux positifs ou de faux négatifs, mais utilisé conjointement avec d'autres contrôles de cohérence, il pourrait s'avérer 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 le reste de l'adresse est bidon. Potentiellement utile tant que vous portez une attention particulière au "précision" dans le résultat).

24
Tim Farley

Il y a un certain nombre de bonnes réponses ici, mais la plupart d'entre elles supposent que l'utilisateur souhaite une solution "API" dans laquelle il doit écrire du code pour se connecter à un service tiers et/ou filtrer l'USPS. Tout cela est bien beau, mais devrait être pris en compte dans les exigences commerciales et les coûts associés à la mise en œuvre, puis pesé par rapport aux avantages souhaités.

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

Parallèlement, il existe une poignée d'excellents fournisseurs de services pouvant traiter facilement une liste d'adresses statiques. Essentiellement, vous donnez au fournisseur de services un fichier CSV ou Excel, ils le nettoient et vous le rendent. C'est un accord ponctuel 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 situées aux États-Unis. Nous sommes facilement en mesure de CASS certifier une liste et nous proposons également un service de vérification de l'adresse Web API . 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 vous en aller. (Contrairement aux entreprises de téléphonie cellulaire qui nécessitent un contrat.)

16
Jonathan Oliver

USPS a une adresse plus propre en ligne , que quelqu'un a l'écran a gratté dans le service Web d'un homme pauvre. Cependant, si vous le faites assez souvent, il serait préférable de demander un compte USPS et d'appeler leur propre webservice .

14
Mark Brackett

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

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

10
BenAlabaster

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

Logiciel libre et open source

Il est clair que la première approche à adopter est une approche open source (comme openstreetmap.org ), ce qui n’est jamais une mauvaise idée. Mais si vous pouvez réellement utiliser cela de manière satisfaisante 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 des États-Unis n’est pas une tâche facile, mais supportable, mais une fois que vous vous dirigez vers l’Europe, en particulier le Royaume-Uni avec son système de code postal complet, l’approche open source manquera tout simplement de données. 

Services Web/API

Logiciel de classe entreprise

L'argent le fait, évidemment. Cependant, toutes les entreprises et tous les développeurs ne peuvent pas dépenser environ 0,15 USD par recherche d'adresse (soit 150 USD pour 1 000 demandes d'API), un modèle commercial très coûteux que la grande majorité des API de validation d'adresses ont implémentée. 

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

N'étant pas disposé à adopter l'approche programmatique consistant à vérifier manuellement les données d'adresse, j'ai finalement conclu que j'avais besoin d'une API avec un prix qui ne donnerait pas à mon patron l'envie de me renvoyer et resterait solide et fiable. résultats de la vérification internationale. 

Bref, j'ai fini par intégrer une API construite par apilayer, appelée "streetlayer API". Une intégration JSON simple, des résultats de validation étonnamment précis et leur tarification adaptée aux développeurs m'ont facilement convaincu. De plus, 100 demandes/mois sont entièrement gratuites. 

J'espère que cela t'aides! 

6
Frank

Vous pouvez essayer l’API «IdentifyAddress» de Pitney Bowes disponible à l’adresse - https://identify.pitneybowes.com/

Le service analyse et compare les adresses d'entrée aux bases de données d'adresses connues dans le monde entier pour générer un détail standardisé. Il corrige les adresses, ajoute les informations postales manquantes et les formate selon le format préféré par l'autorité postale concernée. J'utilise également des bases de données d'adresses supplémentaires afin de fournir des détails améliorés, notamment la qualité de l'adresse, le type d'adresse, la translittération (du kanji chinois aux caractères latins, par exemple) et d'indiquer 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 beaucoup d’échantillons et de sdk disponibles sur le site et j’ai trouvé cela extrêmement facile à intégrer.

1
Parag Mittal

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 décent pour les champs d’adresse de forme libre, si vous avez la chance d’avoir ce genre de données. 

1
Jason DeFontes

J'ai utilisé les services de http://www.melissadata.com Leur "objet adresse" fonctionne très bien. C'est cher, oui. Mais si vous tenez compte des coûts liés à la rédaction de vos propres solutions, du coût des données altérées dans votre application, des expéditeurs retournés - ventes perdues, etc. - les coûts peuvent être justifiés. 

1
Taptronic

Comme on le voit 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
Xeoncross

Pour les données d’adresse basées sur nous, mon entreprise a utilisé GeoStan . Il a des liaisons pour C et Java (et nous avons créé une liaison Perl). Notez que c'est un produit commercial et n'est pas bon marché. Il est cependant assez rapide (environ 300 adresses par seconde) et offre des fonctionnalités telles que la certification CASS (remise de courrier en bloc USPS), le marquage DPV (point de livraison) et le géocodage LON/LAT.

Il existe un module Perl Geo :: PostalAddress , mais il utilise des méthodes heuristiques et ne possède pas les autres fonctionnalités mentionnées pour GeoStan.

Edit: certains ont mentionné «faites-le vous-même». Si vous décidez de le faire, le US Census Tiger Data Set , contient de nombreuses informations sur les États-Unis, y compris l'adresse. information.

1
Kyle Burton

Vous pouvez également essayer les solutions Data Quality de SAP disponibles tant sur une plate-forme serveur que sur le traitement d'un grand nombre de demandes, ou sous la forme d'un SDK intégrable si vous souhaitez l'exécuter avec votre application. Nous l'utilisons dans notre application, elle est très robuste et évolutive.

1
James Cheng

La valider est une adresse valide, c'est une chose. 

Mais si vous essayez de valider qu'une personne donnée habite à une adresse donnée, votre seule presque-garantie serait un courrier test à l'adresse, et même si 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 qui ne voudrait rien dire 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/scannée du relevé de son relevé bancaire ou une autre preuve de résidence récente, car au moins ils doivent redoubler d’efforts pour l’oublier la falsification des choses dites s’affiche facilement avec un niveau élémentaire d’analyse judiciaire des images. 

0
Kent Fredric

NAICS.com propose une API qui ajoutera toutes sortes de données commerciales clés, y compris l'adresse postale. Cela se produirait à la volée lors du traitement des formulaires de votre site. https://www.naics.com/business-intelligence-api/

0
Jillian Baker

Yahoo a également un API Placemaker. Ce n'est utile que pour les lieux mais il a un identifiant universel pour tous les lieux du monde.

Il semble qu’il n’existe pas de norme dans ISO list .

0
Elzo Valugi

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

Au Royaume-Uni, PostOffice contrôle les adresses postales et peut fournir (moyennant des frais) des informations sur les adresses à des fins de validation.

Les agences gouvernementales conservent également une longue liste d'adresses, qui sont regroupées de manière centralisée dans le Répertoire géographique national des biens fonciers et naturels.

En réalité, il est très difficile de valider par rapport à ces listes. La plupart des gens ne savent même pas exactement comment leur adresse est celle de PostOffice. Certaines entreprises ne savent même pas quel numéro elles ont dans une rue.

Le mieux est d’approcher une entreprise spécialisée dans ce genre de choses.

0
Kramii

Il y a des entreprises qui fournissent ce service. Les bureaux de service traitant de publipostage groupent une liste de diffusion entière au format approprié, ce qui entraîne une réduction des frais de port. L'USPS vend des bases de données d'informations sur les adresses qui peuvent être utilisées pour développer des solutions personnalisées. Ils ont également des listes de fournisseurs approuvés qui fournissent ce type de logiciel et de service.

Il y a quelques paquets (mais pas beaucoup) qui ont des API pour la validation des adresses par accrochage dans votre logiciel.

Cependant, vous avez raison, c’est un problème assez désagréable.

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

0
Jason

Un domaine dans lequel la recherche d'adresse doit être effectuée de manière fiable concerne les services VOIP E911. Je connais des entreprises qui utilisent de manière fiable les services suivants pour cela:

Bandwidth.com Validation de l'adresse MSAG de l'API d'accès 9-1-1

MSAG = Master Street Address Guide

https://www.bandwidth.com/9-1-1/

SmartyStreet US Street Address API

https://smartystreets.com/docs/cloud/us-street-api

0
Grokify

Comme mentionné, il existe de nombreux services sur le marché. Si vous souhaitez valider véritablement l'adresse complète, je vous recommande vivement d'utiliser un service de type service Web 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'adresses aux États-Unis. http://www.webservicex.net/WCF/ServiceDetails.aspx?SID=24

0
Mitchel Sellers

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

1) Validation d'adresse.

2) correction d'adresse.

3) Correction orthographique d'adresse.

4) Corrige les erreurs phonétiques des adresses.

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
Rakesh Chaudhari