Я не знаю контекста вашего вопроса, так что, возможно, это совершенно не по теме, но здесь я это сделал несколько месяцев назад:
Я работаю над очень сложной частью обработки естественного языка с помощью API геокодирования Google.
API позволяет отправлять полнотекстовый адрес и возвращать хорошо отформатированный XML-файл, из которого можно легко извлечь улицу, город или любую другую информацию, которая вам нужна.
Возможно, это не то решение, которое вы ищете, но если вы сможете использовать API Карт, вы сэкономите много времени и усилий: http://code.google.com/apis/maps/documentation/geocoding/