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

KNPのインストール

NLP

Jumanに引き続きKNPのインストールについても書いてみます。
この記事はKNPのバージョン4について書いています。

こちらは、私の環境(CentOS 6.2)では素直にできなかったので、多少めんどくさいかもしれません。

インストールファイルのダウンロードなどは、Jumanとほぼ同じなので割愛して、ちょっと困ったところだけを書いておきます。
ただし、KNPのインストールファイルは1GB近くあるので、ダウンロードにかなり時間がかかります。

まず、TinyCDBというソフトウェアがないとインストールできません。
configureコマンドでMakefileを作ろうとしても以下のように怒られます。

configure: error: Constant DB library is not found. Please install TinyCDB (http://www.corpit.ru/mjt/tinycdb.html).

つまり、TinyCDBがないとKNPをインストールできないということを言っています。

まず、楽する方法を考えます。
CentOSのyumコマンドで、インストールしてみます。

# yum install TinyCDB

とか

# yum install tinycdb

とかやってみるわけです。
全然ダメです。

ここで仕方なく、

http://www.corpit.ru/mjt/tinycdb.html

のページに行ってみるわけです。
これもソースからコンパイルかぁと思いながら、ソースをダウンロードします。
Red Hat系のOSであれば、rpmbuildコマンドでrpmが作れるようにspecファイルが含まれているので、rpmからインストールします。
なので、root権限がない場合は、root権限を持っている人にインストールをお願いするしかなさそうです。
もちろん、強引に自分のローカルにインストールする方法はあります。
Makefileを変更すれば良いんです。
デフォルトのインストール先が「/usr/local」になっているので、これをインストールしたいフォルダ名に変えてmakeすればインストールすることができます。
ただし、バージョンアップしにくいですし、あまりオススメしません。

ただし、やりたい人もいるかもしれないので、一応、手順を書いておくと、

$ cd /home/my_account/usr/local/src/tinycdb/tinycdb-0.77
$ emacs Makefile

として、Makefileの

prefix=/usr/local

の部分をインストールしたいフォルダに変えて、

$ make
$ make install

とすれば、インストールすることができます。

しかし、あまり推奨しないので、ここでは、rpmを使った普通のインストールを行ってみます。

$ rpmbuild -tb tinycdb_0.77.tar.gz

上記のようにするとrpmファイルが以下の位置に3つ作成されるはずです。

/home/my_account/rpmbuild/RPMS/i686/tinycdb-0.77-1.i686.rpm
/home/my_account/rpmbuild/RPMS/tinycdb-debuginfo-0.77-1.i686.rpm
/home/my_account/rpmbuild/RPMS/tinycdb-devel-0.77-1.i686.rpm

実際は、上記の位置ではないかもしれません。
rpmbuildの実行結果をしっかり見ておきましょう。

これら3つのファイルをすべてインストールします。

# rpm -Uvh tinycdb-0.77-1.i686.rpm
# rpm -Uvh tinycdb-debuginfo-0.77-1.i686.rpm
# rpm -Uvh tinycdb-devel-0.77-1.i686.rpm

これで、KNPをインストールする準備は整いました。

$ cd /home/my_account/usr/local/src/knp/knp-4.0
$ ./configure --prefix=/home/my_account/usr/local
$ make
$ make install

上記のようにすれば、jumanと同じ位置にknpがインストールされます。

実行結果は、以下のようになります。

$ echo '日立製作所のJP1というソフトウェアは 、運用管理ツールとして、日本でトップシェアである。' | juman | knp
# S-ID:1 KNP:4.0-CF1.1 DATE:2012/02/19 SCORE:-44.08405
日立製作所の──┐             
                JP1と──┐         
                        いう──┐     
                    ソフトウェアは、──┐ 
        運用──┐           │ 
                管理──┐       │ 
                    ツールと──┐   │ 
                              して、──┤ 
                              日本で──┤ 
                              トップ──┤ 
                              シェアである。
EOS

ちゃんと解析できていますね。
ちなみに、KNPは、Kurohashi-Nagao-Parseの略だそうです。

ただ、KNPはなんでこんなに遅いのだろう?
やはり、仮想OSだと、ディスクに負荷が高すぎるからか?
解析時にめちゃくちゃディスクにアクセスしてますね。
格フレーム辞書がでかすぎるんだろうか・・・。