Jak przeprowadzasz weryfikację adresu? [Zamknięte]


89

Czy w ogóle można przeprowadzić walidację adresu (fizycznego, a nie e-mailowego)? Wygląda na to, że sama liczba formatów adresów, nawet w samych Stanach Zjednoczonych, utrudniałaby to zadanie. Z drugiej strony wydaje się to zadaniem, które byłoby konieczne dla kilku wymagań biznesowych.


23
cokolwiek zrobisz, jeśli adres wydaje się nieprawidłowy, pozwól użytkownikowi wybrać, że jest on rzeczywiście ważny, a nie odrzucaj go, ponieważ walidator twierdzi, że jest nieprawidłowy.
Pim Jager

Czy masz na myśli „autouzupełnianie adresu” czy „sprawdzanie poprawności adresu”? Chodzi mi o to, że żadna służba nigdy nie pozna wszystkich zmian zachodzących w prawdziwym świecie. Co minutę pojawiają się miliony nowych adresów, a stare są niszczone. I mówię teraz lokalnie, w zakresie planety.
Yevgeniy Afanasjew

Odpowiedzi:


27

Oto darmowy i nieszablonowy sposób na zrobienie tego. Nie w 100% doskonały, ale powinien odrzucać rażąco nieistniejące adresy.

Prześlij cały adres do internetowej usługi geokodowania Google . Ta usługa próbuje zwrócić dokładne współrzędne miejsca, w którym ją karmisz, tj. Szerokość i długość geograficzną.

Z mojego doświadczenia wynika, że ​​jeśli adres jest nieprawidłowy, otrzymasz wynik 602 z usługi. Z pewnością istnieje możliwość fałszywych alarmów lub fałszywych wyników negatywnych, ale w połączeniu z innymi kontrolami spójności może być przydatny.

( Z drugiej strony usługa sieciowa Yahoo do geokodowania zwróci współrzędne centrum miasta, jeśli miasto istnieje, ale reszta adresu jest fałszywa. Potencjalnie przydatna, o ile zwracasz szczególną uwagę na pole „precyzja” w wynik).


4
Czy jest ktoś, kto faktycznie używał tej metody w systemie na żywo?
Aston

27
Warunki korzystania z usługi Google i Yahoo zabraniają korzystania z usługi geokodowania, chyba że w połączeniu z mapą wyświetlaną użytkownikowi. Znajdź coś bardziej podobnego do tego, co zasugerował Jonathan Oliver. Zobacz: code.google.com/apis/maps/terms.html
Matt,

1
Nie otrzymuję tych 602 wyników, gdy podam zły adres.
HK1

9
To naprawdę NIE powinna być wybrana odpowiedź. Narusza Warunki korzystania z usługi Google i tak naprawdę nie sprawdza poprawności adresów. Google wykorzystuje wiele inteligencji, aby „odgadnąć”, jaki adres chcesz, nawet jeśli informacje są nieznacznie nieprawidłowe. Google zwróci również geokod, jeśli powiesz, że wpisz 55 Main St, a Google wie, że istnieje 50 Main St i 60 Main St., zwróci pomyślny geokod uśredniający odległość, nawet jeśli 55 Main St tak naprawdę nie istnieć. Musisz użyć prawdziwej usługi walidacji, najlepiej USPS lub Experian lub SmartyStreets.
jacurtis

1
Stworzyłoby to wspaniałą aplikację Blockchain, w której każdy współtworzy węzeł, przechowując bity i fragmenty ogromnej, ciągle zmieniającej się bazy danych ...
decoder7283

20

Jest tu wiele dobrych odpowiedzi, ale większość z nich zakłada, że ​​użytkownik chce rozwiązania "API", w którym musi napisać kod, aby połączyć się z usługą strony trzeciej i / lub zeskrobać ekran USPS. To wszystko dobrze i dobrze, ale należy je uwzględnić w wymaganiach biznesowych i kosztach związanych z wdrożeniem, a następnie porównać z pożądanymi korzyściami.

W zależności od wymagań biznesowych i sposobu, w jaki dane trafiają do systemu, najlepszym rozwiązaniem może być rozwiązanie do przetwarzania adresów w czasie rzeczywistym. Jeśli wymagane jest rozwiązanie działające w czasie rzeczywistym, warto rozważyć umowę licencyjną i ograniczenia techniczne interfejsów API Google Maps / Bing / Yahoo. Zwykle ograniczają liczbę połączeń, które możesz wykonać każdego dnia. Interfejs API narzędzi internetowych USPS jest taki sam, ale dodatkowo ogranicza sposób / dlaczego możesz korzystać z ich systemu i jak możesz później korzystać z danych.

