Вопрос по java, parsing – Есть ли анализатор Java, который может анализировать адреса, как это [дубликата]

7

This question already has an answer here:

How to parse freeform street/postal address out of text, and into components 8 answers

Я использую Java 6. Я ищу автоматический способ анализа адресов. Меня не волнует, существуют ли адреса или нет. Лучшее, что я нашел, это JGeocoder (v 0.4.1), но JGeocoder не может разобрать адреса, подобные этому

16th Street Theater, Berwyn Cultural Center,  6420 16th St.

Кто-нибудь знает о бесплатном парсере Java-адресов, который справится с этой задачей? "Разобрать" Я имею в виду способность различать улицу, город, штат, почтовый индекс и, возможно, название места (название места выше - «Театр 16-й улицы, Культурный центр Бервин»).

Удачи. Это хорошо известноextremely сложная проблема, в основном из-за бесконечного разнообразия форматирования адресов. Проделав большую часть работ такого типа еще в 80-х годах, я могу гарантировать, что не существует идеального (или даже идеального) решения на 99%. Вам нужны разные правила синтаксического анализа для разных стран и даже для регионов внутри страны, а также большой словарь исключений. Если вы ограничены адресом США, вам может помочь веб-сайт Почтовой службы США. Jim Garrison

Ваш Ответ

3   ответа
6

Update: Эта тема более подробно освещена вэтот вопрос StackOverflow.

Я работаю наSmartyStreets где мы разбираем и обрабатываем адреса, и у нас есть ответ. Это то, что мы называем & quot;SLAP& Quot; или жеРазбор (или обработка) однострочного адреса, Формальный терминПризнание именованного субъекта (NER).

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

Google / Yahoo! / Bing Maps web services do not allow automated queries and do not verify accuracy of the parsed address.

In-house code can make also only make a best guess without any knowledge of existent addresses (a database) or other sorts of official sources. I know you want a library that can do this in-house, but you can at best make a guess...

By the way, regular expressions are not the answer. The best regex I've seen to parse addresses was dynamically generated over hundreds of lines of code and several classes. It was a mess, and was only correct for types of addresses you'd expect, not all the valid (US) formats there actually are.

Это невероятно сложная задача ... если у вас нет подходящих инструментов. Один из наших сервисов называетсяAPI LiveAddressи он похож на Карты Google в том, что он анализирует адреса и геокодирует их, но делает шаг вперед, будучи сертифицированным CASS и возвращая толькоvalid адреса, почти независимо от формата ввода.

Я рекомендую вам провести собственное исследование, но это, вероятно, самый эффективный и надежный метод.

Как я и опасался, эта услуга не бесплатна. Я не помечаю это как правильное только потому, что я указал, что искал что-то бесплатное. Однако, возможно, вы получите хорошую рекламу, так как люди находят этот ответ через Google. Dave
На самом деле это бесплатно; это стоит денег, только если вы выберете более высокий лимит запросов, чем по умолчанию 250 / мес. Но, конечно, вы должны найти что-то, чтобы удовлетворить ваши потребности. Дайте нам знать, что вы решите, если найдете что-то еще!
0

TOS не разрешает автоматические запросы.
3

https://code.google.com/p/usaddressparser/ Разбирает адресную строку США и разбивает ее на поля (номер, улица, номер, город, почтовый индекс и т. Д.). Java баночка и исходники

на самом деле, есть код, он просто похоронен в zip-файле
кажется, эта страница проекта была создана, и ни одна строка кода не была написана

Похожие вопросы