У меня есть список из 500 000 учетных записей, каждый с адресом.
Что мне нужно сделать, это очистить адреса, чтобы я мог узнать, какие учетные записи попадают в тот же адрес. Я понимаю, что будут некоторые ошибки, но мне нужно будет сделать все возможное.
Есть ли служба, которую я могу использовать, где она может проверить адрес, или она будет форматировать адрес в стандартный формат?
например
RD->ROAD
ST->Street
STE->SUITE
.....
....
Я не знаю всех комбинаций. Есть ли скрипт, который я могу запустить, который обновит адреса?
Я знаю, что могу использовать MySQL REPLACE()
функция для замены RD на ROAD, но что, если само имя steet свяжется со словами ‘RD’, что вызовет проблему? если бы я должен был сделать замену, это было бы слово заменить, а не стандартную строку заменить.
Я мог бы написать скрипт PHP, который будет обновлять адреса (что-то вроде ниже)
но мне нужно знать все возможные комбинации.
Каков наилучший подход к этой проблеме?
Как я могу узнать все / большинство комбинаций, которые мне нужно будет проверить?
<?php
$arr = explode(" ", $row['address']);
$clean = array();
foreach($arr AS $key=>$val){
if($val == 'RD')
$new = 'ROAD';
else if ($val == 'STE')
$new = 'SUITE';
else
$new = $val;
$clean[] = $new;
}
?>
Это на самом деле очень сложно (поверьте мне, я знаю — я писал такие сценарии в течение многих лет на SmartyStreets). Еще сложнее, когда весь адрес представляет собой одну строку. Что вам нужно, это сервис проверки адресов, который поддерживает разбор произвольной формы. (SmartyStreets делает.)
Условия использования API Карт Google запрещают использовать его для больших объемов данных или сохранять результаты по причинам, отличным от временного кэширования. Кроме того, он не проверяет адреса — адрес может быть недействительным и при этом возвращать геокод с этим API.
Вы можете провести собственное исследование, чтобы найти услугу, которая соответствует вашим потребностям. Я предвзято, но я верю SmartyStreets будет отвечать вашим потребностям наиболее экономно. SLA гарантирует, что API работает, он прост в использовании (достаточно сделать запрос POST, содержащий до 100 адресов), и вы можете хранить данные столько времени, сколько вам нужно (хотя вам, вероятно, следует проверять наличие обновлений данных каждые 90 дней). -120 дней, в зависимости от того, насколько правильно вы хотите, чтобы ваши адреса были).
Службы, сертифицированные CASS, также могут стандартизировать адреса в надлежащем формате, что упрощает дедупликацию ваших данных (т. Е. Объединение одних и тех же адресов, которые представлены по-разному).
Других решений пока нет …