Windows上のrubyでMeCabをちょっこっと使ってみたい
ActiveRubyとかからちょろっとMeCabを使ってみたい、、、でもMeCabのruby bindingとか使うのは億劫、って人向けに書いてみました。単にpopenで直接MeCabを呼んでるだけですが、、、
#!/bin/ruby -Ks # -*- coding: euc-jp -*- # # easymecab.rb # class MeCab def initialize(option) @path = "/cygdrive/c/MeCab/bin/mecab.exe" # MeCabへのパス @option = option end def parse_file(s) cmd_string = [@path, @option, s].join(" ") word_list = [] io = IO.popen(cmd_string, "r") until io.eof? word_list.concat io.gets.split(' ') end return word_list end end
上のコードはcygwin版rubyで試してみました。MeCabへのパスは、自分の環境にあうように修正してください。そしたらこんな感じ↓で使えます。たぶん・・・。
#!/bin/ruby -Ks # -*- coding: euc-jp -*- # mecabtest.rb require 'easymecab' m = MeCab.new("-O wakati") p m.parse_file("test.txt")
実行結果↓
/wk/ruby$ cat test.txt すもももももももものうち /wk/ruby$ ./mecabtest.rb ["すもも", "も", "もも", "も", "もも", "の", "うち"]