Jednocześnie istnieje kilku świetnych usługodawców, którzy z łatwością mogą przetwarzać statyczną listę adresów. Zasadniczo dajesz usługodawcy plik CSV lub plik Excel, oczyszczają go i odbierają z powrotem. Jest to jednorazowa transakcja bez długoterminowego zobowiązania - zwykle.

Pełne ujawnienie: jestem założycielem SmartyStreets. Weryfikujemy adresy w Stanach Zjednoczonych. Z łatwością możemy certyfikować listę CASS, a także oferujemy interfejs API usługi sieciowej do weryfikacji adresu . Nie mamy żadnych ukrytych opłat, umów ani niczego. Korzystasz z naszych usług, dopóki ich nie potrzebujesz i nie możesz odejść. (W przeciwieństwie do firm telefonii komórkowej, które wymagają umowy).


1
Idealnie, właśnie to, czego szukałem. I pozwól mi powiedzieć, że masz styl, sir. Ładnie wyglądająca strona.
Cory Mawhorter

2
Używamy SmartyStreets i jest super.
JerSchneid

17
Koszt 1000 wyszukiwań SmartyStreet to 30 USD. Oszczędza Ci kliknięcie.
William Entriken

1000 wyszukiwań = 66 $ dla międzynarodowych
Robert Sinclair

Właściwie USPS posiada interfejs resztę za to ... jednak i to jest ogromny jednak ... jeśli trafisz to coś ze skryptem do sprawdzania bazy danych pełne adresy oni będą cię zakazu. Możesz zweryfikować wprowadzanie danych użytkownika za jego pomocą, więc można go używać w formularzu internetowym, w którym trafienia API będą losowo mierzone w czasie. Po prostu upewnij się, że twój formularz ma ochronę przed botami, w przeciwnym razie otrzymasz dostęp do API DoS w krótkim czasie. Jest to również dobre tylko dla adresów w USA.
Neil Davis

15

USPS ma narzędzie do czyszczenia adresów w Internecie , które ktoś umieścił w serwisie internetowym biedaka. Jeśli jednak robisz to wystarczająco często, lepszym pomysłem byłoby złożenie wniosku o konto USPS i wywołanie własnej usługi internetowej .


17
Aby uchronić kogokolwiek przed zgagą przed zrobieniem tego i otrzymaniem listu odrzucającego trzy dni później, prawie nikt nie ma prawa używać własnego walidatora adresów USPS. Dlatego ekran faceta w pierwszej kolejności go zeskrobał. Jest ściśle ograniczony do organizacji non-profit.
Nicholas Piasecki

5
USPS nie zezwala na wykorzystywanie tych danych do niczego innego niż wysłanie listu lub paczki. Innymi słowy, musisz wysłać wiadomość na adres, którego szukasz.

16
USPS pozwoli na komercyjne wykorzystanie IFF, którego nie odsprzedajesz ani nie czyścisz swoich baz danych. Zakwalifikowaliśmy się do założenia konta i używamy go do weryfikacji / naprawy WSZYSTKICH adresów przychodzących za pośrednictwem naszych formularzy internetowych.
marklark

2
Lub zamierzam kiedyś wysłać e-maila. Mojej firmie początkowo odmówiono dostępu do USPS API, ale po wyjaśnieniu naszego przeznaczenia (i stwierdzeniu, że nie będziemy używać API do naprawiania starych danych), zostaliśmy zatwierdzeni.
marklark

4
Możesz korzystać z API USPS tylko wtedy, gdy weryfikujesz adres w celu wysyłania lub wysyłania przesyłek: secure.shippingapis.com/registration - jeśli nie prowadzisz korespondencji lub nie wysyłasz za pośrednictwem USPS, znajdź alternatywny interfejs API, który nie ma ograniczeń licencyjnych.
Matt,


8

W trakcie opracowywania wewnętrznej usługi weryfikacji adresu w niemieckiej firmie, w której pracowałem, znalazłem kilka sposobów rozwiązania tego problemu. Postaram się podsumować moje ustalenia poniżej:

Darmowe oprogramowanie Open Source

Oczywiście, pierwszym podejściem, które ktoś by podjął, jest podejście typu open source (jak openstreetmap.org ), co nigdy nie jest złym pomysłem. Ale to, czy naprawdę możesz to dobrze i niezawodnie wykorzystać, zależy w dużej mierze od tego, jak bardzo musisz polegać na wynikach.

