ページへ戻る

− Links

 印刷 

自然言語解析​/MeCabをpythonで使う のバックアップソース(No.1) :: NJF Wiki

xpwiki:自然言語解析/MeCabをpythonで使う のバックアップソース(No.1)

  Next »[5]
*MeCabのインストール [#ned074dc]

MeCabは日本語の文章を単語に分解してそれぞれの品詞や活用形を表示してくれる形態素解析のソフト。
[[MeCabについて詳しくはこちらを参考のこと。:http://taku910.github.io/mecab/]]

自然言語解析をするならとりあえず入れておいた方が良い。

インストルールは上記サイトにもあるが、最新ソースをダウンロードしてきて、本体は

 tar zxfv mecab-X.X.tar.gz
 cd mecab-X.X
 ./configure --enable-utf8-only
 make
 make check
 sudo make install

辞書は

 tar zxfv mecab-ipadic-2.7.0-xxxx
 cd mecab-ipadic-2.7.0-xxxx
 ./configure  --with-charset=utf8
 make
 make check
 sudo make install

とする。ここで文字コードをutf8に固定している。しなくても良いのだが、utf8が最近はいろいろなテキストのデファクトスタンダードなコードになりつつあるので、固定しておいて入力データを変換した方がMeCabで見分けて解析するより何かと楽なのでそうしている。

インストールがうまくいっていれば、

 mecab -v

でバージョンが表示される。

実際にテストで解析したければ、標準入力などでテキストを与える。

 $ echo "庭には二羽鶏がいる" | mecab
 庭	名詞,一般,*,*,*,*,庭,ニワ,ニワ
 に	助詞,格助詞,一般,*,*,*,に,ニ,ニ
 は	助詞,係助詞,*,*,*,*,は,ハ,ワ
 二	名詞,数,*,*,*,*,二,ニ,ニ
 羽	名詞,接尾,助数詞,*,*,*,羽,ワ,ワ
 鶏	名詞,一般,*,*,*,*,鶏,ニワトリ,ニワトリ
 が	助詞,格助詞,一般,*,*,*,が,ガ,ガ
 いる	動詞,自立,*,*,一段,基本形,いる,イル,イル
 EOS

*pythonのMeCabバインディングのインストール [#v0090cc9]
MeCabには各種スクリプト言語 (perl, ruby, python, Java) から使うためのバインディングがある。
ここでpythonを選んだのは、世界的には最も普及したスクリプト言語であり、各種のライブラリや(日本語にこだわらなければ)たくさんの資料があるため。

pythonのMeCabバインディングのインストールは

 sudo pip install mecab-python

とすればよい。

pythonからの使い方は
 import MeCab
 meCabTagger= MeCab.Tagger("mecabrc")
 res = meCabTagger.parseToNode("庭には二羽鶏がいる")
 while res:
      print res.surface
      print res.feature
      res = res.next

結果は

 BOS/EOS,*,*,*,*,*,*,*,*
 庭
 名詞,一般,*,*,*,*,庭,ニワ,ニワ
 に
 助詞,格助詞,一般,*,*,*,に,ニ,ニ
 は
 助詞,係助詞,*,*,*,*,は,ハ,ワ
 二
 名詞,数,*,*,*,*,二,ニ,ニ
 羽
 名詞,接尾,助数詞,*,*,*,羽,ワ,ワ
 鶏
 名詞,一般,*,*,*,*,鶏,ニワトリ,ニワトリ
 が
 助詞,格助詞,一般,*,*,*,が,ガ,ガ
 いる
 動詞,自立,*,*,一段,基本形,いる,イル,イル

 BOS/EOS,*,*,*,*,*,*,*,*

つまり、「surface」にもとの単語が入り、「feature」に品詞や活用などがコンマ区切りのCSVのテキストで入っている。

featureにどういう物が入ってくるかは、[[形態素解析ツールの品詞体系:http://www.unixuser.org/~euske/doc/postag/]]を参照のこと。

  Next »[5]