Я не знаю ни одной библиотеки, которая делает это ... но это звучит как отличная проблема искусственного интеллекта:)
Если у вас есть какие-либо существующие адресные книги в форме ASCII / Unicode, вы можете использовать их для генерации шаблонов регулярных выражений, а затем запустить все известные шаблоны регулярных выражений адресов для своего случайного текста и посмотреть, что получится. Таким образом, вы могли бы «научить» свой алгоритм вести себя на основе известных форматов адресов. Я подозреваю, что если какие-либо библиотеки существуют для такого рода вещей, вероятно, именно так они и поступили бы, потому что, вероятно, существует ТОННА различных способов форматирования уличного адреса.
Одним из примеров может быть типичный адрес улицы США. Например:
1234 Main St. NW, Some City, ST, 12345 //[ST] = two-letter state abbreviation
Вы можете написать регулярное выражение, которое ищет два числа и промежуточное сокращение состояния. Конечно, это будет работать только для уличных адресов США, оно не будет охватывать их все, и вам нужно быть осторожным, чтобы ограничить свое регулярное выражение, чтобы избежать ложных срабатываний, но вы можете добавить это регулярное выражение в свой список возможностей.