読者です 読者をやめる 読者になる 読者になる

望月いちろうのREADME.md

書き溜めておいた技術記事や旅行記のバックアップです。

Macで京大生まれの 形態素処理エンジン JUMAN++ を使用する

形態素処理 OSX

京大の黒橋・河原研究室が新しく開発した形態素処理エンジンがJUMAN++です。RNN(Recurrent Neural Network)を応用した新しい手法でMeCabのような従来型のエンジンで生じる以下の問題の解決を試みたようです。

単語の並びの自然さを表現できない

例:外国人参政権→外国・人参・政権

これに対してJUMAN++は単語に対して一般化された意味ベクトルとして扱うことでより自然な単語選択を行うようにしているようです。

公式の資料にイメージ図が載っています。

解析の対象とする単語だけでなく、意味的に類似した言語同士でも自然なつながりになるようなモデルに設計されているということでしょうか

メリットが大きいようですので、感謝して使わせていただくことにします。

公式ではLinuxでのみ利用可能と表記してありましたがMacで使用できるかテストしてみることにしました。結論から言えばOKでした

実験環境は MacBook Air Yosemite 10.10.4
CPU: Intel Core i5 1.6GHz
RAM: 4GB
です。

任意の作業用ディレクトリを作成して以下のコマンドを入力してJUMAN++のインストールを実行します。

wget http://lotus.kuee.kyoto-u.ac.jp/nl-resource/jumanpp/jumanpp-1.01.tar.xz
tar xJvf jumanpp-1.01.tar.xz                
cd jumanpp-1.01                 
./configure
make 
sudo make install

注意点は主に3つ

  • tarファイルの容量だけで600MBあるので低速回線の方は注意
  • 辞書データ・学習済みモデルをインストールするので2~3GBの容量が必要
  • コンパイルに結構時間がかかる(僕の環境では10分程度)

インストールが完了したら jumanpp-1.01フォルダは削除しても大丈夫です。

無事コンパイルが完了したら以下のコマンドが実行できるはずです。

jumanpp

そして解析対象の文章を入力します。

外国人参政権

すると

外国 がいこく 外国 名詞 6 普通名詞 1 * 0 * 0 "代表表記:外国/がいこく カテゴリ:場所-その他 ドメイン:政治"
人 ひと 人 名詞 6 普通名詞 1 * 0 * 0 "代表表記:人/ひと 漢字読み:訓 カテゴリ:人"
@ 人 じん 人 名詞 6 普通名詞 1 * 0 * 0 "代表表記:人/じん 漢字読み:音 カテゴリ:人"
参政 さんせい 参政 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:参政/さんせい カテゴリ:抽象物 ドメイン:政治"
権 けん 権 名詞 6 普通名詞 1 * 0 * 0 "代表表記:権/けん 漢字読み:音 カテゴリ:抽象物"
EOS

うまく解析できました。

同じ文章をMeCabで実行すると

外国   名詞,一般,*,*,*,*,外国,ガイコク,ガイコク
人参  名詞,一般,*,*,*,*,人参,ニンジン,ニンジン
政権  名詞,一般,*,*,*,*,政権,セイケン,セイケン
EOS

とJUMAN++の性能の高さがわかります。 もちろん利点ばかりではなく明らかに実行速度が遅いなどの欠点があり、MeCabとは適材適所で使いわけるのがベストかも

さらに検証したいこと

  • 辞書データの変更
  • 学習モデルの作成