Можно ли даже выполнить проверку адреса (физическую, а не электронную почту)? Похоже, что огромное количество форматов адресов, даже в США, сделало бы это довольно сложной задачей. С другой стороны, это похоже на задачу, которая потребуется для нескольких бизнес-требований.
Как вы выполняете проверку адреса?
Ответ 1
Здесь есть бесплатный и способ "вне коробки". Не 100% совершенный, но он должен отвергать вопиющие несуществующие адреса.
Отправьте весь адрес веб-сервис геокодирования Google. Эта служба пытается вернуть точные координаты местоположения, которое вы его подаете, то есть широта и долгота.
По моему опыту, если адрес недействителен, вы получите результат 602 из службы. Там определенно существует вероятность ложных срабатываний или ложных негативов, но используется в сочетании с другими проверками согласованности, которые могут быть полезны.
(веб-сервис геокодирования Yahoo, с другой стороны, вернет координаты центра города, если город существует, но остальное адреса является фиктивным. Потенциально полезно, если вы уделяете пристальное внимание полю "точности" в результате).
Ответ 2
Здесь есть несколько хороших ответов, но большинство из них делает предположение, что пользователь хочет "API", где они должны писать код для подключения к стороннему сервису и/или экрану USPS. Все это хорошо и хорошо, но должно учитываться в бизнес-требованиях и расходах, связанных с реализацией, а затем взвешиваться с желаемыми преимуществами.
В зависимости от бизнес-требований и способа получения данных в системе может быть лучшим решением для обработки адресов в реальном времени. Если требуется решение в режиме реального времени, вам необходимо будет рассмотреть лицензионное соглашение и технические ограничения API Google Maps/Bing/Yahoo. Обычно они ограничивают количество звонков, которые вы можете совершать каждый день. API веб-инструментов USPS один и тот же, в дополнение они ограничивают, как/почему вы можете использовать свою систему и как вам разрешено использовать данные после этого.
В то же время существует множество отличных поставщиков услуг, которые могут легко обрабатывать статический список адресов. По сути, вы предоставляете поставщику услуг CSV файл или файл Excel, они очищают его и возвращают к вам. Это одноразовое соглашение без долгосрочных обязательств или обязательств, обычно.
Полное раскрытие: я являюсь основателем SmartyStreets. Мы проверяем адреса для адресов в Соединенных Штатах. Мы легко можем CASS сертифицировать список, а также API веб-службы проверки адреса. У нас нет скрытых сборов, контрактов или чего-то еще. Вы пользуетесь нашим сервисом, пока вам это не понадобится, и вы можете уйти. (В отличие от компаний сотового телефона, которым требуется контракт.)
Ответ 3
У USPS есть адресный очиститель онлайн, который у кого-то есть screen соскоблил в веб-службу бедного человека. Однако, если вы делаете это достаточно часто, лучше было бы обратиться за USPS account и называть их webservice.
Ответ 4
Я отсылаю вас к своему сообщению в блоге - Урок в хранилище адресов, я перехожу к некоторым методам и алгоритмам, используемым в процесс проверки адреса. Моя ключевая мысль: "Не ленитесь с хранилищем адресов, это вызовет у вас ничего, кроме головных болей в будущем!"
Кроме того, есть еще один вопрос StackOverflow, который задает этот вопрос. Под заголовком Как международные географические адреса будут храниться в реляционной базе данных.
Ответ 5
В ходе разработки внутренней службы проверки адресов в немецкой компании, с которой я работал, я столкнулся с несколькими способами решения этой проблемы. Я сделаю все возможное, чтобы подвести итоги:
Бесплатное ПО с открытым исходным кодом
Очевидно, что первый подход, который любой мог бы принять, - это open-source (например, openstreetmap.org), который никогда не бывает плохой идеей. Но действительно ли вы действительно можете использовать это для хорошего и надежного использования, во многом зависит от того, сколько вам нужно полагаться на результаты.
Адреса - невероятно переменная вещь. Проверка адресов в США - непростая задача, но терпимая, но как только вы отправляетесь в Европу, особенно в U.K. с их обширной системой почтовых индексов, подход с открытым исходным кодом будет просто лишен данных.
Веб-службы/API
Программное обеспечение Enterprise-Class
Деньги делают это, очевидно. Но не каждый бизнес или разработчик может потратить ~ 0,15 доллара на поиск адресов (что составляет 150 долларов США за 1000 запросов API) - очень дорогая бизнес-модель, в которой реализовано большинство API-интерфейсов проверки адресов.
В результате я интегрировал: API-интерфейс стримера
Поскольку я не хотел использовать программный подход для проверки адресных данных вручную, я, наконец, пришел к выводу, что мне нужен API с ценой, который не заставил бы моего босса увольнять меня и все еще доставлять надежные и надежные результаты международной проверки.
Короче говоря, я закончил интеграцию API, созданного apilayer, называемого "API-интерфейс Streetlayer". Я был легко убежден простой интеграцией JSON, неожиданно точными результатами проверки и их ценой, благоприятной для разработчиков. Кроме того, 100 запросов/месяц полностью бесплатны.
Надеюсь, это поможет!
Ответ 6
Для наших адресных данных, которые моя компания использовала GeoStan. Он имеет привязки для C и Java (и мы создали привязку Perl). Обратите внимание, что это коммерческий продукт и не дешево. Это довольно быстро, хотя (~ 300 адресов в секунду) и предлагает такие функции, как сертификация CASS (скидка на массовую почту USPS), отметка DPV (проверка точки доставки) и геокодирование LON/LAT.
Существует модуль Perl Geo:: PostalAddress, но он использует эвристику и не имеет других функций, упомянутых для GeoStan.
Изменить: некоторые упоминали "делать это сами", если вы решите сделать это, хорошим источником информации для начала является Перепись США Tiger Data Set, в котором содержится много информации об США, включая адресную информацию.
Ответ 7
У нас был успех с Perfect Address.
В их базе данных есть все названия улиц США и диапазоны номеров улиц. Также действует как довольно приличный парсер для полей адресов свободной формы, если вам посчастливилось иметь такие данные.
Ответ 8
Я использовал службы http://www.melissadata.com Их "адресный объект" работает очень хорошо. Это дорого, да. Но когда вы рассматриваете затраты на составление собственных решений, стоимость грязных данных в вашем приложении, возврат почтовых отправлений - потерянные продажи и т.п. - затраты могут быть оправданы.
Ответ 9
Вы также можете попробовать решения SAP Data Quality, которые доступны на серверной платформе, обрабатывает большое количество запросов или как встраиваемый SDK, если вы хотите запустить его в процессе с вашим приложением. Мы используем его в нашем приложении и очень надежны и масштабируемы.
Ответ 10
Как видно на 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);
Ответ 11
Существуют компании, предоставляющие эту услугу. Служебные бюро, которые занимаются массовой рассылкой, будут счищать весь список рассылки, чтобы он был в правильном формате, что приводит к скидке на почтовые расходы. USPS продает базы данных адресной информации, которые могут использоваться для разработки индивидуальных решений. Они также имеют списки утвержденных поставщиков, которые предоставляют этот вид программного обеспечения и услуг.
Есть некоторые (но не многие) пакеты, в которых есть API-интерфейсы для подключения проверки адреса в ваше программное обеспечение.
Однако вы правы, что это довольно неприятная проблема.
Ответ 12
Как уже упоминалось, есть много служб, если вы хотите действительно проверить весь адрес, я настоятельно рекомендую обратиться к службе типа веб-сервиса, чтобы гарантировать, что ваши приложения могут быть быстро распознаны.
В дополнение к услугам, перечисленным выше, webservice.net имеет эту службу проверки адресов в США. http://www.webservicex.net/WCF/ServiceDetails.aspx?SID=24
Ответ 13
Проверка правильности адреса - это одно.
Но если вы пытаетесь подтвердить, что данный человек живет по указанному адресу, ваша единственная почти гарантия будет тестовой почтой на адрес, и даже это не будет уверенным, что человек организован или кто-то знает об этом адрес.
В противном случае люди могли бы просто указать произвольный случайный адрес, который, как они знают, существует, и это ничего не значит для вас.
Самое лучшее, что вы можете сделать для получения немедленных результатов, - это попросить пользователя отправить сфотографированную/отсканированную копию главы своего банковского выписки или какого-либо другого документа, подтверждающего недавнее проживание, потому что по крайней мере им приходится больше работать, чтобы забыть это, и подделывание сказанных вещей легко обнаруживается с базовым уровнем криминалистического анализа изображения.
Ответ 14
Глобального решения нет. Для любой страны это в лучшем случае довольно сложно.
В Великобритании PostOffice контролирует почтовые адреса и может предоставлять (по стоимости) информацию для целей проверки.
Государственные агентства также ведут обширный список адресов, и их централизованно сопоставляют в NLPG (National Land and Property Gazetteer).
Фактически проверка этих списков очень сложна. Большинство людей даже не знают, как именно их адрес хранится в PostOffice. Некоторые компании даже не знают, какое количество они находятся на определенной улице.
Лучше всего подойти к компании, которая специализируется на таких вещах.
Ответ 15
Yahoo также имеет Placemaker API. Он хорош только для локаций, но имеет универсальный идентификатор для всех местоположений в мире.
Похоже, что в списке ISO нет стандарта.
Ответ 16
NAICS.com выходит с API, который добавит все виды ключевых бизнес-данных, включая адрес улицы. Это произойдет "на лету", так как обрабатываются ваши формы сайта. https://www.naics.com/business-intelligence-api/
Ответ 17
Доступна служба Fixaddress.com, которая предоставляет следующие услуги:
1) Проверка адреса.
2) Коррекция адреса.
3) Коррекция исправления адреса.
4) Правильные адреса фонетических ошибок.
Fixaddress.com использует данные USPS и Tiger в качестве справочных данных.
Подробнее см. ниже ссылку,
Ответ 18
Вы можете попробовать Pitney Bowes "IdentifyAddress" Api, доступный по адресу - https://identify.pitneybowes.com/
Служба анализирует и сравнивает входные адреса с известными базами адресов по всему миру для вывода стандартизованной детали. Он корректирует адреса, добавляет недостающую почтовую информацию и форматирует ее, используя формат, предпочитаемый применимым почтовым органом. Я также использую дополнительные адресные базы данных, чтобы он мог предоставлять расширенные детали, включая качество адреса, тип адреса, транслитерацию (например, от китайских кандзи до латинских символов) и проверяется ли адрес на уровне помещения/дома, на улице или на уровне города справочной информации.
Вы найдете много образцов и sdk, доступных на сайте, и я нашел его чрезвычайно простым в интеграции.
Ответ 19
Для адресов в США вам может потребоваться допустимое состояние и убедитесь, что zip действителен. Вы даже можете проверить, что почтовый индекс находится в правильном состоянии, но помимо этого я не думаю, что есть много тестов, которые вы могли бы запустить, что не обеспечивало бы множество ложных негативов.
Что вы пытаетесь сделать - предотвратить простые ошибки или принудительно выполнить проверку личности?