プログラマでありたい

おっさんになっても、プログラマでありつづけたい

chasen,cabochaのインストール

ちょっと必要に迫られて、日本語係り受け解析器CaboChaのインストール
形態素解析器は、Mecabにしようかと思ったのですが、故あってChasenを選択。

Dartsのインストール

Casenに必要です。機能は、以下の通り。

Darts は, Double-Array [Aoe 1989]を構築するための シンプルな C++ Template Library です.

インストールは以下の通り。簡単。

#wget http://chasen.org/~taku/software/darts/src/darts-0.3.tar.gz
#./tar xzvf darts-0.3.tar.gz
#cd darts-0.3
#./configure
#make
#make check
#make install

Chasenのインストール

gccのバージョンが、3.4.3以上だとコンパイルが上手く通りません。
多少、ソースに手を加える必要があります。
詳しく解説して、パッチまで作っておられる方がいました。
ミクロトーク

#wget http://chasen.aist-nara.ac.jp/stable/chasen/chasen-2.3.3.tar.gz
#tar xzvf chasen-2.3.3
#cd chasen-2.3.3
#./configure
#vi lib/dartsdic.cpp
#make
#make check
#make install
180c180,181
< (const char*)keys[size] = key.data();
---
> // (const char*)keys[size] = key.data();
> keys[size] = (char*)key.data();

71c71,72
< darts->setArray(cha_mmap_map(da->da_mmap));
---
> // darts->setArray(cha_mmap_map(da->da_mmap));
> darts->set_array(cha_mmap_map(da->da_mmap));

TinySVMのインストール

TinySVMのインストール。TinySVMとは、所謂Support Vector Machinesです。
ベクトル空間に単語を配置して、その境界を定めます。
機械学習の道具として使われることが多いです。
まぁ、こんな物を次から次へと作る、工藤拓さんってホント凄いなぁ。

#wget http://chasen.org/~taku/software/TinySVM/src/TinySVM-0.09.tar.gz
#tar xzvf TinySVM-0.09.tar.gz
#cd TinySVM-0.09
#./configure
#make
#make check
#make install

YamChaのインストール

YamChaのインストール。もう少し。。

#http://chasen.org/~taku/software/yamcha/src/yamcha-0.33.tar.gz
#tar xzvf yamcha-0.33.tar.gz
#cd yamcha-0.33
#./configure
#make
#make check
#make install

CaboChaのインストール

いよいよCacoChaのインストールです。これも簡単。
でも、コンパイルに結構時間がかかります。

#wget http://chasen.org/~taku/software/cabocha/src/cabocha-0.53.tar.gz
#tar xzvf cabocha-0.53.tar.gz
#cd cabocha-0.53
#./configure
#make
#make install

早速、試してみる

$cabocha
cabocha: error while loading shared libraries: libcabocha.so.2: cannot open shared object file: No such file or directory

どうやら、ライブラリがロード出来ていないようなので、rootになってロード

#ldconfig

再度、試してみる
chasenrcが無いよとのことです。仰る通り。

$cabocha
chasen: can't open .chasenrc, .jumanrc, or /usr/local/etc/chasenrc
chasen: ./grammar.cha: No such file or directory

Chasenの設定

ようやくChasenの設定。
辞書を作ります。ついでに、後々のことを考えて、辞書をUTF-8に変換しておきます。
ipadicの*.dic、*.chaファイルを全てnkfを使って変換すれば大丈夫です。
簡単なシェルを作りました。chasenrcも変換します。
何故か、*.dicファイルがコピーされなかったのので、手動でコピー。

#wget http://chasen.naist.jp/stable/ipadic/ipadic-2.7.0.tar.gz
#tar xzvf ipadic-2.7.0.tar.gz
#cd ipadic-2.7.0
#vi utf_conv.sh
#chmod 755 utf_conv.sh
#./configure
#make
#make install
#cd /usr/local/lib/chasen/dic/ipadic/
#cp /usr/local/src/ipadic-2.7.0/*.dic ./
#`chasen-config --mkchadic`/makemat -i w
#`chasen-config --mkchadic`/makeda -i w chadic *.dic

# cp /usr/local/src/ipadic-2.7.0/chasenrc /usr/local/etc/
# cd /usr/local/etc/
# nkf -w chasenrc > tmp
# mv tmp chasenrc 
utf_conv.sh

#!/bin/sh

for file in `ls *.dic *.cha`
do
  echo $file
  nkf -w $file > tmpfile
  mv tmpfile $file
done
exit

Chasenを使ってみる

cat hoge.txt | chasen -iw
おっけい。

CaboChaを使ってみる

$cabocha
chasen: /usr/local/lib/chasen/dic/ipadic/cforms.cha:9-21: no basic form

しまった。CaboCha経由で使う場合、chasenにUTFオプションが送れない。どないしましょう。