Hideyuki SHIRAI ( 白井秀行 )
shira****@meado*****
2010年 6月 12日 (土) 23:21:41 JST
白井です。 とりあえず、(個人的には満足した)郵便番号変換ツールが出来ました。 大泉さんの gendic_zip.rb には多謝です。 gendic_zip.rb と比べて変わった点は、 ・Emacs Lisp で書いたので、(ぼくにとっては)改造が容易で、辞書が 新しくなったときに、もし必要であっても、例外処理の追加はそれな りに簡単だと思う。 ・()内部の展開に可能な限り対応 ==> 固有の地名と思われるものはすべて展開 ==> 何丁目[(1,2丁目) (1〜5丁目) etc]の展開もサポート ・事業所データベース対応 ==> 株式会社→(株) のような短縮名対応 ==> 但し、事業所の名称部分のフリーフォーマット具合はすさまじい のでミスもありそう。 といった感じです。有用だと思われたら使ってください。 コード自体は、結局、例外処理の対応をスパゲティ的に付け加えていっ たので、(汎用性はそれなりに維持しているとは思いますが)とても汚い コードになっています。 elisp と こんな感じで OK という shell script を付けておきます。 今回は Anthy (ついでに SDIC) だけですが、フォーマットがわかれば 他の形式にするのもそんなに難しく無いかな? -- 白井秀行 (mailto:shira****@meado*****) -------------- next part -------------- テキスト形式以外の添付ファイルを保管しました... ファイル名: zipcode-make.el.gz 型: application/octet-stream サイズ: 8048 バイト 説明: 無し ダウンロード -------------- next part -------------- #!/bin/sh EMACS=emacs; export EMACS # EMACS=Meadow; export EMACS if [ ! -f ken_all.lzh ]; then wget http://www.post.japanpost.jp/zipcode/dl/kogaki/lzh/ken_all.lzh fi if [ ! -f ken_all.csv ]; then lha ptq ken_all.lzh > ken_all.csv fi if [ ! -f jigyosyo.lzh ]; then wget http://www.post.japanpost.jp/zipcode/dl/jigyosyo/lzh/jigyosyo.lzh fi if [ ! -f jigyosyo.csv ]; then lha ptq jigyosyo.lzh > jigyosyo.csv fi $EMACS -batch -q -no-site-file -l ./zipcode-make.el -f zipcode-make -------------- next part -------------- P.S. gendic_zip.rb ですが、もう一点バグを見つけました。手元に ruby 1.9 が無いので動作確認はしてないのですが、 ken_all.each{|item| if item[1] =~ /[0-9A-Z()─]/ hankaku << [item[0], item[1].tr("0-9A-Z()─", "0-9A-Z()-")] end } => ken_all.each{|item| if item[1] =~ /[0-9A-Za-z()─]/ hankaku << [item[0], item[1].tr("0-9A-Za-z()─", "0-9A-Za-z()-")] end } だと思われます。