11

地図データを表示するプログラムがあります (Google マップを考えてみてください。ただし、対話性が高く、クライアント向けのカスタム レイヤーが用意されています)。

特定のフィールドに大量のデータを事前に入力する一連のコンボ ボックスを介してナビゲーションを行うことができます (例: 国: カナダ、州フィールドが入力されます。オンタリオを選択すると、郡/地域のリストが入力されます。郡/地域を選択します)。地域、市区町村が記入されているなど...)。

これにより正確な住所が保証されますが、番地や都市がどこにあるのか (つまり、キッチナーがいる郡/地域はどれか?) がわからない場合、ユーザーにとっては苦痛です。

そのため、自由形式のテキスト フィールドを使用してアドレス パーサーを実行しようとしています。

ユーザーは次のように入力できます (Google マップ、Bing マップなどと同様): 22 Main St, Kitchener, On

そして、それをセクションに区分し、データを検索して、彼らが探しているポイントにたどり着く (または代替案を提案する) ことができます。

これに関する問題は、どのように情報を適切に区分化するかということです。セクションを分割し、可能な一致を見つけるにはどうすればよいでしょうか? ユーザーが常に期待していた形式でデータを入力するという保証はないと思います (明らかに)。これに続くのは、完全一致が見つからない場合 (または複数の完全一致が見つかった場合、たとえば、異なる郡にある同じ通りの名前を持つ 2 つの都市) にデータを表示する方法です。

マッピング データ (主に mapinfo タブ形式) で利用できる大量のデータがあります。そのため、通りの名前、都市、州などをすばやくスキャンできます。しかし、この問題に取り組む最善の方法についてはわかりません。確かに、Google マップを使用するのは良いことですが、ほとんどのクライアントは外部からのアクセスが通常許可されていないネットワーク内に閉じこめられており、ほとんどのクライアントは Google マップに頼ろうとはしません (Google マップには必要な情報があまり含まれていないため)。 、カスタム マップ レイヤーなど)。もちろん、Google にアクセスして適切な場所を取得し、ソフトウェアに移動することもできますが、これには時間がかかり、プロセスの速度が非常に重要になる可能性があります。

4

4 に答える 4

7

これは基本的に、名前付きエンティティの解決の問題のクラスです。ウィキペディアのNER

これにアプローチする最善の方法は、言語トランスデューサーを使用してアドレスを解析し、さまざまな構造を識別することです。このアプローチは、有限状態マシンで正規表現を使用するのと似ています。

私はGATEと呼ばれる Java NLP と機械学習フレームワークで大きな成功を収めました。その変換ライブラリは Jape と呼ばれています。彼らの GUI をチェックして、それを使って Java コードを書きましょう!

それらの組み込みの例は、基本から始めて、必要に応じて拡張することができます。基本的に、ルールとルール エンジンを使用してテキストをコンポーネントに区分するため、次のようになります。

Xyz, Blah St,
Foo City, 11110, CA

に翻訳されます。

Place: Xyz
Street: Blah St
City: Foo
...

そして、場所のデータベースを使用して一致を行うことができます。

Jape は、ルールとは別に、辞書検索もサポートしています。そのため、データベースに既に「Blah St」があり、2 つの親 (Foo 市と Bar 市) がある場合は、次の行を解析するだけであいまいさを解消できます。

編集: GATE には ANNIE と呼ばれるツールが含まれています。これは、アドレスを特定するために使用できる情報抽出システムです。これは、構築できるいくつかの組み込み Jape ルールを使用します。

于 2009-06-04T23:55:06.610 に答える
1

Simson Garfinkel は、NeXTstep(後に Mac OS X 用に編集および更新され、Apple デザイン コンテストに提出された) の気の利いたアドレス帳の 1 つを作成しました。それ以来、オープンソース化されており、以下の彼の Web サイトから入手できます。

http://simson.net/ref/sbook5/

于 2013-05-23T16:54:01.763 に答える
0

Geocoder.caは、場所の住所文字列をクリーンアップ、標準化、ジオコーディングします。郵便番号、タイムゾーン、市外局番も追加されます。

例: https://geocoder.ca/22%20Main%20St,%20Kitchener,%20On?geoit=xml

<geodata>
        <latt>43.286272</latt>
        <longt>-80.445823</longt>
     <postal>N0B1E1</postal>
<Dissemination_Area><dauid>35300802</dauid><adauid>35300042</adauid></Dissemination_Area>
<AreaCode>226,519</AreaCode>
<TimeZone>America/Toronto</TimeZone>
<standard>
<stnumber>22</stnumber><staddress>Main ST</staddress><city>Kitchener</city><prov>ON</prov><confidence>0.7</confidence></standard>
</geodata>

于 2018-05-01T21:10:24.573 に答える