RubyでMecabを使ってみた (Mac OS X)
Ruby で Mecab という形態素解析エンジンを使ってみました。
インストール
ソースからインストールしないといけないかなと思ったらどうやら Mac なら MacPorts で簡単にインストールできるようで、
$ sudo port install mecab $ sudo port install mecab-ipadic-utf8 $ sudo port install rb-mecab
これだけ。かと思ったらなぜか文字化けを起こしてしまい、調べてみると辞書ファイルの指定が UTF-8 になっていませんでした。
/opt/local/etc/mecabrc をエディタで開いて、
$ sudo vim /opt/local/etc/mecabrc
dicdir を書き換えました。
-dicdir = /opt/local/lib/mecab/dic/ipadic +dicdir = /opt/local/lib/mecab/dic/ipadic-utf8
サンプルコード
require "MeCab" def parse(str) mecab = MeCab::Tagger.new("-Ochasen") node = mecab.parseToNode(str) while node puts node.surface + " " + node.feature node = node.next end end parse("女優酒井法子容疑者(38)の覚せい剤取締法違反事件で、同容疑者の毛髪鑑定で、覚せい剤とみられる反応が出たことが19日、捜査関係者への取材で分かった。")
parseToNode を使うと解析結果がノード形式で返されます。上記の場合、node.surface に単語、node.feature に品詞などの情報が入っていて、node.next で次のノードを参照できます。
実行結果
BOS/EOS,*,*,*,*,*,*,*,* 女優 名詞,一般,*,*,*,*,女優,ジョユウ,ジョユー 酒井 名詞,固有名詞,人名,姓,*,*,酒井,サカイ,サカイ 法子 名詞,固有名詞,人名,名,*,*,法子,ノリコ,ノリコ 容疑 名詞,一般,*,*,*,*,容疑,ヨウギ,ヨーギ 者 名詞,接尾,一般,*,*,*,者,モノ,モノ ( 記号,括弧開,*,*,*,*,(,(,( 38 名詞,数,*,*,*,*,* ) 記号,括弧閉,*,*,*,*,),),) の 助詞,連体化,*,*,*,*,の,ノ,ノ 覚せい 名詞,サ変接続,*,*,*,*,覚せい,カクセイ,カクセイ 剤 名詞,接尾,一般,*,*,*,剤,ザイ,ザイ 取締 名詞,サ変接続,*,*,*,*,取締,トリシマリ,トリシマリ 法 名詞,接尾,一般,*,*,*,法,ホウ,ホー 違反 名詞,サ変接続,*,*,*,*,違反,イハン,イハン 事件 名詞,一般,*,*,*,*,事件,ジケン,ジケン で 助詞,格助詞,一般,*,*,*,で,デ,デ 、 記号,読点,*,*,*,*,、,、,、 同 接頭詞,名詞接続,*,*,*,*,同,ドウ,ドー 容疑 名詞,一般,*,*,*,*,容疑,ヨウギ,ヨーギ 者 名詞,接尾,一般,*,*,*,者,モノ,モノ の 助詞,連体化,*,*,*,*,の,ノ,ノ 毛髪 名詞,一般,*,*,*,*,毛髪,モウハツ,モーハツ 鑑定 名詞,サ変接続,*,*,*,*,鑑定,カンテイ,カンテイ で 助詞,格助詞,一般,*,*,*,で,デ,デ 、 記号,読点,*,*,*,*,、,、,、 覚せい 名詞,サ変接続,*,*,*,*,覚せい,カクセイ,カクセイ 剤 名詞,接尾,一般,*,*,*,剤,ザイ,ザイ と 助詞,格助詞,引用,*,*,*,と,ト,ト み 動詞,自立,*,*,一段,未然形,みる,ミ,ミ られる 動詞,接尾,*,*,一段,基本形,られる,ラレル,ラレル 反応 名詞,サ変接続,*,*,*,*,反応,ハンノウ,ハンノー が 助詞,格助詞,一般,*,*,*,が,ガ,ガ 出 動詞,自立,*,*,一段,連用形,出る,デ,デ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ こと 名詞,非自立,一般,*,*,*,こと,コト,コト が 助詞,格助詞,一般,*,*,*,が,ガ,ガ 19 名詞,数,*,*,*,*,* 日 名詞,接尾,助数詞,*,*,*,日,ニチ,ニチ 、 記号,読点,*,*,*,*,、,、,、 捜査 名詞,サ変接続,*,*,*,*,捜査,ソウサ,ソーサ 関係 名詞,サ変接続,*,*,*,*,関係,カンケイ,カンケイ 者 名詞,接尾,一般,*,*,*,者,モノ,モノ へ 助詞,格助詞,一般,*,*,*,へ,ヘ,エ の 助詞,連体化,*,*,*,*,の,ノ,ノ 取材 名詞,サ変接続,*,*,*,*,取材,シュザイ,シュザイ で 助詞,格助詞,一般,*,*,*,で,デ,デ 分かっ 動詞,自立,*,*,五段・ラ行,連用タ接続,分かる,ワカッ,ワカッ た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ 。 記号,句点,*,*,*,*,。,。,。 BOS/EOS,*,*,*,*,*,*,*,*
【参考にしたサイト】
» MeCab: Yet Another Part-of-Speech and Morphological Analyzer
» RubyのMecabでSegmentation fault。 | tkosugaのブログ | 海鮮料理がうまいww
» MacPorts を使って MeCab をインストールする (CasualConc J)
» [-*煙猴*-]: mecab-rubyを使ってみる
» 形態素解析とMeCabとPythonと文字化け – 牌語備忘録
コメントを残す