ことわざのSKK辞書を作ってみる
慣用句のSKK辞書を作ってみる - http://rubikitch.com/に移転しましたの続きで今度はことわざ辞典を生成する。
ここに置いたんでもってけ!
http://www.rubyist.net/~rubikitch/archive/SKK-JISYO.kotowaza
以下のスクリプトで作成。
エントリーが多いのでダウンロードと生成の二段階に分けた。
ただし、元データのふりがなが完全に振られていないため、一部のことわざの読みがおかしくなっている。自動生成だから大目に見てくれ。
#!/usr/local/bin/ruby -Ke require 'optparse' require 'kconv' TMP_DIR = "kotowaza" class String def untag! gsub!(/<.+?>/, '') end end def get_entry(html) s = html.toeuc[/『(.+?)』/, 1] s.untag! kanji = s.gsub(/(.+?)/, '') kana = s.gsub(/・.+?())/, '\1').gsub(/[()]|[^ぁ-んー]/, '') [kana, kanji] end def generate Dir.chdir TMP_DIR do entries = [ ";; okuri-ari entries.\n", ";; okuri-nasi entries.\n" ] entries.concat Dir["[0-9]*.html"].map{|file| kana, kanji = get_entry(File.read(file)) "#{kana} /#{kanji}/\n" }.sort puts entries end end def fetch urls = (1..12).map{|i| "http://www.geocities.jp/tomomi965/kotowaza%02d/left%02d.html" % [i,i]} DIR.mkdir TMP_DIR rescue nil Dir.chdir TMP_DIR do system "wget -r -l1 -w1 -nd #{urls.join ' '}" end end if __FILE__==$0 function = nil ARGV.options {|o| o.on("--fetch") {|x| function = :fetch } o.on("--generate") {|x| function = :generate } if ARGV.empty? print o exit 1 end o.parse! } __send__ function end
$ ruby generate-kotowazadic.rb --fetch $ ruby generate-kotowazadic.rb --generate > SKK-JISYO.kotowaza