5

都市/州/郵便番号/国の複数の組み合わせでユーザーからの入力を解析するためのアドバイスを探しています。

一般的な例は、Google マップの機能です。

入力の例は次のとおりです。

  • 「市、州、国」
  • 「都市、国」
  • 「都市、郵便番号、国」
  • 「市、州、郵便番号」
  • "郵便番号"

ユーザーからのこの入力を解析する効率的で正しい方法は何でしょうか?

実装例を知っている場合は、共有してください:)

4

4 に答える 4

1

最初のステップは、区切り文字としてスペースまたはコンマを使用して、テキストを個々のトークンに分割することです。スケーラビリティのために、各トークンをスレッドまたはサーバー (Map-Reducer のようなアーキテクチャを使用している場合) に渡して、各トークンが何であるかを把握できます。例えば、

  • パターンに数字がある場合、それはおそらく郵便番号です。
  • アイテムは既知の状態のリストにありますか?
  • 国も州のようにかなり扱いやすく、数は限られています。
  • アドレスを書く一般的な方法と比較して、トークンはどのような順序ですか? ほとんどの入力は、おそらく地元の郵便局の住所形式の慣習に従います。

個々のトークンの結果が得られたら、パーツをつなぎ合わせて完全なアドレスを取得できます。質問がある場合は、ユーザーが実際に何を意味するか (Google マップなど) を促し、その情報を学習済みリストに追加できます。

そのサポートをアプリケーションに追加する最も簡単な方法は、地図システムを構築しようとしているのではなく、Google または Yahoo に問い合わせて、日付を解析するよう依頼することです。

于 2009-07-08T15:19:10.930 に答える
0

私自身、Google がそれをどのように処理しているかに非常に魅了されています。他のどこかで同じようなものを見た記憶がありません。

スペース、コンマ、セミコロンなど、さまざまな区切り文字を試して、入力文字列を単語で区切ろうとすると、いくつかの組み合わせがあります。組み合わせごとに、各単語を国、都市、町、郵便番号のデータベースと照合します。次に、組み合わせごとにグループ マッチの結果を評価する方法に関するメトリクスを定義します。郵便番号がうまく一致しないが、国、都市、町がうまく一致し、組み合わせが有効な住所を参照している場合、メトリクスは高い評価を得ます。

それは確かに難しく、夜のコード演習ではありません。また、強力な計算リソースも必要です。共有ホスティングは、わずか 10 件のリクエストでクラックする可能性がありますが、データ センターであれば問題なく処理できます。

実装例があるかどうかはわかりません。多くの地理的サービスが有料で提供されています。GoogleMaps のように洗練されたものは、かなりの費用がかかる可能性があります。

私が間違っている場合は修正してください。

于 2009-07-01T11:29:20.287 に答える
0

これらの 4 つのフィールド (City Zip State Country) のみを扱っていると仮定すると、City を除くすべてのフィールドに有限の値があり、大きな都市のリストがある場合でも有限であると推測します。したがって、各フィールドをコンマで分割してから、各フィールド リストと照合してください。

米国の住所について話していると仮定すると-

  • Zip が最もわかりやすいので、最初に確認してください。
  • 州には 50x2 のオプション (カリフォルニアまたは CA) があります。次のことを確認してください
  • 国には、あなたがどの程度包括的になりたいか (米国、米国、米国) に応じて、最大 190x2 のオプションがあります。
  • 残ったものは、おそらくあなたの都市です。

効率に関する限り、ダンが示唆するように、最初にいくつかの「標準」形式をチェックすることは理にかなっているかもしれません。

于 2009-07-08T21:05:56.907 に答える