Ruby で日本語の単語を活用させる

例:

require 'MeCab'
require 'rubygems'
require 'ja_util'

JaUtil::Word.get_cforms('/usr/share/chasen/dic/naist-jdic-utf8/cforms.cha')

mecab = MeCab::Tagger.new
verb = JaUtil::Word.new(mecab.parseToNode('動く').next)
puts '活用候補:' + verb.form_names.join(' ')
puts '基本形:' + verb.conj('基本形').surface + '。'
puts '未然形:' + verb.conj('未然形').surface + 'ない'
puts '連用形:' + verb.conj('連用形').surface + 'ます'
puts '仮定形:' + verb.conj('仮定形').surface + 'ば'
puts '命令形:' + verb.conj('命令e').surface + '!'

出力:

活用候補:基本形 未然形 未然ウ接続 連用形 連用タ接続 仮定形 命令e 仮定縮約1
基本形:動く。
未然形:動かない
連用形:動きます
仮定形:動けば
命令形:動け!


RubyMeCab バインディングMeCab::Node のラッパーみたいな感じで、
動詞とか形容詞を活用させることができるライブラリ。
ちょっと作ってみたいものがあって、その前準備として作った。


MeCab::Node 自身は自分がどういう風に活用すればいいのか知らないので、
Chasen に含まれてる cforms.cha というファイルを読み込んで活用情報を取得してる。


一応 (適当くさい) テストは書いてるんだけど、
助動詞の活用とか全部試せていないので、まだまだバグが山ほどあるっぽい。