Comment analyser les Adresse, Ville, État et Code Postal utilisables à partir d’une seule chaîne

Lors de la migration de données d’une base de données Access vers SQL Server 2005, un défi courant se présente : analyser un champ d’adresse unique en ses composants individuels. Par exemple, une adresse peut être reçue d’un utilisateur ou d’une base de données existante sous la forme d’une chaîne encombrée, comme ceci :

A. P. Croll & Son 2299 Lewes-Georgetown Hwy, Georgetown, DE 19947

Avec environ 4 000 enregistrements à traiter, la tâche peut devenir écrasante. Cet article de blog vous guide à travers des méthodes pratiques et efficaces pour décomposer une chaîne d’adresse en parties utilisables : adresse, ville, état et code postal.

Comprendre le problème

Le défi

Le principal défi réside dans l’imprévisibilité des formats d’adresses. Chacune pourrait comprendre :

  • Variations dans la présentation des adresses (par exemple, inclusion des destinataires ou des numéros de suite)
  • Abréviations pour les états
  • Erreurs typographiques et incohérences de format
  • Codes postaux standards de 5 chiffres ou codes étendus zip+4

Hypothèses

Lors de la création d’une solution de parsing, nous supposons :

  1. Les adresses se trouvent aux États-Unis.
  2. Certaines entrées peuvent contenir des destinataires ou des lignes d’adresse secondaires (comme “Suite B”).
  3. Diverses abréviations et erreurs typographiques potentielles existent.

Stratégie d’analyse étape par étape

1. Commencer par le Code Postal

Commencez l’analyse depuis la fin de la chaîne d’adresse. Le code postal se trouve généralement près de la fin et apparaît généralement dans l’un des deux formats connus :

  • XXXXX (5 chiffres)
  • XXXXX-XXXX (zip+4)

Si aucun format n’est présent, vous êtes probablement toujours dans la section ville ou état.

2. Extraire l’État

Immédiatement avant le code postal, vous trouverez l’état. Cela peut être soit :

  • Une abréviation à deux lettres (par exemple, DE pour Delaware)
  • Écrit en entier, bien que cela soit moins courant

Utiliser une liste de référence des abréviations des états américains peut aider à normaliser les résultats. Les erreurs typographiques peuvent être atténuées en utilisant un algorithme Soundex pour la correction orthographique des noms d’états.

3. Identifier la Ville

En général, le nom de la ville apparaîtra juste avant l’état. Lors de l’analyse, vous pourriez croiser le code postal extrait avec une base de données de codes postaux pour en confirmer la validité. Cela sert de mécanisme de double vérification pour l’association ville-état.

4. Déterminer l’Adresse

L’adresse est normalement trouvée au début de la chaîne. Si plusieurs lignes sont présentes, la deuxième ligne contient souvent un numéro de suite ou une boîte postale. Décomposez cette section en composants en identifiant des motifs communs (par exemple, des caractères comme des virgules et des sauts de ligne).

5. Nommage des Lignes d’Adresse

Identifier des noms ou des destinataires peut être délicat. Une règle potentielle à appliquer :

  • Si une ligne n’est pas précédée par un nombre, ou commence par des termes tels que “attn :” ou “à l’attention de :”, considérez qu’il s’agit probablement d’un nom plutôt que d’une adresse.

Étapes finales et vérification visuelle

Après l’analyse, il est sage d’effectuer un examen visuel des résultats. En raison des erreurs inhérentes aux données sources et des variations de format, un examen manuel peut garantir qu’il n’existe pas de divergences significatives.

Conclusion

Bien que l’analyse d’une seule chaîne en composants d’adresse précis pose des défis dus aux incohérences et aux inexactitudes potentielles, suivre une approche structurée peut aider à rationaliser considérablement le processus. En travaillant en arrière à partir du code postal et en utilisant des vérifications par rapport à des données connues, vous pouvez extraire efficacement des informations d’adresse précieuses.

La mise en œuvre de ces méthodes vous permettra de maintenir une table organisée et normalisée pour vos enregistrements dans SQL Server, rendant le traitement futur des données beaucoup plus facile. Bonne analyse !