I think it should be implemented with some sort of machine learning algorithm.
Não
How can I do this?
Use um shapefile com polilinhas das regiões (são mais ou menos arquivos cheios de pares de coordenadas com um pouco de metadados associados). Use algo como a API de geocodificação do Google Maps para codificar geograficamente o endereço (você envia um endereço e envia de volta um par de coordenadas). Escreva um simples algoritmo * para determinar em qual polígono do arquivo de forma as coordenadas geocodificadas se encontram. Você pode encontrar shapefiles em toda a web, especialmente de agências governamentais como a NOAA. O USGS também tem uma coleção decente. Eu acredito que isso resolve o problema sem quebrar nenhuma das leis da robótica, então eu nem sequer me preocuparia com uma solução orientada por IA. :)
* Gostaria de começar aqui para uma boa referência para você começar. Além disso, não se esqueça de que a Terra é curva, então os cálculos de distância funcionam um pouco diferentes do que no plano plano (pense em radianos).