Adresy to niezwykle zmienna rzecz. Weryfikacja adresów w Stanach Zjednoczonych nie jest łatwym zadaniem, ale można ją znieść, ale kiedy wybierasz się do Europy, zwłaszcza Wielkiej Brytanii z ich rozbudowanym systemem kodów pocztowych, w podejściu open source po prostu zabraknie danych.

Usługi sieciowe / interfejsy API

Oprogramowanie klasy korporacyjnej

Oczywiście pieniądze to załatwią. Ale nie każda firma lub programista może wydać ~ 0,15 USD na wyszukiwanie adresu (to 150 USD za 1000 żądań API) - bardzo kosztowny model biznesowy, który wdrożyła zdecydowana większość interfejsów API do weryfikacji adresów.

To, co ostatecznie zintegrowałem: Streetlayer API

Ponieważ nie byłem skłonny przyjąć programowego podejścia polegającego na ręcznej weryfikacji danych adresowych, w końcu doszedłem do wniosku, że potrzebuję interfejsu API z ceną, która nie sprawiłaby, że mój szef chciałby mnie zwolnić i nadal dostarczać solidne i niezawodne wyniki weryfikacji międzynarodowej.

Krótko mówiąc, ostatecznie zintegrowałem API zbudowane przez apilayer, zwane „Streetlayer API”. Łatwo mnie przekonała prosta integracja JSON, zaskakująco dokładne wyniki walidacji i przyjazne dla programistów ceny. Ponadto 100 żądań miesięcznie jest całkowicie bezpłatnych.

Mam nadzieję że to pomoże!


dobra odpowiedź, niestety streetlayer API jest wyłączany w przyszłym tygodniu (03.07.2017). są jakieś alternatywy za mniej niż 15 centów za żądanie?
Chris

1

Korzystałem z usług http://www.melissadata.com Ich „obiekt adresowy” działa bardzo dobrze. Jest drogie, tak. Ale biorąc pod uwagę koszty pisania własnych rozwiązań, koszt brudnych danych w aplikacji, zwrotów przesyłek pocztowych - utraconą sprzedaż itp. - koszty te mogą być uzasadnione.


1

Możesz także wypróbować rozwiązania SAP Data Quality, które są dostępne zarówno na platformie serwerowej, która przetwarza dużą liczbę żądań, jak i jako osadzalny SDK, jeśli chcesz uruchomić go w procesie z aplikacją. Używamy go w naszej aplikacji i jest bardzo solidny i skalowalny.


1

Jak widać na reddicie :

$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

Możesz wypróbować interfejs API Pitney Bowes „IdentifyAddress” dostępny pod adresem - https://identify.pitneybowes.com/

Usługa analizuje i porównuje adresy wejściowe ze znanymi bazami danych adresów na całym świecie w celu uzyskania ustandaryzowanych szczegółów. Poprawia adresy, dodaje brakujące informacje pocztowe i formatuje je przy użyciu formatu preferowanego przez właściwy organ pocztowy. Korzystam również z dodatkowych baz danych adresowych, dzięki czemu może zapewnić bardziej szczegółowe informacje, w tym jakość adresu, typ adresu, transliterację (na przykład z chińskiego kanji do znaków łacińskich) oraz sprawdzić, czy adres jest zweryfikowany na poziomie lokalu / domu, ulicy lub miasta informacji referencyjnych.

Znajdziesz wiele próbek i sdk dostępnych na stronie, a integracja jest dla mnie niezwykle łatwa.



0

Są firmy, które świadczą tę usługę. Biura usługowe, które zajmują się wysyłką masową, wyczyszczą całą listę mailingową, tak aby była w odpowiednim formacie, co skutkuje zniżką na wysyłkę. USPS sprzedaje bazy danych zawierające informacje adresowe, które można wykorzystać do opracowania niestandardowych rozwiązań. Mają również listy zatwierdzonych dostawców, którzy zapewniają tego rodzaju oprogramowanie i usługi.

Istnieje kilka (ale nie wiele) pakietów, które mają interfejsy API do podłączania sprawdzania poprawności adresu do twojego oprogramowania.

Jednak masz rację, że jest to dość nieprzyjemny problem.

http://www.usps.com/ncsc/ziplookup/vendorslicensees.htm



0

Odnieśliśmy sukces z Perfect Address .

Ich baza danych zawiera wszystkie nazwy ulic i zakresy numerów ulic w USA. Działa również jako całkiem przyzwoity parser dla dowolnych pól adresowych, jeśli masz szczęście, że masz tego rodzaju dane.


