*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は、「品詞,品詞細分類1,品詞細分類2,品詞細分類3,活用型,活用形,原形,読み,発音」と入っている。 品詞細分類については[[形態素解析ツールの品詞体系:http://www.unixuser.org/~euske/doc/postag/]]を参照のこと。 ここでMeCabへの入力はstr型で無くてはならない。 >>> res = meCabTagger.parseToNode(u"庭には二羽鶏がいる") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Library/Python/2.7/site-packages/MeCab.py", line 282, in parseToNode def parseToNode(self, *args): return _MeCab.Tagger_parseToNode(self, *args) TypeError: in method 'Tagger_parseToNode', argument 2 of type 'char const *'
(This host) = https://njf.jp