ページへ戻る
+ Links
印刷
自然言語解析/MeCabをpythonで使う
の編集 ::
NJF Wiki
xpwiki
:
自然言語解析
/
MeCabをpythonで使う
の編集
自然言語解析/MeCabをpythonで使う の編集
詳細な入力項目を表示
ページタイトル
( 空白で自動設定 )
:
ページ並び順
( 0-9 小数可 標準:1 )
:
ページ別名
(複数は[
改行
]で区切る)
:
ページ内容:
*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 *辞書の更新 [#j6833905] 残念ながらデフォルトのままでは辞書の単語数が少なすぎて、あまり正確に解析できない。 自分でも単語を追加できるが、精度をあげるには相当数を追加する必要があり、ちょっと難しい。 幸いこちら([[http://diary.overlasting.net/2015-03-13-1.html]])で新語などを追加している方がいるので、ありがたく使わせていただく。 辞書のインストールと使い方はリンク先参照のこと。 *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 *' Mecabの初期化ではオプションを使える。つまり例えば他の辞書を使いたければ、 mecabTagger = MeCab.Tagger("-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd/") とする。
編集の要約:
Q & A 認証:
ページ更新時は次の質問にお答えください。(プレビュー時は必要ありません)
Q:
「名古屋」の読みがな?(ひらがなで)
A:
お名前:
タイムスタンプを変更しない
テキスト整形のルールを表示する
添付ファイル
: