2016-03-31 9 views
-2

C#&ストリートアドレス解析に適したPerlライブラリが見つかりました。ColdFusionまたはJavaストリートアドレスパーサーを探しています

https://usaddress.codeplex.com/

http://search.cpan.org/~timb/Geo-StreetAddress-US-1.04/US.pm

同じ仕事をするためにCFから実行することができる何かがColdFusionコード - または - ですか?

+0

ます。http://gis.stackexchange。com/questions/26501/can-i-use-google-geocoding-api-to-parse-and-standardize-address-data – Henry

+0

これは本当に重複した質問ですか?彼は、アドレスを解析できるCF/Javaライブラリがあるかどうか尋ねましたが、他の質問は単に「どのように解析するのですか」です。他の質問の回答は、Javaの解析ライブラリの推奨事項を提供していません。 (私は2つを見つけて、それらを以下に挙げました) –

答えて

-1

私は、住所と郵便番号の予備のパーサを書いています。ここでは、始めるためのスニペットは、(https://bitbucket.org/snippets/mrrobwad/KR9Mg)です:

<cfset loc.SOURCETEXT = "123 ABC Street, Any Town, MA 12345"> 

<cfset loc.array_zip_code = REMatchNoCase("[-:.\s][0-9]{5}([-][0-9]{4})?",loc.SOURCETEXT)> 
<cfif ArrayLen(loc.array_zip_code) GT 0> 
    <cfset loc.ZIP = REReplaceNoCase(loc.array_zip_code[1],"[-:.\s]","","All")> 
    <b>ZIP:</b> 
    <cfdump var="#loc.ZIP#"> 
</cfif> 
<br><br> 
<cfset loc.street_types = "STREET|ST|DRIVE|DR|AVENUE|AVE|ROAD|RD|LOOP|COURT|CT|CIR|CIRCLE|LANE|LN|BOULEVARD|BLVD"> 
<cfset loc.array_street_type = REMatchNoCase("(\s)+(#loc.street_types#)[^a-zA-Z]",loc.SOURCETEXT)> 
<cfif ArrayLen(loc.array_street_type) GT 0> 
    <cfset loc.street_address_trimmed = Left(loc.SOURCETEXT,FindNoCase(loc.array_street_type[1],loc.SOURCETEXT)+Len(loc.array_street_type[1]))> 
    <cfset loc.array_street_address = REMatchNoCase("(\d{1,5})+(\s([a-zA-Z])+)+",loc.street_address_trimmed)> 
    <cfif ArrayLen(loc.array_street_address) GT 0> 
     <cfset loc.ADDRESS = loc.array_street_address[1]> 
     <b>ADDRESS:</b> 
     <cfdump var="#loc.ADDRESS#"> 
    </cfif> 
</cfif> 
+0

それは近いです。このスクリプト(2016年3月31日に投稿されたオリジナル)は郵便番号を特定しませんでした。 (アドレスは有効な米国5桁の郵便番号で終了しました。)アドレスと都市をコンマで区切り、コンマは 'array_street_type'&' street_address_trimmed'結果に含まれていました。 –

+0

それは面白いです。あなたが抽出したサンプルテキストを提供できますか? –

+0

余分なネストされていない ''を最後に削除します。このアドレスを試してください、 '123 ABC Street、Any Town、MA 12345'。ストリートの値は '、'で終わり、郵便番号は検出されません。ここで使用されているサンプルフォーマットは、http://englishplus.com/grammar/00000085.htmなど多くの場所で使用されています。 ( 'Post Office Box 203、Shelton、CT 06484'は道路の状態を返します。) –

0

あなたが&検証を解析する必要がある場合は、あなたがSmartyStreets.com LiveAddressのAPIを使用することができます。接続し、アドレスを検証し、そのアドレスのより多くのロケーションベースのデータのJSON構造体を返す2011年のColdFusion CFCが利用可能です。

http://smartystreets.riaforge.org/

SmartyStreetsまた、あなたが(識別&を含め、着信アドレスはあなたがあなたのバックエンドデータベースに保存する前に検証されることを保証するために、任意のWebベースのフォームに含めることができるようにjavascriptのアドレスオートコンプリートAPIを持っていますアドレス部分の完全な分離)。

それがどのオフラインのライブラリーよりも堅牢です...機能をチェックアウト:

https://smartystreets.com/features

唯一の欠点は、それが有料サービスで、あなただけの毎月無料で250個のアドレスを処理することができます:

CFCを使用することに加えて

https://smartystreets.com/free-address-verification

、IはSmartyStreetの "Smartylist"(コマンドラインツール)のための別個のラッパーを使用します。基本的にCSVファイルをアップロードし、元の送信データとともに追加の列を含む同じファイルを返します。

https://smartystreets.com/docs/smartylist/command-line-tool

+0

同様の解決策(プラットフォームと同じJavaに関する)がここで答えられました:http://stackoverflow.com/a/10147252/693068 –

0

"アドレスクリーナー" JGeoCoderを使用して、ColdFusionのコールドボックスプラグインです。 JARファイルがインストールされると

https://github.com/angelseye/Address-Cleaner

http://jgeocoder.sourceforge.net/

は、次の方法を使用してCFCを呼び出すことができ、それは次のキーCITY, LINE2, NUMBER, PREDIR, STATE, STREET, TYPE, ZIPに試合を返します。 (注:コールドボックスフレームワークを使用していない場合あなたはCFCを変更する必要があります。):

clearAddressString = addressCleaner.cleanAddress(FullAddressString); 

addressStruct = addressCleaner.getAddressStruct(FullAddressString); 

別のJavaオプションは、ColdFusionに使用できるが、「国際住所パーサ」です。 (複数の国のパックが用意されていますが、何の価格が表示されていません。)

http://www.address-parser.net/product-java.php

http://address-parser.net/documentation/documentation.php#java

+0

これは動作しますが、aparを処理しません部屋番号とスイート。私はJGeocodeをテストしましたが、https://github.com/datamade/usaddressのようにうまく動作しません。https://parserator.datamade.us/usaddressこれはPythonです.Jythonから呼び出すことも、書き込むこともできますサービスとして。 助けてくれてありがとう! –

+0

@RichardHughes Address-Parser.netは、単一国の場合は3000ユーロ、すべての国の場合は9000ユーロです。彼らの評価版は、単一の所定のアドレスを解析することしかできない。 私はまた、より能力が高く、名前、電話、電子メール、およびウェブサイトをテキスト文字列から解析できるWindows COMコンポーネントを発見しました。 http://www.address-parser.com/(私は小規模プロジェクトのために価格見積もりを要求しました)。彼らはまたWeb APIを持っていますが、広告料金はありません。 –

関連する問題