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.
validation
street-address
Kevin Pang
źródło
źródło
Odpowiedzi:
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).
źródło
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).
źródło
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 .
źródło
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 .
źródło
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!
źródło
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.
źródło
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.
źródło
Jak widać na reddicie :
źródło
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.
źródło
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
źródło
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
źródło
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
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło
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 .
źródło
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/
źródło
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/
źródło
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?
źródło