Я сам очень увлечен, как Google обрабатывает это. Я не помню ничего подобного.
Полагаю, вы пытаетесь отделить строку ввода словами, используя разные разделители - пробел, запятую, точку с запятой и т. Д. Затем у вас есть несколько комбинаций. Для каждой комбинации вы берете каждое слово и сопоставляете его с данными из страны, города, города, базы данных почтовых индексов. Затем вы определяете некоторую метрику о том, как оценивать результат сопоставления групп для каждой комбинации. Здесь также должны быть перекрестные правила, например, если почтовый код не соответствует хорошо, но страна, город, город хорошо сочетаются и в совокупности ссылаются на действительный адрес, тогда метрика дает высокую оценку.
Это уверенный трудный, но не вечерний тренинг. Это также требует сильных вычислительных ресурсов - общий хостинг, вероятно, взломает всего 10 запросов, но центр обработки данных может хорошо его обслуживать.
Не уверен, есть ли пример реализации. Многие географические услуги предоставляются на платной основе. Что-то сложное, как GoogleMaps, скорее всего, будет стоить целое состояние.
Исправьте меня, если я ошибаюсь.