Очистка данных: есть ли библиотеки с общими перестановками, которые мы можем использовать? Или есть лучший подход? - PullRequest
1 голос
/ 17 марта 2010

Мы работаем над очисткой и анализом большого количества введенных человеком данных о клиентах. Нам необходимо программно решить, являются ли 2 адреса (например) одинаковыми, даже если данные вводились с небольшими изменениями.

Прямо сейчас мы проводим каждый адрес через довольно упрощенную замену строк (например, заменяя avenue на ave), объединяем поля и сравниваем результаты. Мы делаем что-то похожее с именами.

По крайней мере, кажется, что наш список значений поиска-замены уже должен где-то существовать.

Или, может быть, вы можете предложить совершенно другой и превосходный способ обнаружения совпадений?

Ответы [ 4 ]

3 голосов
/ 17 марта 2010

Для адресов вы должны запустить их через API карты Google и получить геокод для каждого из них. Тогда, если геокоды одинаковы, место то же самое. Я полагаю, что они позволяют 10 000 посещений / день / IP бесплатно.

Маловероятно, что вы придумаете что-нибудь лучше самостоятельно.

http://code.google.com/apis/maps/

1 голос
/ 17 марта 2010

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

0 голосов
/ 24 января 2012

На работе я помогаю написать программное обеспечение, которое проверяет адреса (для SmartyStreets).

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

Так что вам понадобится сертифицированный CASS подход к этой проблеме. Я бы предложил что-то вроде LiveAddress API (для проверки точки входа) или Сертифицированная очистка (для существующих списков или баз данных адресов) . Оба сертифицированы CASS USPS и будут выполнять то, что вам нужно.

0 голосов
/ 17 марта 2010

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

http://en.wikipedia.org/wiki/Dice_coefficient

Если вам нужен более полный список мер сходства строк, попробуйте здесь: http://www.dcs.shef.ac.uk/~sam/stringmetrics.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...