アドレス (電子メールではなく、物理的な) 検証を実行することさえ可能ですか? 米国だけでも非常に多くのアドレス形式があるため、これはかなり困難な作業になるようです。一方で、いくつかのビジネス要件に必要なタスクのように思えます。
20 に答える
これは、無料で「枠にとらわれない」方法です。100% 完璧ではありませんが、あからさまに存在しないアドレスを拒否する必要があります。
住所全体をGoogle のジオコーディング Web サービスに送信します。このサービスは、フィードした場所の正確な座標、つまり緯度と経度を返そうとします。
私の経験では、アドレスが無効な場合、サービスから 602 という結果が返されます。間違いなく誤検知または誤検知の可能性がありますが、他の一貫性チェックと組み合わせて使用すると役立つ可能性があります。
(一方、 Yahoo のジオコーディング Web サービスは、町が存在するが、住所の残りの部分が偽物である場合、町の中心の座標を返します。結果)。
ここには多くの良い答えがありますが、それらのほとんどは、ユーザーがサードパーティのサービスに接続するためのコードを記述したり、USPS をスクリーン スクレイピングしたりする必要がある "API" ソリューションを望んでいると想定しています。これはまったく問題ありませんが、実装に関連するビジネス要件とコストを考慮に入れ、必要なメリットと比較検討する必要があります。
ビジネス要件とデータがシステムに受信される方法によっては、リアルタイムの住所処理ソリューションが最適な場合があります。リアルタイム ソリューションが必要な場合は、ライセンス契約と Google Maps/Bing/Yahoo API の技術的な制限を考慮する必要があります。通常、1 日に発信できる通話の数が制限されます。USPS Web ツール API は、システムを使用できる方法/理由、およびその後のデータの使用方法を制限する点で同じです。
同時に、アドレスの静的リストを簡単に処理できる優れたサービス プロバイダーもいくつかあります。基本的に、サービス プロバイダーに CSV ファイルまたは Excel ファイルを渡すと、プロバイダーはそれをクリーンアップして返します。これは、通常、長期的なコミットメントや義務のない 1 回限りの取引です。
完全な開示: 私は SmartyStreets の創設者です。米国内の住所の住所確認を行います。リストの CASS 認証を簡単に行うことができ、アドレス検証 Web サービス APIも提供しています。隠れた手数料や契約などは一切ありません。必要がなくなるまで当社のサービスを使用し、立ち去ることができます。(契約が必要な携帯電話会社とは異なります。)
USPS にはオンラインのアドレス クリーナーがあり、誰かが貧乏人の Web サービスに画面をこすり落としています。ただし、これを頻繁に行う場合は、 USPS アカウントを申請して、独自のwebserviceを呼び出すことをお勧めします。
私のブログ記事「アドレス ストレージのレッスン」を参照して、アドレス検証のプロセスで使用される手法とアルゴリズムについて説明します。私の重要な考えは、「アドレスの保存を怠ってはいけません。将来的には頭痛の種になるだけです!」ということです。
また、 How should international geographic addresses be stored in a relational databaseというタイトルのこの質問をする別の StackOverflow の質問があります。
redditで見られるように:
$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);
私はhttp://www.melissadata.comのサービスを使用しました。 その「アドレス オブジェクト」は非常にうまく機能します。はい、高価です。しかし、独自のソリューションを作成するコスト、アプリケーション内のダーティ データのコスト、メーラーの返送 (売上の損失など) を考慮すると、コストは正当化できます。
また、多数のリクエストを処理するサーバー プラットフォームで利用できる SAP の Data Quality ソリューションを試すことも、アプリケーションと一緒に実行したい場合は組み込み可能な SDK として利用することもできます。アプリケーションで使用していますが、非常に堅牢でスケーラブルです。
YahooにはPlacemakerAPIもあります。これは場所にのみ適していますが、世界中のすべての場所に共通のIDがあります。
ISOリストには規格がないようです。
グローバルな解決策はありません。どの国にとっても、せいぜいかなりトリッキーです。
英国では、郵便局が郵便住所を管理しており、検証目的で (有料で) 住所情報を提供できます。
政府機関も広範な住所リストを保持しており、これらは NLPG (National Land and Property Gazetteer) で一元的に照合されます。
これらのリストに対して実際に検証することは非常に困難です。ほとんどの人は、自分の住所が郵便局によって保持されているため、正確に知りません。一部の企業は、特定の道路に何番地があるかさえ知りません。
あなたの最善の策は、この種のことを専門とする会社にアプローチすることです.
それが有効な住所であることを検証することは1つのことです。
しかし、特定の人が特定の住所に住んでいることを確認しようとしている場合、その住所へのテストメールだけがほぼ確実であり、それでもその人が組織化されているか、その住所の誰かを知っているかどうかは定かではありません.
そうしないと、人々は存在を知っている任意のランダムなアドレスを指定することができ、それはあなたにとって何の意味もありません.
すぐに結果を得るためにできる最善の方法は、銀行取引明細書の頭の写真またはスキャンしたコピーまたはその他の最近の居住証明をユーザーに送信するように依頼することです。偽造は、基本的なレベルの画像フォレンジック分析で簡単に現れると言われています。
私たちはPerfect Addressで成功を収めました。
彼らのデータベースには、米国のすべての通りの名前と通り番号の範囲が含まれています。幸運にもその種のデータを持っている場合は、自由形式の住所フィールドのかなりまともなパーサーとしても機能します。
米国ベースの住所データの場合、私の会社はGeoStanを使用しています。C と Java のバインディングがあります (そして、Perl バインディングを作成しました)。業務用ですので、お安くはありませんのでご了承ください。ただし、非常に高速で (1 秒あたり最大 300 アドレス)、CASS 認証 (USPS バルク メール割引)、DPV (配送ポイントの確認) フラグ、LON/LAT ジオコーディングなどの機能を提供します。
Perl モジュールGeo::PostalAddressがありますが、ヒューリスティックを使用しており、GeoStan について言及されている他の機能はありません。
編集: 「自分でやる」と言う人もいますが、これを行うことに決めた場合、最初に使用するのに適した情報源は、住所情報を含む米国に関する多くの情報を含むUS Census Tiger Data Setです。
このサービスを提供している会社があります。大量のメールを扱うサービス機関は、メーリング リスト全体を適切な形式になるようにスクラブします。これにより、郵便料金の割引が行われます。USPS は、カスタム ソリューションの開発に使用できる住所情報のデータベースを販売しています。また、この種のソフトウェアとサービスを提供する承認済みベンダーのリストもあります。
アドレス検証をソフトウェアにフックするための API を備えたパッケージがいくつかあります (多くはありません)。
ただし、それはかなり厄介な問題であることは間違いありません。
前述のように、多くのサービスが存在します。アドレス全体を真に検証する場合は、Web サービス タイプのサービスを使用して、アプリケーションが変更をすばやく認識できるようにすることを強くお勧めします。
上記のサービスに加えて、webservice.net には、この米国住所検証サービスがあります。http://www.webservicex.net/WCF/ServiceDetails.aspx?SID=24
米国の住所の場合、有効な州を要求し、郵便番号が有効であることを確認できます。郵便番号が正しい状態であることを確認することもできますが、それ以上に多くの偽陰性を提供しない実行可能なテストは多くないと思います。
あなたは何をしようとしていますか? 単純なミスを防止したり、ある種の身元確認を強制したりしますか?