Subscribed unsubscribe Subscribe Subscribe

枕を欹てて聴く

香炉峰の雪は簾を撥げて看る

Ruby/CMigemo

  • にゃーーーーーー!!
  • Cで書かずにはいられないな
  • (Gem Authorsに)そろそろまぜろよ

Constellation/ruby-cmigemo · GitHub

ということで, 表題とおり, RubyからC/Migemoを叩くlibraryを書きました.
migemoはもともとRubyのlibraryなのですが, 個人で作っていたapplicationの用途にとっては少し遅かったので, C/Migemo使いたい(にゃーーーーー!!)ということで書きました.
githubのgem公開ってこれでいいのか微妙... gemできていないかも...
読み込むdictとKCODEをあわせればいいので, UTF-8/Shift_JIS/EUC-JPどれでも使えます.
C/Migemoと, dictionaryが入っている必要があります.
extconf.rbあたりは適当なので, patchとか是非.

install


gemcutterをgem sourceに追加していない人は

gem source -a http://gemcutter.org

して,

sudo gem install cmigemo

でinstallできます.

あらかじめcmigemo libraryをinstallしておく必要があります.


sample code

require 'cmigemo'
$KCODE = 'u'
dict_path = File.expand_path('~/dict')
cmigemo = CMigemo.new
{
  "migemo-dict"   => CMigemo::MIGEMO,
  "han2zen.dat"   => CMigemo::HAN2ZEN,
  "hira2kata.dat" => CMigemo::HIRA2KATA,
  "roma2hira.dat" => CMigemo::ROMA2HIRA,
}.each do |dict_file, type|
  cmigemo.load(type, File.join(dict_path, dict_file));
end

# get regexp text
reg = Regexp.new(cmigemo.query('seiza'))

puts "match!" if "星座" =~ reg
puts "match!" if "正座" =~ reg
Remove all ads