Как вы проводите проверку адреса? - PullRequest
84 голосов
/ 25 сентября 2008

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

Ответы [ 20 ]

25 голосов
/ 30 сентября 2008

Вот бесплатный и некий «нестандартный» способ сделать это. Не на 100% идеально, но оно должно отвергать явно несуществующие адреса.

Отправьте полный адрес в Веб-сервис геокодирования Google . Эта служба пытается вернуть точные координаты местоположения, в котором вы ее указали, то есть широту и долготу.

По моему опыту, если адрес неверен, вы получите результат 602 от службы. Определенно существует вероятность ложных срабатываний или ложных отрицательных результатов, но в сочетании с другими проверками согласованности это может быть полезно.

( Веб-служба геокодирования Yahoo , с другой стороны, вернет координаты центра города, если город существует, но остальная часть адреса является поддельной. Потенциально полезна, пока вы платите пристальное внимание на поле «точность» в результате).

18 голосов
/ 13 октября 2011

Здесь есть много хороших ответов, но большинство из них предполагают, что пользователь хочет решение "API", где он должен написать код для подключения к сторонней службе и / или очистить экран USPS. Это все хорошо, но следует учитывать бизнес-требования и затраты, связанные с внедрением, а затем сопоставлять их с желаемыми преимуществами.

В зависимости от бизнес-требований и способа получения данных в систему, решение для обработки адресов в реальном времени может быть лучшим выбором. Если требуется решение в режиме реального времени, вам необходимо учитывать лицензионное соглашение и технические ограничения API Карт Google / Bing / Yahoo. Как правило, они ограничивают количество звонков, которые вы можете совершать каждый день. API веб-инструментов USPS аналогичен дополнительному, они ограничивают то, как / почему вы можете использовать их систему и как вам разрешено использовать данные после этого.

В то же время есть несколько отличных поставщиков услуг, которые могут легко обрабатывать статический список адресов. По сути, вы предоставляете поставщику услуг файл CSV или файл Excel, они очищают его и возвращают вам. Это разовая сделка без долгосрочных обязательств или обязательств - обычно.

Полное раскрытие: я основатель SmartyStreets. Мы осуществляем проверку адресов для адресов в Соединенных Штатах. Мы легко можем CASS сертифицировать список , а также предлагаем API веб-службы проверки адреса . У нас нет скрытых платежей, контрактов или чего-то еще. Вы пользуетесь нашим сервисом до тех пор, пока он вам больше не понадобится, и вы сможете уйти. (В отличие от компаний сотовой связи, которым требуется контракт.)

14 голосов
/ 30 сентября 2008

У USPS есть очиститель адресов онлайн , который кто-то скроллнул по экрану в веб-службу бедного человека. Однако, если вы делаете это достаточно часто, было бы лучше подать заявку на учетную запись USPS и вызвать собственную веб-службу .

10 голосов
/ 23 июля 2009

Я отошлю вас к моему сообщению в блоге - Урок по хранению адресов , я расскажу о некоторых методах и алгоритмах, используемых в процессе проверки адресов. Моя ключевая мысль: «Не ленитесь с хранением адресов, в будущем у вас не будет ничего, кроме головной боли!»

Кроме того, есть еще один вопрос StackOverflow, который задает этот вопрос. Под названием Как международные географические адреса должны храниться в реляционной базе данных .

7 голосов
/ 19 января 2017

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

Бесплатное программное обеспечение с открытым исходным кодом

Ясно, что первый подход, который любой выберет, - это метод с открытым исходным кодом (например, openstreetmap.org ), который никогда не бывает плохой идеей. Но то, сможете ли вы действительно использовать это для хорошего и надежного использования, во многом зависит от того, насколько вам нужно полагаться на результаты.

Адреса - невероятно переменная вещь. Проверка адресов в США - задача не из легких, но сносная, но как только вы отправитесь в Европу, особенно в Великобританию с ее обширной системой почтовых индексов, в подходе с открытым исходным кодом просто не будет данных.

Веб-сервисы / API

Программное обеспечение корпоративного класса

Деньги делают это, очевидно. Но не каждый бизнес или разработчик может тратить ~ 0,15 долл. На поиск адресов (это 150 долл. На 1000 запросов API) - очень дорогая бизнес-модель, которую внедрило подавляющее большинство API проверки адресов.

Что я в итоге интегрировал: API Streetlayer

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

Короче говоря, я закончил тем, что интегрировал API, созданный apilayer, под названием "Streetlayer API". Меня легко убедили простая интеграция JSON, удивительно точные результаты валидации и их дружественные цены для разработчиков. Кроме того, 100 запросов / месяц совершенно бесплатно.

Надеюсь, это поможет!

1 голос
/ 22 декабря 2017

Вы можете попробовать Api Pidney Bowes «IdentifyAddress», доступный по адресу - https://identify.pitneybowes.com/

Служба анализирует и сравнивает входные адреса с известными адресными базами данных по всему миру для вывода стандартизированной детализации. Он исправляет адреса, добавляет недостающую почтовую информацию и форматирует ее, используя формат, предпочитаемый соответствующим почтовым органом. Я также использую дополнительные базы данных адресов, чтобы обеспечить улучшенную детализацию, в том числе качество адреса, тип адреса, транслитерацию (например, с китайского иероглифа на латинские символы) и подтверждение того, был ли адрес подтвержден до номера помещения / дома, улицы или города. справочной информации.

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

1 голос
/ 13 ноября 2012

Как видно на reddit :

$address = urlencode('1600 Pennsylvania Avenue, Washington, DC');
$json = json_decode(file_get_contents("http://where.yahooapis.com/geocode?q=$address&flags=J"));
print_r($json);
1 голос
/ 20 февраля 2011

Вы также можете попробовать решения SAP для обеспечения качества данных, которые доступны как на серверной платформе, которая обрабатывает большое количество запросов, так и в виде встраиваемого SDK, если вы хотите запустить его вместе с приложением. Мы используем его в нашем приложении, и оно очень надежное и масштабируемое.

1 голос
/ 25 сентября 2008

Для наших адресных данных моя компания использовала GeoStan . У него есть привязки для C и Java (и мы создали привязку Perl). Обратите внимание, что это коммерческий продукт и не дешевый. Хотя он довольно быстрый (~ 300 адресов в секунду) и предлагает такие функции, как сертификация CASS (скидка на рассылку USPS), маркировка DPV (проверка точки доставки) и геокодирование LON / LAT.

Существует модуль Perl Geo :: PostalAddress , но он использует эвристику и не имеет других функций, упомянутых для GeoStan.

Редактировать: некоторые упомянули «делай сам», если ты решишь это сделать, хорошим источником информации для начала является Набор данных по тигровой переписи США , который содержит много информации о США, включая информацию об адресе.

1 голос
/ 30 сентября 2008

Я пользовался услугами http://www.melissadata.com Их "адресный объект" работает очень хорошо. Это дорого, да. Но если учесть затраты на написание собственных решений, стоимость грязных данных в вашем приложении, возвращенных почтовых программ - потерянные продажи и т. Д. - затраты могут быть оправданы.

...