9

私は Java 6 を使用しています。アドレスを解析する自動化された方法を探しています。アドレスが存在するかどうかは気にしません。私が見つけた最良のものは JGeocoder (v 0.4.1) ですが、JGeocoder はこのようなアドレスを解析できません。

16th Street Theater, Berwyn Cultural Center,  6420 16th St.

挑戦できる無料のJavaアドレスパーサーを知っている人はいますか? 「解析」とは、通り、都市、州、郵便番号、および場合によっては会場名 (上記の会場名は「16th Street Theatre, Berwyn Cultural Center」) を区別する能力を意味します。

4

3 に答える 3

7

更新:このトピックは、この StackOverflow questionでより網羅的にカバーされています。


私は住所を解析して処理するSmartyStreetsで働いており、答えがあります。これは、「 SLAP」または単一行アドレス解析 (または処理)と呼ばれるものです。正式な用語はNamed Entity Recognition (NER)です。

私は Java ライブラリの専門家ではありませんが、社内での実装が期待に応えられないことはわかっています。私が以前に支援した人々が困難を抱えていたいくつかの一般的な理由は次のとおりです。

  • グーグル/ヤフー!/ Bing Maps Web サービスは、自動クエリを許可せず、解析された住所の正確性を検証しません。

  • 社内コードは、既存のアドレス (データベース) やその他の公式ソースに関する知識がなくても、最善の推測を行うことしかできません。社内でこれを行うことができるライブラリが必要なのはわかっていますが、せいぜい推測することができます...

  • ちなみに、正規表現は答えではありません。アドレスを解析するために私が見た中で最高の正規表現は、数百行のコードといくつかのクラスで動的に生成されました。それはごちゃごちゃで、実際に存在するすべての有効な (米国の) 形式ではなく、予想される種類の住所に対してのみ正しいものでした。

これは信じられないほど複雑な作業です...適切なツールがない限り. 私たちのサービスの 1 つはLiveAddress APIと呼ばれ、住所を解析してジオコーディングするという点で Google マップに似ていますが、CASS 認定を受けており、ほとんど入力形式に関係なく有効な住所のみを返すことで、さらに一歩進んでいます。

独自の調査を行うことをお勧めしますが、これがおそらく最も効果的で信頼できる方法です。

于 2012-04-13T19:38:46.370 に答える
3

https://code.google.com/p/usaddressparser/米国の住所文字列を解析し、フィールド (番号、通り、スイート、都市、郵便番号など) に分割します。Java jar とソース

于 2013-08-06T02:08:07.557 に答える
0

Web サービスが許可されている場合は、Google マップを試すことができます。

于 2012-04-13T19:11:34.513 に答える