【Mac】RubyでnattoでMeCabを使う


MeCabについての説明は公式サイトの記述を引用させて頂きます。

MeCabは 京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトを通じて開発されたオープンソース 形態素解析エンジンです。 言語, 辞書,コーパスに依存しない汎用的な設計を 基本方針としています。 パラメータの推定に Conditional Random Fields (CRF) を用 いており, ChaSenが採用している 隠れマルコフモデルに比べ性能が向上しています。また、平均的に ChaSen, Juman, KAKASIより高速に動作します。 ちなみに和布蕪(めかぶ)は, 作者の好物です。

引用:MeCab (和布蕪)とは - https://taku910.github.io/mecab/

ということで、今回の目的はRubyでMeCabを使用して形態素解析をを行うことです。
使用OSはMacです。

MeCabインストール

MeCabのインストールにはHomebrewを使用します。
Homebrewの導入は割愛します。(参考:https://brew.sh/index_ja)

terminal
$ brew install mecab
$ brew install mecab-ipadic

一つ目はMeCab本体、二つ目はMeCabで使用する辞書情報のインストールとなります。
これでMacでMeCabが使えるようになりました。

terminal
$ mecab
(入力待ちになるので任意の文字列を入力してEnter)

例
$ mecab
おはようございます。
おはよう  感動詞,*,*,*,*,*,おはよう,オハヨウ,オハヨー
ござい  助動詞,*,*,*,五段・ラ行特殊,連用形,ござる,ゴザイ,ゴザイ
ます   助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
。       記号,句点,*,*,*,*,。,。,。
EOS

nattoインストール

RubyでMeCabを使うためにはnatto gemを使用します。
https://github.com/buruzaemon/natto

terminal
$ gem install natto

gemをインストール後、pathを設定します。

terminal
$ export MECAB_PATH=/usr/local/Cellar/mecab/0.996/lib/libmecab.dylib

上記のパスが存在しない場合は、libmecab を部分一致で検索して正しいパスを指定してください。

動作確認

rubyで以下のようにファイルを作成します。

test.rb
require 'natto'

nm = Natto::MeCab.new
puts nm.parse('ここに形態素解析したい文字列を入力してね!実行したら解析されるよ。')

実行するとこんな感じです。

terminal
$ ruby test.rb
ここ     名詞,代名詞,一般,*,*,*,ここ,ココ,ココ
に      助詞,格助詞,一般,*,*,*,に,ニ,ニ
形態素   名詞,一般,*,*,*,*,形態素,ケイタイソ,ケイタイソ
解析    名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセキ
し      動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
たい    助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ
文字    名詞,一般,*,*,*,*,文字,モジ,モジ
列      名詞,一般,*,*,*,*,列,レツ,レツ
を      助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
入力    名詞,サ変接続,*,*,*,*,入力,ニュウリョク,ニューリョク
し      動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
て      助詞,接続助詞,*,*,*,*,て,テ,テ
ね      助詞,終助詞,*,*,*,*,ね,ネ,ネ
!       記号,一般,*,*,*,*,!,!,!
実行    名詞,サ変接続,*,*,*,*,実行,ジッコウ,ジッコー
し      動詞,自立,*,*,サ変・スル,連用形,する,シ,シ
たら    助動詞,*,*,*,特殊・タ,仮定形,た,タラ,タラ
解析    名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセキ
さ      動詞,自立,*,*,サ変・スル,未然レル接続,する,サ,サ
れる    動詞,接尾,*,*,一段,基本形,れる,レル,レル
よ      助詞,終助詞,*,*,*,*,よ,ヨ,ヨ
。      記号,句点,*,*,*,*,。,。,。
EOS

以上です。