Как вы выполняете проверку адреса?
-
02-07-2019 - |
Вопрос
Возможно ли вообще выполнить проверку адреса (физического, а не электронной почты)?Похоже, что огромное количество форматов адресов, даже в одних только США, сделает эту задачу довольно сложной.С другой стороны, это похоже на задачу, которая необходима для удовлетворения нескольких бизнес-требований.
Решение
Вот бесплатный и своего рода «нестандартный» способ сделать это.Не на 100% идеально, но он должен отклонять явно несуществующие адреса.
Отправьте полный адрес Веб-сервис геокодирования Google.Этот сервис пытается вернуть точные координаты местоположения, которое вы ему передаете, т.е.широта и долгота.
По моему опыту, если адрес недействителен, вы получите от службы результат 602.Определенно существует вероятность ложноположительных или ложноотрицательных результатов, но использование в сочетании с другими проверками согласованности может быть полезно.
(Веб-сервис геокодирования Yahoo, с другой стороны, вернет координаты центра города, если город существует, но остальная часть адреса является поддельной.Потенциально полезно, если вы обратите пристальное внимание на поле «точность» в результате).
Другие советы
Здесь есть несколько хороших ответов, но большинство из них предполагают, что пользователю нужно решение «API», в котором он должен написать код для подключения к сторонней службе и/или очистки экрана USPS.Это все хорошо, но следует учитывать бизнес-требования и затраты, связанные с внедрением, а затем сопоставлять их с желаемыми преимуществами.
В зависимости от бизнес-требований и способа поступления данных в систему лучшим выбором может быть решение для обработки адресов в реальном времени.Если требуется решение в режиме реального времени, вам следует принять во внимание лицензионное соглашение и технические ограничения API Google Maps/Bing/Yahoo.Обычно они ограничивают количество звонков, которые вы можете совершать каждый день.API веб-инструментов USPS такой же, кроме того, они ограничивают то, как и почему вы можете использовать их систему, а также то, как вам разрешено использовать данные в дальнейшем.
В то же время есть несколько отличных поставщиков услуг, которые могут легко обрабатывать статический список адресов.По сути, вы предоставляете поставщику услуг файл CSV или файл Excel, он очищает его и возвращает вам.Обычно это разовая сделка без каких-либо долгосрочных обязательств или обязательств.
Полное раскрытие:Я основатель SmartyStreets.Мы проводим проверку адресов для адресов в Соединенных Штатах.Мы легко можем CASS удостоверяет список а также мы предлагаем API веб-службы проверки адреса.У нас нет скрытых комиссий, договоров и прочего.Вы пользуетесь нашим сервисом до тех пор, пока он вам больше не понадобится и вы не сможете уйти.(В отличие от компаний сотовой связи, которым требуется контракт.)
У USPS есть очиститель адресов В сети, который у кого-то есть экран поцарапан в веб-сервис для бедняков.Однако, если вы делаете это достаточно часто, было бы лучше подать заявку на счет USPS и позвонить своим веб-сервис.
Я отсылаю вас к моему сообщению в блоге - Урок хранения адресов, Я расскажу о некоторых методах и алгоритмах, используемых в процессе проверки адреса.Моя ключевая мысль «Не ленитесь с хранением адресов, в будущем это не доставит вам ничего, кроме головной боли!»
Кроме того, есть еще один вопрос StackOverflow, в котором задается этот вопрос.Уполномоченный Как следует хранить международные географические адреса в реляционной базе данных.
В ходе разработки собственной службы проверки адресов в немецкой компании, в которой я раньше работал, я столкнулся с несколькими способами решения этой проблемы.Я постараюсь подвести итоги своих выводов ниже:
Бесплатное программное обеспечение с открытым исходным кодом
Очевидно, что первый подход, который кто-либо выберет, — это подход с открытым исходным кодом (например, openstreetmap.org), что никогда не бывает плохой идеей.Но сможете ли вы действительно использовать это правильно и надежно, во многом зависит от того, насколько вам нужно полагаться на результаты.
Адреса — невероятно изменчивая вещь.Проверка СШАадреса — задача непростая, но терпимая, но если вы собираетесь в Европу, особенно в Великобританию,с их обширной системой почтовых индексов подходу с открытым исходным кодом просто не хватает данных.
Веб-сервисы/API
Программное обеспечение корпоративного класса
Деньги делают свое дело, очевидно.Но не каждый бизнес или разработчик может потратить ~ 0,15 доллара за поиск адреса (это 150 долларов за 1000 запросов API) — очень дорогая бизнес-модель, реализованная в подавляющем большинстве API проверки адресов.
Что я в итоге интегрировал: API уличного слоя
Поскольку я не хотел использовать программный подход к проверке адресных данных вручную, я, наконец, пришел к выводу, что мне нужен API с ценой, которая не заставила бы моего начальника хотеть меня уволить и при этом обеспечивала бы надежность и надежность. результаты международной проверки.
Короче говоря, в итоге я интегрировал API, созданный apilayer, под названием «streetlayer API».Меня легко убедила простая интеграция JSON, удивительно точные результаты проверки и выгодная для разработчиков цена.Кроме того, 100 запросов в месяц совершенно бесплатны.
Надеюсь это поможет!
Мы добились успеха с Идеальный адрес.
В их базе данных есть все названия улиц и диапазоны номеров улиц США.Также действует как довольно приличный анализатор адресных полей произвольной формы, если вам посчастливилось иметь такие данные.
Я воспользовался услугами http://www.melissadata.com Их «адресный объект» работает очень хорошо.Это дорого, да.Но если учесть затраты на написание собственных решений, стоимость грязных данных в вашем приложении, возвращенные почтовики — потерянные продажи и тому подобное — затраты могут быть оправданы.
Для адресных данных в США моя компания использовала ГеоСтан.У него есть привязки для C и Java (и мы создали привязку к Perl).Обратите внимание, что это коммерческий продукт и он стоит недешево.Однако он довольно быстрый (~ 300 адресов в секунду) и предлагает такие функции, как сертификация CASS (скидка на массовую рассылку USPS), маркировка DPV (проверка точки доставки) и геокодирование LON/LAT.
Есть модуль Perl Гео::Почтовыйадрес, но он использует эвристику и не имеет других функций, упомянутых для GeoStan.
Редактировать:некоторые упомянули «сделать это самостоятельно». Если вы все же решите это сделать, хорошим источником информации для начала является Набор данных переписи населения США по тиграм, который содержит много информации о США, включая адресную информацию.
Вы также можете попробовать решения SAP для обеспечения качества данных, которые доступны как в виде серверной платформы, обрабатывающей большое количество запросов, так и в виде встраиваемого SDK, если вы хотите запустить его в процессе своего приложения.Мы используем его в нашем приложении, и он очень надежный и масштабируемый.
Как видно на Реддит:
$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);
Вы можете попробовать API Pitney Bowes «IdentifyAddress», доступный по адресу — https://identify.pitneybowes.com/
Служба анализирует и сравнивает входные адреса с базами данных известных адресов по всему миру, чтобы выдать стандартизированную информацию.Он исправляет адреса, добавляет недостающую почтовую информацию и форматирует ее в формате, предпочитаемом соответствующим почтовым органом.Я также использую дополнительные базы данных адресов, чтобы они могли предоставлять более подробную информацию, включая качество адреса, тип адреса, транслитерацию (например, с китайского кандзи на латинские символы) и соответствие адреса на уровне помещения/дома, улицы или города. справочной информации.
На сайте вы найдете множество образцов и SDK, и я обнаружил, что его чрезвычайно легко интегрировать.
Есть компании, которые предоставляют такую услугу.Сервисные бюро, занимающиеся массовой рассылкой, очищают весь список рассылки до правильного формата, что приводит к скидкам на почтовые расходы.USPS продает базы данных адресной информации, которые можно использовать для разработки индивидуальных решений.У них также есть списки одобренных поставщиков, предоставляющих такого рода программное обеспечение и услуги.
Есть некоторые (но не многие) пакеты, которые имеют API для подключения проверки адреса к вашему программному обеспечению.
Однако вы правы, это довольно неприятная проблема.
Как уже упоминалось, существует множество сервисов. Если вы хотите по-настоящему проверить весь адрес, я настоятельно рекомендую использовать сервис типа веб-сервиса, чтобы гарантировать, что изменения могут быть быстро распознаны вашим приложением.
В дополнение к перечисленным выше услугам, webservice.net предлагает услугу проверки адреса в США. http://www.webservicex.net/WCF/ServiceDetails.aspx?SID=24
Проверка правильности адреса — это одно.
Но если вы пытаетесь подтвердить, что данный человек живет по данному адресу, вашей единственной почти гарантией будет тестовое письмо на этот адрес, и даже это не дает уверенности в том, что этот человек организован или знает кого-то по этому адресу.
В противном случае люди могли бы просто указать произвольный случайный адрес, о существовании которого они знают, и это ничего бы для вас не значило.
Лучшее, что вы можете сделать для немедленных результатов, — это попросить пользователя прислать сфотографированную/сканированную копию главы его банковской выписки или какое-либо другое подтверждение недавнего проживания, потому что, по крайней мере, тогда ему придется приложить больше усилий, чтобы забыть это, и подделка указанных вещей легко обнаруживается при базовом уровне судебно-медицинской экспертизы изображений.
Глобального решения не существует.Для любой конкретной страны это в лучшем случае довольно сложно.
В Великобритании почтовое отделение контролирует почтовые адреса и может предоставить (за дополнительную плату) информацию об адресе для целей проверки.
Правительственные учреждения также ведут обширный список адресов, который централизованно хранится в NLPG (Национальном справочнике земель и собственности).
На самом деле свериться с этими списками очень сложно.Большинство людей даже не знают точно, какой у них адрес, поскольку он хранится в почтовом отделении.Некоторые предприятия даже не знают, по какому номеру они находятся на той или иной улице.
Лучше всего обратиться в компанию, которая специализируется на подобных вещах.
У Yahoo также есть API-интерфейс плейсмейкера. Он хорош только для локаций, но имеет универсальный идентификатор для всех локаций мира.
Похоже, что нет никакого стандарта в список ИСО.
NAICS.com выпускает API, который будет добавлять все виды ключевых бизнес-данных, включая почтовые адреса.Это может произойти «на лету» по мере обработки форм вашего сайта. https://www.naics.com/business-intelligence-api/
Доступен сервис Fixaddress.com, который предоставляет следующие услуги:
1) Проверка адреса.
2) Коррекция адреса.
3) Исправление написания адреса.
4) Исправьте фонетические ошибки в адресе.
Fixaddress.com использует данные USPS и Tiger в качестве справочных данных.
Для более подробной информации посетите ссылку ниже,
Одной из областей, где поиск адресов должен выполняться надежно, являются услуги VOIP E911.Я знаю компании, которые надежно используют для этого следующие сервисы:
Пропускная способность.com 9-1-1 Проверка адреса MSAG API доступа
MSAG = Основной справочник по уличным адресам
https://www.bandwidth.com/9-1-1/
Смартистрит API уличных адресов США
Для адресов в США вы можете запросить действительный штат и убедиться, что почтовый индекс действителен.Вы могли бы даже проверить, что почтовый индекс находится в правильном состоянии, но помимо этого я не думаю, что есть много тестов, которые вы могли бы провести, которые не дали бы много ложноотрицательных результатов.
Что вы пытаетесь сделать — предотвратить простые ошибки или провести какую-то проверку личности?