sql >> Database >  >> RDS >> Sqlserver

Bruikbaar straatadres, stad, staat, zip uit een string ontleden

Ik heb veel werk gedaan aan dit soort parsing. Omdat er fouten zijn, krijgt u geen 100% nauwkeurigheid, maar er zijn een paar dingen die u kunt doen om het grootste deel van de weg daar te krijgen en vervolgens een visuele BS-test te doen. Hier is de algemene manier om het aan te pakken. Het is geen code, want het is behoorlijk academisch om het te schrijven, er is geen gekheid, alleen veel stringbehandeling.

(Nu je wat voorbeeldgegevens hebt gepost, heb ik enkele kleine wijzigingen aangebracht)

  1. Werk achteruit. Begin met de postcode, die bijna aan het einde komt, en in een van de twee bekende formaten:XXXXX of XXXXX-XXXX. Als dit niet verschijnt, kunt u ervan uitgaan dat u zich in de stad, deelstaat, hieronder bevindt.
  2. Het volgende, vóór de zip, is de staat, en het zal ofwel in een tweeletterig formaat zijn, of als woorden. Je weet ook wat deze zullen zijn -- er zijn er maar 50. U kunt ook de woorden soundex gebruiken om spelfouten te compenseren.
  3. daarvoor is de stad, en het is waarschijnlijk op dezelfde lijn als de staat. Je zou een zip-code database kunnen gebruiken om de stad en staat te controleren op basis van de zip, of gebruik het in ieder geval als een BS-detector.
  4. Het adres zal over het algemeen een of twee regels zijn. De tweede regel is over het algemeen het suitenummer als dat er is, maar het kan ook een postbus zijn.
  5. Het zal bijna onmogelijk zijn om een ​​naam op de eerste of tweede regel te detecteren, maar als het niet wordt voorafgegaan door een nummer (of als het wordt voorafgegaan door een "attn:" of "attention to:", zou het je kunnen geven een hint of het een naam of een adresregel is.

Ik hoop dat dit enigszins helpt.



  1. roep een eenvoudige databaseprocedure op met Slick 3.0

  2. Rails Console - Vind waar gemaakt op =bepaalde dag

  3. Is een MySQL-view sneller dan een normale query?

  4. Android Studio controleert/markeert Kotlin Room DAO-query's niet wanneer string meer dan 1 rij beslaat