Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Analyser l'adresse, la ville, l'état et le code postal utilisables à partir d'une chaîne

J'ai beaucoup travaillé sur ce type d'analyse. Parce qu'il y a des erreurs, vous n'obtiendrez pas une précision de 100%, mais il y a quelques choses que vous pouvez faire pour y arriver, puis faire un test visuel BS. Voici la manière générale de procéder. Ce n'est pas du code, car c'est assez académique de l'écrire, il n'y a pas d'étrangeté, juste beaucoup de manipulation de chaînes.

(Maintenant que vous avez publié des exemples de données, j'ai apporté quelques modifications mineures)

  1. Travaillez en arrière. Commencez par le code postal, qui sera près de la fin, et dans l'un des deux formats connus :XXXXX ou XXXXX-XXXX. Si cela ne s'affiche pas, vous pouvez supposer que vous vous trouvez dans la partie ville, état, ci-dessous.
  2. La prochaine chose, avant le zip, sera l'état, et ce sera soit dans un format à deux lettres, soit sous forme de mots. Vous savez ce que ce seront aussi - il n'y en a que 50. Vous pouvez également répéter les mots pour compenser les fautes d'orthographe.
  3. avant c'est la ville, et c'est probablement sur la même ligne que l'état. Vous pouvez utiliser une base de données de codes postaux pour vérifier la ville et l'état en fonction du code postal, ou au moins l'utiliser comme détecteur BS.
  4. L'adresse municipale comportera généralement une ou deux lignes. La deuxième ligne sera généralement le numéro de bureau s'il y en a un, mais il peut également s'agir d'une boîte postale.
  5. Il sera presque impossible de détecter un nom sur la première ou la deuxième ligne, mais s'il n'est pas préfixé par un chiffre (ou s'il est préfixé par "attn :" ou "attention à :", cela pourrait vous donner un indice indiquant s'il s'agit d'un nom ou d'une ligne d'adresse.

J'espère que cela aide un peu.