Хорошие библиотеки разбора адресов / строк в Java? - PullRequest
0 голосов
/ 03 апреля 2012

Я ищу любые библиотеки в Java, которые могут анализировать адрес из обычной строки текста. Текст может содержать все типы специальных и не специальных символов :(, но все, что я действительно хочу извлечь из исходной строки, это грубая адресная строка.

Другими словами, как бы я вытащил адрес из случайной строки, содержащей в нем адрес? Формат на самом деле не имеет большого значения, если на выходе есть где-то улица и номер. Вы бы использовали регулярные выражения для этого, если бы не было никаких библиотек?

1 Ответ

2 голосов
/ 03 апреля 2012

Я не знаю ни одной библиотеки, которая делает это ... но это звучит как отличная проблема искусственного интеллекта:)

Если у вас есть какие-либо существующие адресные книги в форме ASCII / Unicode, вы можете использовать их для генерации шаблонов регулярных выражений, а затем запустить все известные шаблоны регулярных выражений адресов для своего случайного текста и посмотреть, что получится. Таким образом, вы могли бы «научить» свой алгоритм вести себя на основе известных форматов адресов. Я подозреваю, что если какие-либо библиотеки существуют для такого рода вещей, вероятно, именно так они и поступили бы, потому что, вероятно, существует ТОННА различных способов форматирования уличного адреса.

Одним из примеров может быть типичный адрес улицы США. Например:

1234 Main St. NW, Some City, ST, 12345 //[ST] = two-letter state abbreviation

Вы можете написать регулярное выражение, которое ищет два числа и промежуточное сокращение состояния. Конечно, это будет работать только для уличных адресов США, оно не будет охватывать их все, и вам нужно быть осторожным, чтобы ограничить свое регулярное выражение, чтобы избежать ложных срабатываний, но вы можете добавить это регулярное выражение в свой список возможностей.

...