白井です。 とりあえず、(個人的には満足した)郵便番号変換ツールが出来ました。 大泉さんの gendic_zip.rb には多謝です。
gendic_zip.rb と比べて変わった点は、 ・Emacs Lisp で書いたので、(ぼくにとっては)改造が容易で、辞書が 新しくなったときに、もし必要であっても、例外処理の追加はそれな りに簡単だと思う。 ・()内部の展開に可能な限り対応 ==> 固有の地名と思われるものはすべて展開 ==> 何丁目[(1,2丁目) (1〜5丁目) etc]の展開もサポート ・事業所データベース対応 ==> 株式会社→(株) のような短縮名対応 ==> 但し、事業所の名称部分のフリーフォーマット具合はすさまじい のでミスもありそう。 といった感じです。有用だと思われたら使ってください。 コード自体は、結局、例外処理の対応をスパゲティ的に付け加えていっ たので、(汎用性はそれなりに維持しているとは思いますが)とても汚い コードになっています。 elisp と こんな感じで OK という shell script を付けておきます。 今回は Anthy (ついでに SDIC) だけですが、フォーマットがわかれば 他の形式にするのもそんなに難しく無いかな? -- 白井秀行 (mailto:[email protected])
zipcode-make.el.gz
Description: Binary data
#!/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
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
}
だと思われます。
_______________________________________________ Anthy-dev mailing list [email protected] http://lists.sourceforge.jp/mailman/listinfo/anthy-dev
