Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Analisar endereço, cidade, estado, zip utilizável de uma string


Eu fiz muito trabalho neste tipo de análise. Como há erros, você não obterá 100% de precisão, mas há algumas coisas que você pode fazer para obter a maior parte do caminho e, em seguida, fazer um teste visual de BS. Aqui está a maneira geral de fazer isso. Não é código, porque é bem acadêmico escrevê-lo, não há estranheza, apenas muita manipulação de strings.

(Agora que você postou alguns dados de exemplo, fiz algumas pequenas alterações)
  1. Trabalhe para trás. Comece pelo CEP, que estará próximo ao final, e em um dos dois formatos conhecidos:XXXXX ou XXXXX-XXXX. Se isso não aparecer, você pode presumir que está na cidade, parte do estado abaixo.
  2. A próxima coisa, antes do zip, será o estado, e estará no formato de duas letras ou como palavras. Você também sabe quais serão - há apenas 50 deles. Além disso, você pode usar o som das palavras para ajudar a compensar os erros de ortografia.
  3. antes disso é a cidade, e é provavelmente na mesma linha do estado. Você pode usar um banco de dados de código postal para verificar a cidade e o estado com base no CEP, ou pelo menos usá-lo como um detector de BS.
  4. O endereço geralmente terá uma ou duas linhas. A segunda linha geralmente será o número do conjunto, se houver, mas também pode ser uma caixa postal.
  5. Será quase impossível detectar um nome na primeira ou na segunda linha, mas se não for prefixado com um número (ou se for prefixado com "attn:" ou "attention to:", isso pode lhe dar uma dica sobre se é um nome ou uma linha de endereço.

Eu espero que isso ajude de algum jeito.