ポケモンのSKK辞書を作ってみる

何を血迷ったのかポケモンの名前を変換するSKK辞書を作ってみたくなった。

名前が全部カタカナだからjcode.rbのString#trが使えるんだよね。
そーいや、jcode.rb使ったの初めてかもしれん。

#!/usr/bin/env ruby
# generate-pokemondic.rb
require 'kconv'
require 'open-uri'
require 'jcode'
$KCODE = 'e'

def pokemons
  ary = []
  (1..9).each do |i|
    open("http://pokeani.com/list/pokedex-a%d.html" % i) do |f|
      ary.concat f.read.toeuc.scan(%r!^<td width="90" align="center".+?>(.+?)</td>$!).flatten.map{|s| s.gsub(%r!<.+?>|\(.+\)|(.+?)!, '')}
    end
  end
  ary.reject! {|x| x == '名前'}.uniq
end

def generate_skk_entry(ary)
  entries = [ ";; okuri-ari entries.\n", ";; okuri-nasi entries.\n" ]
  entries.concat ary.map{|x|
    hira = x.tr("ァ-ン", "ぁ-ん")
    "#{hira} /#{x}/\n"
  }.sort
  entries.join
end

puts generate_skk_entry(pokemons)
$ generate-pokemondic.rb > SKK-JISYO.pokemon
$ head SKK-JISYO.pokemon
;; okuri-ari entries.
;; okuri-nasi entries.
あーぼ /アーボ/
あーぼっく /アーボック/
あーまるど /アーマルド/
あぐのむ /アグノム/
あげはんと /アゲハント/
あさなん /アサナン/
あずまおう /アズマオウ/
あちゃも /アチャモ/
$ tail SKK-JISYO.pokemon
れでぃば /レディバ/
れんとらー /レントラー/
ろこん /ロコン/
ろずれいど /ロズレイド/
ろぜりあ /ロゼリア/
ろとむ /ロトム/
わかしゃも /ワカシャモ/
わたっこ /ワタッコ/
わにのこ /ワニノコ/
わんりきー /ワンリキー/

いちおう置いといた。ポケモンSKK辞書。
http://www.rubyist.net/~rubikitch/archive/SKK-JISYO.pokemon