Выясните, является ли строка адресом улицы, номером апартаментов, торговым центром или чем-то еще - PullRequest
2 голосов
/ 15 декабря 2011

Я использую javascript для анализа некоторых данных и натолкнулся на них.

У меня есть поле из 1-3 строк данных.
Обычно этотолько одна строка, представляющая адрес улицы:

1234 Hollywood St.

Но иногда это выглядит примерно так:

Beverly Hills Shopping Center
1234 Hollywood St.

В других случаяхэто вот что:

1234 Hollywood St
Ste 12

И в остальное время такие вещи, как это:

1234 Hollywood St
2nd Floor
(between Hollywood St and Tom Cruise Ave)

Мне бы очень хотелось узнать, какая строка являетсяадрес улицы.В настоящее время я пытаюсь определить, какая строка является «Адресной строкой 2», то есть Номер #, Номер этажа и т. Д. Мне не нужен адрес, строка 2, но в процессе исключения это помогаетполучите мне уличный адрес.

Есть ли хороший инструмент, например, функция регулярных выражений, или что-то, что скажет мне, является ли строка вероятным адресом улицы?

Или есть другой способ, которымЯ мог бы справиться с этим?

Спасибо!

Редактировать:

Этот алгоритм не должен быть на 100%.Я готовлю адрес для отправки в API Google Maps для проверки.Я мог бы попробовать каждую строку адреса, чтобы увидеть, какой из них действителен, но это увеличило бы количество звонков в Google и несло бы небольшой, но конечный шанс ложного срабатывания.

Я бы хотел немного почистить данные, прежде чем проверять через Google, чтобы уменьшить количество ошибок и необходимость в дополнительных вызовах.

Ответы [ 3 ]

2 голосов
/ 12 января 2012

Как указано в другом ответе, это работа для службы проверки адресов. Обратите внимание, что API карт Google не является службой проверки адресов - его лучше всего описать как очень способную службу приближения адресов (есть заметная разница).

Проверка адреса подразумевает, что адрес в настоящее время является реальным, что означает, что он соответствует фактическому местоположению. Часто это означает, что адрес является доставляемым (в зависимости от потребностей бизнеса).

Я разработчик программного обеспечения в SmartyStreets , компании по проверке адресов. Мы предоставляем инструмент для пакетной обработки , который, как мне кажется, хорошо подходит для вашего случая использования. Поскольку наша система принимает до двух строк ввода для адреса улицы, я предлагаю сгенерировать несколько перестановок для каждого адреса, который имеет более 2 строк адреса улицы. Это также очень быстро (1 миллион адресов обрабатывается менее чем за час) и не требует от нас никакого взаимодействия, потому что это онлайн-сервис.

Еще одна приятная новость заключается в том, что вам, возможно, даже не понадобится отправлять адрес в API карт Google, поскольку они уже будут Точка доставки Подтверждена. Но это будет зависеть от ваших точных потребностей.

Обновление : SmartyStreets теперь обеспечивает международную проверку адреса .

1 голос
/ 15 декабря 2011

Прежде всего взгляните на следующие официальные сокращения USPS
Сокращения суффиксов улиц
Обозначения вторичных устройств

Тогда у вас будет представление о том, что вы будете ожидать в качестве входных данных, но вы также должны принять во внимание все возможные неофициальные вариации / знаки препинания и т. Д. .... Многое нужно сделать ...

Как правило, адресная строка улицы должна начинаться с цифры, за которой следует пробел (отделяет его от 2-го этажа и т. Д.), Одно или несколько слов и, наконец, сокращение суффикса улицы. Для города, штата, почтового индекса снова необходимо смешать полные названия штатов и их аббревиатуры (включая короткие варианты, такие как N York, N.York или N. York) и запомнить случаи zip5 и zip5 + 4.

1 голос
/ 15 декабря 2011

Доступны веб-сервисы, по которым вы можете передать адрес, и он вернет правильно сформированный объект json / xml с проанализированным адресом.Возможно, что-то подобное поможет вам?Как некоторые из комментариев государства.Вы не сможете сделать это просто с помощью javascript

. Вот один сервис, который я лично искал в использовании.Вам нужно будет ознакомиться с API

https://webgis.usc.edu/Services/AddressNormalization/WebService/DeterministicNormalizationWebService.aspx

...