【Python】MeCabで形態素解析してみる

MeCabとは

まずはMeCabとは何かを簡単に書いておきます。使い方だけ見たいという方は下に行ってください。

MeCabは形態素解析をするためのOSSのひとつです。形態素解析は自然言語処理の分野でよく使われる手法のことですが,文章を最小単位の単語に分割するもののことを言います。

例えばこんな文章があったとします。

これを形態素解析して最小単位の単語に分割するとこうなります。

何となくイメージはつかめましたでしょうか。

MeCabを使ってみる

ではさっそくMeCabで形態素解析をしてみましょう。

インストール方法については,巷に色々情報がありますので適当にググってインストールしてみて下さい。

Windowsだと少し面倒だった覚えがあるのですが,だいたいこの辺を見ればインストールできたような気がします。

では早速ですが,以下がサンプルコードです。

注釈①部分ですが,もし空文字を先に一度パースしていなかったら,たまにエラーが出ることがあります。原因はMeCabのバグらしいのですが,とりあえず一度空文字をパースしておけば回避できるので,もしエラーが出るようでしたらこの1行を入れておいて下さい。

また,注釈②部分ですが,BOS(Beginning Of Sentence)とEOS(End Of Sentence)は空文字が入ることになっています。形態素解析した結果だけ欲しい場合は,この空文字は特に使いませんのでスキップします。

node.featureには品詞名とか読みの情報が入っているので,必要に応じて取り出して自由に使いましょう。

以上,MeCabの使い方でした。

あとは個人的な好みの問題ですが,こんな感じでgeneratorにしておくと使いやすかなーと思いますので,その例も載せておきます。

テキストを渡すと,形態素に分割するgeneratorを返す関数を作っておくと便利です。

スポンサーリンク