это называется NLP или NLU
я сейчас решаю аналогичную задачу, вижу следующий подход (если есть гуру - покритикуйте)
город Москва: ул. Таллинская; улица Твардовского, Туркменский проспект (дома с 1 по 31). Серебряноборское лесничество
1) предварительная обработка текста фильтрами
город [имя] [.] ул [имя] [.] улица [имя] [.] [имя] [.] проспект дома с 1 по 31 [имя] [.] лесничество
2) вытаскивание значений
город [имя] ул [имя] [.] улица [имя] [.] [имя] [.] проспект дома [диапазон] [.] [имя] лесничество
3) нормализация
город [имя] [.] улица [имя] [.] улица [имя] [.] [имя] проспект дом [диапазон] [.] [имя] лесничество
если у вас тематика фиксирована, то можно выделить какие-то маркерные слова, в вашем случае это виды гео-объектов
[геообъект] [имя] [.] [геообъект][имя] [.] [геообъект] [имя] [.] [имя] [геообъект] [геообъект] [диапазон] [.] [имя] [геообъект]
4) обработка на предмет выделения смысловых токенов
город [имя]
улица [имя]
улица [имя]
[имя] проспект дом [диапазон]
[имя] лесничество
последний пункт может решаться как алгоритмически, так и при помощи НС. это уже надо смотреть насколько регулярный сам текст. поскольку у вас есть разделители в конкретном примере все тривиально решается