There's a lot of open issues
JapaneseAddressParser is a Ruby gem that parses Japanese address. To detect the address, it uses geolonia/japanese-addresses (https://github.com/geolonia/japanese-addresses) CSV data.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
 Dependencies
 Project Readme

JapaneseAddressParser

JapaneseAddressParser は日本の住所をパースすることができる Ruby gem です。

住所のパースに使っているのは geolonia/japanese-addresses が提供しているデータです。 data/latest.csv を用いて、与えられた住所から当てはまる「都道府県」「市区町村」「町域」を探します。

こちらのページで機能を試すことができます:デモンストレーション | JapaneseAddressParser

インストール

Gemfile にこの行を追加してください:

gem 'japanese_address_parser'

次にこのコマンドを実行してください:

$ bundle install

もしくは gem install をして直接インストールすることもできます:

$ gem install japanese_address_parser

使い方

address = JapaneseAddressParser.call('東京都港区芝公園4-2-8')

address.class #=> JapaneseAddressParser::Models::Address

prefecture = address.prefecture
prefecture.attributes #=> {:code=>"13", :name=>"東京都", :name_kana=>"トウキョウト", :name_romaji=>"TOKYO TO"}

city = address.city
city.attributes #=> {:code=>"13103", :formatted_code=>"13103", :prefecture_code=>"13", :name=>"港区", :name_kana=>"ミナトク", :name_romaji=>"MINATO KU"}

town = address.town
town.attributes #=> {:name=>"芝公園四丁目", :name_kana=>"シバコウエン 4", :name_romaji=>"SHIBAKOEN 4", :nickname=>nil, :latitude=>"35.656459", :longitude=>"139.74764"}

address.full_address #=> "東京都港区芝公園4-2-8"
address.furigana #=> "トウキョウトミナトクシバコウエン 4"
都道府県データの属性

クラス:JapaneseAddressParser::Models::Prefecture

属性 説明
code 都道府県コード "01"
name 名前 "北海道"
name_kana ふりがな "ホッカイドウ"
name_romaji ローマ字 "HOKKAIDO"
市区町村データの属性

クラス:JapaneseAddressParser::Models::City

属性 説明
code 市区町村コード "01101"
formatted_code 整形された市区町村コード
市区町村コードがない場合に "UNKNOWN" が入っています。
"01101" / "UNKNOWN"
prefecture_code 都道府県コード "01"
name 名前 "札幌市中央区"
name_kana ふりがな "サッポロシチュウオウク"
name_romaji ローマ字 "SAPPORO SHI CHUO KU"
町域データの属性

クラス:JapaneseAddressParser::Models::Town

属性 説明
name 名前 "旭ケ丘一丁目"
name_kana ふりがな "アサヒガオカ 1"
name_romaji ローマ字 "ASAHIGAOKA 1"
nickname 小字・通称名
latitude 緯度 "43.04223"
longitude 経度 "141.319722"

都道府県や市区町村、町域のそれぞれの属性の値は geolonia/japanese-addresses が提供している CSV ファイルの値そのままです。

与えられた住所からうまく地名が見つけられないときはそれ以降の探索を中止します。 見つけられた地名のデータだけを含んだデータを返します。

musashi = JapaneseAddressParser.call('武蔵国港区芝公園4-2-8')
musashi.prefecture #=> nil
musashi.city #=> nil
musashi.town #=> nil

kounan = JapaneseAddressParser.call('東京都港南区芝公園4-2-8')
kounan.prefecture.name #=> "東京都"
kounan.city #=> nil
kounan.town #=> nil
kounan.furigana #=> "トウキョウト"

開発

開発に必要なライブラリをインストールするには、このコマンドを実行してください:

bin/setup

自動テストやリンターを実行するには、このコマンドを実行してください:

rake

貢献方法

イシューやプルリクエストは随時お待ちしています。

特に住所の正規化については漏れているケースがまだまだ数多くありそうです。 「この住所だとうまくパースできないよ」くらいの気軽なもので結構ですので、イシューでのご報告をお願いします。

ライセンス

この gem は MIT ライセンス の下でオープンソースとして利用可能です。

行動規範

JapaneseAddressParser に関してコードを書いたりイシューを追加したりする際は 行動規範 に従ってください。