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.

Kevin Pang
źródło
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).

Tim Farley
źródło
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).

Jonathan Oliver
źródło
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 .

Mark Brackett
źródło
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,
9

Skieruję Cię do mojego wpisu na blogu - Lekcja przechowywania adresów , omawiam niektóre techniki i algorytmy wykorzystywane w procesie walidacji adresów. Moją myślą przewodnią jest: „Nie leniwy z przechowywaniem adresów, w przyszłości spowoduje to tylko ból głowy!”

Jest też inne pytanie dotyczące StackOverflow, które zadaje to pytanie. Zatytułowany Jak należy przechowywać międzynarodowe adresy geograficzne w relacyjnej bazie danych .

BenAlabaster
źródło
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!

Szczery
źródło
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.

Taptronic
źródło
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.

James Cheng
źródło
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);
Xeoncross
źródło
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.

Parag Mittal
źródło
1

Jednym z obszarów, w którym wyszukiwania adresów muszą być wykonywane niezawodnie, są usługi VOIP E911. Znam firmy rzetelnie korzystające w tym celu z następujących usług:

Bandwidth.com 9-1-1 Access API MSAG Address Validation

MSAG = Przewodnik po głównych adresach ulicznych

https://www.bandwidth.com/9-1-1/

SmartyStreet US Street Address API

https://smartystreets.com/docs/cloud/us-street-api

Grokify
źródło
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

Jason
źródło
0

Jak wspomniano, istnieje wiele usług, jeśli chcesz naprawdę zweryfikować cały adres, zdecydowanie polecam skorzystanie z usługi typu usługa sieciowa, aby zapewnić szybkie rozpoznanie zmian przez aplikację.

Oprócz usług wymienionych powyżej, webservice.net oferuje tę usługę weryfikacji adresu w USA. http://www.webservicex.net/WCF/ServiceDetails.aspx?SID=24

Mitchel Sellers
źródło
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.

Jason DeFontes
źródło
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.

Kent Fredric
źródło
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.

Kramii
źródło
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.

Kyle Burton
źródło
0

Yahoo ma również API Placemaker. Nadaje się tylko do lokalizacji, ale ma uniwersalny identyfikator dla wszystkich lokalizacji na świecie.

Wygląda na to, że na liście ISO nie ma normy .

Elzo Valugi
źródło
0

NAICS.com wychodzi z API, które doda wszystkie rodzaje kluczowych danych biznesowych, w tym adres. Działo się to w locie, podczas przetwarzania formularzy w witrynie. https://www.naics.com/business-intelligence-api/

Jillian Baker
źródło
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/

Rakesh Chaudhari
źródło
-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?

Rob Walker
źródło
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