Bardzo interesujące ... ich strona internetowa wyglądająca na starożytną sprawia, że ​​zastanawiam się, czy nadal działają na rynku, czy chociaż są wiarygodni?
Anthony Griggs

Minęło trochę czasu, odkąd byłem w firmie, w której to wykorzystaliśmy. Nie wygląda na to, że zmienili się zbytnio, ale nadal twierdzą, że mają aktualne dane.
Jason DeFontes

0

Sprawdzenie poprawności adresu to jedno.

Ale jeśli próbujesz potwierdzić, że dana osoba mieszka pod podanym adresem, jedyną prawie gwarancją będzie wysłanie wiadomości testowej na ten adres, a nawet to nie jest pewne, czy osoba jest zorganizowana lub zna kogoś pod tym adresem.

W przeciwnym razie ludzie mogliby po prostu podać dowolny, losowy adres, o którym wiedzą, że istnieje i nic by dla ciebie nie znaczył.

Najlepsze, co możesz zrobić w celu uzyskania natychmiastowych rezultatów, to poproszenie użytkownika o przesłanie sfotografowanej / zeskanowanej kopii wyciągu z konta bankowego lub innego dowodu niedawnego pobytu, ponieważ przynajmniej wtedy będzie musiał ciężej pracować, aby o tym zapomnieć, i sfałszowanie wspomnianych rzeczy pojawia się łatwo przy podstawowym poziomie analizy kryminalistycznej obrazu.


0

Nie ma globalnego rozwiązania. Dla każdego kraju jest to w najlepszym przypadku raczej trudne.

W Wielkiej Brytanii PostOffice kontroluje adresy pocztowe i może dostarczyć (za opłatą) informacje adresowe do celów weryfikacji.

Agencje rządowe również prowadzą obszerną listę adresów, które są gromadzone centralnie w NLPG (National Land and Property Gazetteer).

W rzeczywistości weryfikacja na podstawie tych list jest bardzo trudna. Większość ludzi nawet nie wie dokładnie, jaki adres jest przechowywany w PostOffice. Niektóre firmy nawet nie wiedzą, jaki numer znajdują się na danej ulicy.

Najlepiej jest zwrócić się do firmy, która specjalizuje się w tego typu sprawach.


0

W przypadku amerykańskich danych adresowych moja firma użyła GeoStan . Ma powiązania dla C i Java (i stworzyliśmy powiązanie Perla). Zauważ, że jest to produkt komercyjny i nie jest tani. Jest jednak dość szybki (~ 300 adresów na sekundę) i oferuje takie funkcje, jak certyfikacja CASS (rabat na przesyłkę masową USPS), oznaczanie DPV (weryfikacja punktu dostawy) i geokodowanie LON / LAT.

Istnieje moduł Perla Geo :: PostalAddress , ale używa on heurystyki i nie ma innych funkcji wymienionych dla GeoStan.

Edycja: niektórzy wspominali o „robieniu tego samemu”, jeśli zdecydujesz się to zrobić, dobrym źródłem informacji na początek jest zestaw danych US Census Tiger , który zawiera wiele informacji o USA, w tym dane adresowe.




0

Dostępna jest usługa Fixaddress.com, która świadczy następujące usługi,

1) Walidacja adresu.

2) Korekta adresu.

3) Poprawianie pisowni adresu.

4) Prawidłowe adresy błędów fonetycznych.

Fixaddress.com wykorzystuje dane USPS i Tiger jako dane referencyjne.

Aby uzyskać więcej informacji, odwiedź poniższy link,

http://www.fixaddress.com/


-1

W przypadku adresów w Stanach Zjednoczonych możesz wymagać podania prawidłowego stanu i sprawdzić, czy kod pocztowy jest prawidłowy. Możesz nawet sprawdzić, czy kod pocztowy jest we właściwym stanie, ale poza tym nie sądzę, że istnieje wiele testów, które możesz przeprowadzić, które nie dostarczyłyby wielu fałszywych negatywów.

Co próbujesz zrobić - zapobiec prostym błędom lub wymusić pewnego rodzaju kontrolę tożsamości?


Musisz korzystać z płatnych usług innych firm.
mmcdole,

Nie musisz używać narzędzi innych firm. USPS ma usługi internetowe, które to robią.
brian d foy

W rzeczywistości, jeśli zadaniem, które wykonujesz, jest „upewnij się, że ten adres jest akceptowalny dla lokalnych usług pocztowych”, wówczas w Stanach Zjednoczonych USPS może być traktowany jako druga strona (ale wtedy klient, który przesłał adres, jest czymś w rodzaju strona trzecia).
tripleee
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.