[解決済み] 文字列から使える番地、市区町村、郵便番号の解析【非公開
質問
問題:AccessデータベースからSQL Server 2005に変換された住所フィールドがあります。このフィールドには、1 つのフィールドにすべてが含まれています。私は、住所の個々のセクションを解析して、正規化されたテーブルの適切なフィールドにする必要があります。私はこれを約 4,000 のレコードに対して行う必要があり、それは反復可能である必要があります。
仮定。
-
米国内の住所を想定(現時点では)
-
入力文字列は時々、addressee (宛先となる人物) および/または2番目のストリートアドレス (例: Suite B) を含むと仮定します。
-
状態は省略されることがあります。
-
郵便番号は標準的な5桁またはzip+4桁です。
-
誤字がある場合があります
UPDATE: 投げかけられた質問に対して、標準は普遍的に守られていませんでした。私は、ジオコードとエラーだけでなく、個々の値を格納する必要があり、タイプミスを意味します(上で訂正しました)
サンプル データです。
-
A. P. Croll & Son 2299 Lewes-Georgetown Hwy, Georgetown, DE 19947
-
11522ショーニーロード、グリーンウッドDE 19950
-
144 キングスハイウェイ、S.W. ドーヴァ、DE 19901
-
Intergrated Const. サービス 2 ペンズ・ウェイ・スイート 405 ニューキャッスル、デラウェア州 19720
-
ヒュームス・リアルティ 33 Bridle Ridge Court, Lewes, DE 19958
-
ニコルズエクスカベーション 2742 Pulaski Hwy Newark, DE 19711
-
2284 ブリンジオンロード、スマイナ、DE 19904
-
VEI Dover Crossroads, LLC 1500 Serpentine Road, Suite 100 Baltimore MD 21
-
580 ノース デュポン ハイウェイ ドーヴァー、DE 19901
-
私書箱 778号 ドーヴァー、DE 19903
どのように解決するのですか?
私はこの種の構文解析について多くの作業を行ってきました。エラーがあるため、100%の精度は得られませんが、大体のことはできるようになり、その後、目視でBSテストをすることができます。これが一般的な方法です。書くのはかなりアカデミックなので、コードではありません、変なところはなく、文字列の処理が多いだけです。
(サンプルデータを載せていただいたので、少し修正しました)
- 逆向きに作業します。郵便番号から始めます。郵便番号は最後の方にあり、2 つの既知の形式のうちの 1 つです。XXXXX または XXXXX-XXXX です。これが表示されない場合は、以下の「都市、州」の部分にいると考えてください。
- 次に、郵便番号の前にあるのが州で、2 文字の形式か、単語で表示されます。これも50個しかないので、どうなるかはわかりますよね。また、スペルミスを補うために、単語を音訳することもできます。
- の前にあるのは都市で、それは おそらく で、州と同じ行にあります。を使うことができます。 郵便番号データベース を使って、郵便番号に基づいて都市と州をチェックするか、少なくとも BS 検出器として使用することができます。
- ストリート アドレスは通常、1 行または 2 行になります。2 行目は通常、スイート番号がある場合はその番号になりますが、私書箱である場合もあります。
- 1 行目または 2 行目で名前を検出するのはほぼ不可能でしょうが、番号が前に付いていない場合 (または "attn:" や "attention to:" が前に付いている場合は、名前か住所かのヒントになるかもしれません)。
多少なりともお役に立てれば幸いです。
関連
-
[解決済み] 文字列をfloatやintにパースするにはどうしたらいいですか?
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] 文字列から空白を取り除くには?
-
[解決済み] Pythonで文字列からbooleanに変換する?
-
[解決済み] IList<string> または IEnumerable<string> からカンマ区切りリストを作成する。
-
[解決済み] 文字列からストリームを生成するにはどうすればよいですか?
-
[解決済み] JavaScriptで文字列から数字以外の文字を取り除く
-
[解決済み] 文字列からテキストを削除するには?
-
[解決済み] swiftにStringのtrimメソッドはありますか?
-
[解決済み] 自由形式の住所/郵便番号をテキストから解析し、コンポーネントに変換する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Groovyの複数行のStringの何が問題なのですか?
-
[解決済み] Bashでパス文字列からファイルのサフィックスとパス部分を削除するにはどうすればよいですか?
-
[解決済み] Goで文字列を整数型に変換する?
-
[解決済み】Dartで文字列を数値にパースする方法は?
-
[解決済み] Python: None を空の文字列に変換する最も慣用的な方法?
-
[解決済み] SwiftでNSDataから文字列を初期化する方法
-
[解決済み] 文字列の文字数を取得する方法
-
[解決済み] 文字列を分割して変数に代入する方法
-
[解決済み] 自由形式の住所/郵便番号をテキストから解析し、コンポーネントに変換する方法
-
[解決済み] dartの文字列の最初の文字を大文字にするには?