1

以下に示すように、アドレスで構成される列があります。

住所

  • 1 Reid Street、マンチェスター、M1 2DF
  • 12 Borough Road、ロンドン、E12,2FH
  • 15ジョーンズストリート、ニューカッスル、タイン&ウィア、NE1 3DN

など..など...

これを別の列に分割して、SQLデータベースにインポートしたいと思います。Findstringを使用してコンマで区切ることを試みましたが、一部のアドレスに他のアドレスよりも多くの「セクション」がある場合に問題が発生します。これについて行くための最良の方法は何ですか?

どうもありがとう

4

2 に答える 2

1

これは要件仕様の問題であり、実装の問題ではありません。アドレスの形式について想定できる余裕が多ければ多いほど、より詳細な解析を実行できるようになります。同じコインの反対側は、アドレスの構造について想定することが少なければ少ないほど、非難される誤った解析が少なくなることです。

英国の郵便メールのみを処理する必要があるのか​​、それとも世界中の住所が発生する可能性があるのか​​を判断することが重要です。

あなたの例に基づくと、アドレスの特定の部分は常に存在しているように見えますが、このリソースをチェックして、それらがすべての英国の電子メールアドレスで本当に必要かどうかを判断してください。

必要な解析の深さと、安全に行うことができる仮定との間に一致が見つかった場合は、コンマインデックス(FINDSTRING)で解析を続けることができるはずです。文字列の左から始まるコンポーネントと右から始まるコンポーネントを決定します。残りのすべてを未解析の本文として保持します。

また、特に国際的な住所に関連して、現在のタスクがミッションインポッシブルであることに気付く場合もあります。これが、ほとんどのWebサイトやその他のデータコレクターが、ユーザーが既に解析した形式で住所を入力する必要がある理由です。

于 2012-07-23T09:01:04.653 に答える
1

ハニカが挙げた優秀ポイント。解析の一部は、ターゲットの宛先がどのように見えるかに依存します。ハニカのリンクに基づいて、無知なヤンクとして、あなたの出力は次のようになると思います

  • お届け先
  • 組織
  • ビル名
  • 建物住所
  • 地域性
  • 宿場町
  • 郵便番号
  • BasicsMet (適切な住所の最小基準が満たされているかどうかを示すブール値。)
    • 米国では、住所が適切にCASS ed されなかったからといって、配達できなかったわけではありません。私の義理の祖父母は小さな町に住んでいるので、名前と市区町村をローカルとして指定するだけで配達できます。郵便局員は彼らが誰であるかを知っています。ただし、一括郵送の場合、その住所は一括郵送料金の対象にはならず、デフォルトで第 1 種の郵送になります。英国の郵便にも同様のシナリオが存在すると思います

一般的な考え方は、通過する各行に対して、データをそれらのバケットに解析するために最善を尽くすことです。「正しく」行うための最適なソリューションは、データ入力方法を変更して、データを検証し、それらの個別のバケットに取り込むことです。最適は決して起こらないので、ドロスを分類してゴールドを見つけるのがあなたの仕事になります。

FINDSTRING を使用していくつかの素晴らしい式を作成することはできますが、保守だけでは気が狂ってしまうので、この場合は使用しないことをお勧めします。代わりに、スクリプト変換を追加し、解析ロジックを .NET (vb または c#) で構築します。次に、変換を通じてデータを実行し、誰かに結果を見てもらうというサイクルがあります。新しいシナリオが見つかったら、戻ってビジネス ルールを調整します。それは醜く、反復的であり、人間が持っていない結果を生み出す傾向があります.

住所標準化ロジックのローリングに代わる方法

  • それを購入。最終的に、ビジネス ニーズは、絶えず変化するビジネス ルールに対処する能力を上回ります。そこにはたくさんのベンダーがありますが、私は米国に拠点を置くベンダーしか知りません
  • DQS (データ品質サービス)を使用するには、SQL Server 2012 にアップグレードしてください。おそらく、ナレッジ ベースを構築するために製品を購入する必要がありますが、ビジネス ルール作成タスクをドメインの専門家に任せることができます (「ねえ、あなたは 1 時間でピーナッツを作っています。この外観から出てくるすべてのアドレスを確認してください。私の仕事の初めに彼らがこれをカバーした方法でした)。
于 2012-07-23T15:51:22.570 に答える