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 基本形:動く。 未然形:動かない 連用形:動きます 仮定形:動けば 命令形:動け!
Ruby の MeCab バインディングの MeCab::Node のラッパーみたいな感じで、
動詞とか形容詞を活用させることができるライブラリ。
ちょっと作ってみたいものがあって、その前準備として作った。
MeCab::Node 自身は自分がどういう風に活用すればいいのか知らないので、
Chasen に含まれてる cforms.cha というファイルを読み込んで活用情報を取得してる。
一応 (適当くさい) テストは書いてるんだけど、
助動詞の活用とか全部試せていないので、まだまだバグが山ほどあるっぽい。