MeCab

2008/9/27更新

対応バージョン: 0.97

公式サイト

準備

あらかじめインストールしておくもの

MeCab

関連資料・記事

導入に必要なもの

mecab-ruby-0.97.tar.gz

導入OS

Fedora 9

インストール

% tar zxvf mecab-ruby-0.97.tar.gz
% cd mecab-ruby-0.97
% ruby extconf.rb
% make
% sudo make install

インストール物 (man,infoは除く)

/usr/lib/ruby/site_ruby/1.8/i386-linux/MeCab.so

動作確認

以下のようなプログラムを書いて文章を解析してみる。

require 'MeCab'

opt  = ARGV[0..-2].join(" ")    # オプション(-O wakatiなど)
data = ARGV[-1]                 # 解析文字列

c = MeCab::Tagger.new(opt)

puts c.parse(data)
オプションなし(品詞解析)
% ./test.rb 隣の竹やぶに竹たてかけた
隣	名詞,一般,*,*,*,*,隣,トナリ,トナリ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
竹やぶ	名詞,一般,*,*,*,*,竹やぶ,タケヤブ,タケヤブ
に	助詞,格助詞,一般,*,*,*,に,ニ,ニ
竹	名詞,一般,*,*,*,*,竹,タケ,タケ
たてかけ	動詞,自立,*,*,一段,連用形,たてかける,タテカケ,タテカケ
た	助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
EOS
分かち書き
% ./test.rb -O wakati 隣の竹やぶに竹たてかけた
隣 の 竹やぶ に 竹 たてかけ た 
読みがな付与
% ./test.rb -O yomi 隣の竹やぶに竹たてかけた
トナリノタケヤブニタケタテカケタ

名詞のみ取り出すプログラムを書いてみる。

require 'MeCab'

data = ARGV[-1]                  # 解析文字列

c = MeCab::Tagger.new()

n = c.parseToNode(data)

# 形態素ごとループ
while n do
  type = n.feature.split(",")[0] # 品詞 

  if type == "名詞"              # 名詞のみ出力
    puts n.surface
  end

  n = n.next                     # 次に移動
end
% ./test.rb 隣の竹やぶに竹たてかけた
隣
竹やぶ
竹

他にもいろいろな使いかたがあるので公式サイトのスクリプト言語のバインディングを参照のこと。

2008/9/19更新

対応バージョン: 0.97

公式サイト

http://mecab.sourceforge.net/

準備

導入に必要なもの

mecab-0.97.tar.gz

MeCab本体

mecab-ipadic-2.7.0-20070801.tar.gz

MeCab用辞書 (IPA辞書)

導入OS

Fedora 9

インストール

本体インストール

% tar zxvf mecab-0.97.tar.gz
% cd mecab-0.97
% ./configure
% make
% sudo make install
% sudo ldconfig (ライブラリパス再作成)

インストール物 (man,infoは除く)

/usr/local/etc/mecabrc

/usr/local/bin/mecab
/usr/local/bin/mecab-config

/usr/local/lib/libmecab.*

/usr/local/libexec/mecab/*

/usr/local/include/mecab.h

辞書インストール

% tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
% cd mecab-ipadic-2.7.0-20070801
% ./configure --with-charset=utf8 (*)

(*) 文字コードはデフォルトで日本語EUCなので別の文字コードを使う場合は明示する。Shift-JISの場合は「--with-charset=sjis」。

% make
% sudo make install

インストール物 (man,infoは除く)

/usr/local/lib/mecab/dic/ipadic/*

各種設定

/usr/local/etc/mecabrcにて設定を行う。

以下、主な設定項目について説明する。

dicdir = <辞書ディレクトリ>

辞書が格納されているディレクトリを指定する。

デフォルトは/usr/local/lib/mecab/dic/ipadic。

userdic = <辞書ファイル>

ユーザ辞書を指定する。

デフォルトは無指定(コメントアウト)。

例)

userdic = /home/foo/user.dic

output-format-type = <出力フォーマット>

出力フォーマットを定義し、フォーマット毎の細かい制御を別途以下の項目にて行う。

node-format-<フォーマット名> = <設定>

unk-format-<フォーマット名> = <設定>

eos-format-<フォーマット名> = <設定>

bos-format-<フォーマット名> = <設定>

詳細は公式サイトの出力フォーマットを参照のこと。

デフォルトはwakati(分かち書き)。

input-buffer-size = <入力バッファサイズ>

入力バッファのサイズをバイトで指定する。

デフォルトは8192。

動作確認

文章を解析してみる。

まず標準入力から文章する。

% mecab
隣の竹やぶに竹たてかけた
隣	名詞,一般,*,*,*,*,隣,トナリ,トナリ
の	助詞,連体化,*,*,*,*,の,ノ,ノ
竹やぶ	名詞,一般,*,*,*,*,竹やぶ,タケヤブ,タケヤブ
に	助詞,格助詞,一般,*,*,*,に,ニ,ニ
竹	名詞,一般,*,*,*,*,竹,タケ,タケ
たてかけ	動詞,自立,*,*,一段,連用形,たてかける,タテカケ,タテカケ
た	助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
EOS

次に分かち書きをしてみる。

% mecab -O wakati
隣の竹やぶに竹たてかけた
隣 の 竹やぶ に 竹 たてかけ た 

読みがなを付与してみる。

% mecab -O yomi
隣の竹やぶに竹たてかけた
トナリノタケヤブニタケタテカケタ

他にもいろいろな方法があるので公式サイトの使い方を参照のこと。

関連資料・記事