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 ["すもも", "も", "もも", "も", "もも", "の", "うち"]