Io stesso sono molto affascinato da come Google gestisce questo. Non ricordo di aver visto nulla di simile da nessun'altra parte.
Credo, si tenta di separare una stringa di input in parole cercando vari delimitatori - spazio, virgola, punto e virgola ecc. Quindi si hanno diverse combinazioni. Per ogni combinazione, prendi ciascuna parola e la confronta con il paese, la città, la città, il database dei codici postali. Quindi definisci alcune metriche su come valutare il risultato della corrispondenza di gruppo per ciascuna combinazione. Qui dovrebbero anche esserci regole incrociate, come se il codice postale non combaci bene, ma paese, città, città corrispondono bene e in combinazione si riferiscono ad un indirizzo valido, quindi la metrica produce un punteggio alto.
È sicuramente difficile e non un esercizio di codice serale. Richiede anche forti risorse computazionali: un hosting condiviso probabilmente creerebbe solo 10 richieste, ma un data center potrebbe funzionare bene.
Non sicuro se c'è un'implementazione di esempio. Molti servizi geografici sono offerti su base retribuita. Qualcosa che sofisticato come GoogleMaps sarebbe probabilmente costato una fortuna.
Correggimi se sbaglio.