7 月3rd

Mecab-Ruby 試してみた。

t-matsuda Ruby Read on

Rubyにそろそろ手を出そうと思い立ち、なぜかまずmecab-rubyを触ってみたw

とりあえず、シンプルに。

#!/usr/bin/ruby 

require 'MeCab'
sentence = "梅雨の時期だけあって、今日はちょっとじめじめしてますね。明日はさらっとしてほしいです。" 

begin
     c = MeCab::Tagger.new("-OChasen")
     puts c.parse(sentence)
rescue
      print "RuntimeError: ", $!, "n";
end

結果

梅雨 名詞,一般,*,*,*,*,梅雨,バイウ,バイウ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
時期 名詞,副詞可能,*,*,*,*,時期,ジキ,ジキ
だけ 助詞,副助詞,*,*,*,*,だけ,ダケ,ダケ
あっ 動詞,自立,*,*,五段・ラ行,連用タ接続,ある,アッ,アッ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
、 記号,読点,*,*,*,*,、,、,、
今日 名詞,副詞可能,*,*,*,*,今日,コンニチ,コンニチ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
ちょっと 副詞,助詞類接続,*,*,*,*,ちょっと,チョット,チョット
じめじめ 副詞,一般,*,*,*,*,じめじめ,ジメジメ,ジメジメ
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
ね 助詞,終助詞,*,*,*,*,ね,ネ,ネ
。 記号,句点,*,*,*,*,。,。,。
明日 名詞,副詞可能,*,*,*,*,明日,アス,アス
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
さらっ 動詞,自立,*,*,五段・ワ行促音便,連用タ接続,さらう,サラッ,サラッ
と 助詞,格助詞,引用,*,*,*,と,ト,ト
し 動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
ほしい 形容詞,非自立,*,*,形容詞・イ段,基本形,ほしい,ホシイ,ホシイ
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。 記号,句点,*,*,*,*,。,。,。
EOS

ちょっとrubyの勉強といことで
名詞の一覧を配列に格納するプログラムを作ってみた。(重複は消す)

#!/usr/bin/ruby 

require 'MeCab'
sentence = "梅雨の時期だけあって、今日はちょっとじめじめしてますね。明日はさらっとしてほしいです。" 

begin 

     c = MeCab::Tagger.new("-Ochasen") 

     n = c.parseToNode(sentence) 

    list = Array.new
     while n do
        f = n.feature.split(/,/) 

        if /名詞/ =~ f[0]
            list.push(n.surface)
        end
        n = n.next
     end 

    p list.uniq 

rescue
      print "RuntimeError: ", $!, "n";
end

結果

["梅雨", "時期", "今日", "明日"]

バインディングされてるとヤッパリ扱いやすいな。
PHP版も出ないかな。でないだろうなw


About this entry