Hataraita.net

馬鹿なこととITと馬鹿なことと競馬と変な資格が好きです。でも馬鹿なことはもっと好きです。

AWS EC2に形態素解析ツールJUMAN++をインストールする方法

f:id:bananawoma:20170714083427j:plain
自然言語処理を活用したアプリをさくっと作ってみようと思った時に少しハマったので、他にもそういう人が居るだろうと思い検索したところ、完全一致する記事が見つけられなかったので自分の備忘及び、同じような悩みの人がいた時のために手順を記録しておこうと思います。

 

環境:

Amazon Linux 2 AMI(おそらく)

CodeStar Python Flask Appから作成

 

もしこの記事を見てくれている人が居るとすれば、JUMAN++をAmazon Linuxに入れるという目的で見てくれていることがほとんどだろうと思います。そんな中JUMAN++とはなんぞやなんていうことを申し上げたところで釈迦に説法でしか無いと思うのですが、もし何かの間違いでココに来てしまった人のために、簡単に、、、

 

そんなの読みたくないという方は、コードのところだけコピペしてもらえば行けると思います。

JUMAN++とは

JUMAN++とは日本語の自然言語処理を行う上で避けては通れない形態素解析を簡単に行ってくれるツールです。他のソフトでいえばMeCabなんかが有名ですね。

では形態素解析とはなんぞやというと、簡単に例を上げると

 

「私はハムではありません」

 

上の文に形態素解析をかけると

 

私/は/ハム/で/は/あり/ませ/ん
 

このように単語ごとに区切ってくれます。

語弊を恐れず簡単に言うと小学校か中学校でやった動詞、名詞などの単語ごとの分割をちゃっちゃとやってくれるということです。

 

機械学習ブームにおいて、日本語の自然言語処理なんかもホットになってきていますが、自然言語処理において重要になる区分として単語があります。

 

日本語で自然言語処理をするときに面倒くさいのが、この単語という区分で、意味を考えない場合においてもこのように形態素解析を当ててあげないと単語に区切るのが難しいのです。

 

では英語ではどうか。

 

I am not ham

 

非常に単純明快で、何もせずともどこからどこまでが単語かわかります。素晴らしいですね。

 

そういうこともあり、日本語で自然言語処理を行う場合は大体形態素解析を行わないといけないということになり非常に重要なツールとなるわけです。

 

JUMAN++1.02を手に入れる
さて、そんなJUMAN++ですが、京都大学は黒橋・河原研究室で公開してくださっています。

ホームページからもダウンロードできますが、EC2に導入する場合は以下のコマンドが便利です。

 

wget http://lotus.kuee.kyoto-u.ac.jp/nl-resource/jumanpp/jumanpp-1.02.tar.xz
tar xJvf jumanpp-1.02.tar.xz

さて、このあと通常であれば

cd jumanapp-1.02
./configure
make
make install

と続けてインストール完了となりますが、どうもAmazon linux 2 AMIには、JUMAN++に必須のライブラリである「Boost C++ Libraries (1.57 以降)」が入っていないようです。

なので、インストール処理を行う前に、Boost C++ Libraries を入れる必要があります。

さて、Boost C++ libraryですが、Amazon Linuxで使用されているyumパッケージマネージャにも登録されています。

なので、安直に

yum install boost boost-dev

としたくなるところですが、登録されているバージョンが1.53のため、これでインストールしたと思ったら痛い目を見ます。

ですので、Git-hubに公開されているソースコードからインストールする必要があります。

git clone https://github.com/boostorg/boost.git
cd boost
git checkout boost-1.63.0
git submodule update --init
./bootstrap.sh
./b2
./b2 install 

手順としては以下のサイトを参考とさせていただきました。

cpp.clock-up.jp

さて、このとおりで、BoostC++はインストールできるのですが、実はここまでで無料枠のEC2だとボリュームが枯渇してしまいます。

なので、EC2の左メニューボリュームをクリックし、表示されるリストの中から対象のボリュームを変更するのですが、今回は8GB→16GBに変更しました。

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        483M   60K  483M   1% /dev
tmpfs           493M     0  493M   0% /dev/shm
/dev/xvda1      7.8G  7.7G   16K 100% /

容量を見たところ残り16Kという本当の最低容量しか空いていません。

しっかりと容量を確保したら、

cd jumanapp-1.02
./configure 
make
make install

と実行し、要約JUMAN++インストールの完了です。

疲れました!

みなさんもぜひEC2+Juman++で日本語自然言語処理ライフを楽しんでみてください。(無料枠とは相性が悪そう)