python で形態素解析。Janome が簡単。pip 一発でインストール

形態素解析といえば MeCab が定番ですが、python から使うには関連パッケージのインストールが結構大変だったりします。
そこで、Janome を使ってみました。

Janome について詳しくは こちら

内部では MeCab の辞書を使うらしいので MeCab のインストールが前提ですが、Janome の解析結果は基本的に MeCab と同等で、インストールはいたって簡単です。
(辞書は janome に同梱されているので MeCab は不要。作者ご本人様から情報提供していただきました)

インストール

1 行

pip install janome

で入ります。

使ってみる

日本語を解析

日本語を解析して結果を表示してみます。

情報を取り出し

表層形、品詞、活用形 等の情報を個々に取り出してみます。

– 注意 –
上の並びは 0.2.8 以降のものです。
0.2.7 までは infl_type と infl_form が逆になっています。

 
0.2.7
0.2.8
活用型(五段・ワ行促音便・・・)
infl_form
infl_type
活用形(未然形、連用形、終止形・・・)
infl_type
infl_form


品詞を判定

特定の品詞(たとえば 名詞)を取り出してみます。上のソースにあるとおり、token.part_of_speech.split(‘,’)[0] に品詞が入っているので == u’名詞’ で判定します。

バージョン 0.2.7 以降

バージョン 0.2.6 まで

バージョンが 0.2.6(およびそれ以前)は文字コードに注意が必要です。
python 2系の場合、janome から返ってくる各情報の文字コードは str型と unicode型が混在します。
(0.2.7 で改善。作者ご本人様から情報提供していただきました)

この問題を回避するため、判定前に文字コードを確認、統一します。

確認しないと UnicodeDecodeError ないし UnicodeWarning になります。

ユーザー定義辞書

単語を独自に追加する場合はユーザー定義辞書を作成して引数に指定します。
辞書の形式は複数あるようですが(くわしくは 本家サイト で)MeCab 辞書フォーマットの CSV ファイルが使えるようです。

userdict.csv

  1. 通りすがりの janome 作者です。紹介ありがとうございます。2点、訂正させてください。

    > 内部では MeCab の辞書を使うらしいので MeCab のインストールが前提ですが、

    辞書はjanomeに同梱しているのでMeCabは不要です。

    > python 2系の場合、janome から返ってくる各情報の文字コードは str型と unicode型が混在するようです。

    バージョン 0.2.6 まで、strとunicodeが混在する不具合がありました。
    0.2.7 で unicode に統一されたので、アップデートしてみてください。
    http://mocobeta-backup.tumblr.com/post/140503222592/janome-027

    • なんと、作者ご本人に見て頂けるとは。
      嬉しい驚きです。

      > 辞書はjanomeに同梱しているのでMeCabは不要です。

      かん違いしていました。
      MeCab の辞書を更新しても反映されないので不思議だったのですが
      疑問が解消しました。

      > 0.2.7 で unicode に統一されたので、アップデートしてみてください。

      最新の 0.2.8 で確認しました。問題なく動きました。

      ありがとうございました。

コメントはお気軽に