「ChaSen」をUTF-8対応で導入

「ChaSen」のデフォルトでの文字コードはEUC-JPだが、UTF-8に変更する。

「ChaSen」のインストール

「Darts」のインストール

「ChaSen」の導入に必要な「Darts」をインストールする。

[root@CentOS ~]# mkdir /usr/local/src/darts <= 作業用ディレクトリの作成
[root@CentOS ~]# chmod 777 /usr/local/src/darts <= 作業用ディレクトリのパーミッション変更
[root@CentOS ~]# exit <= 一般ユーザになる
[kaz@CentOS ~]$ cd /usr/local/src/darts <= 作業用ディレクトリへ移動
[kaz@CentOS darts]$ wget http://www.chasen.org/~taku/software/darts/src/darts-0.3.tar.gz
 <= 「Darts」のソースをダウンロード
[kaz@CentOS darts]$ tar xzf darts-0.3.tar.gz <= ダウンロードしたファイルの展開
[kaz@CentOS darts]$ cd darts-0.3 <= 展開したディレクトリに移動
[kaz@CentOS darts-0.3]$ ./configure | tee configure.log 2>&1
[kaz@CentOS darts-0.3]$ make | tee make.log 2>&1 <= コンパイル
[kaz@CentOS darts-0.3]$ su <= スーパーユーザになる
Password: <= パスワードの入力
[root@CentOS darts-0.3]# make install | tee make-install.log 2>&1 <= インストール

「libiconv」のインストール

次に、「libiconv」をインストールするが、この時日本語のパッチも適用する。

[root@CentOS ~]# mkdir /usr/local/src/libiconv <= 作業用ディレクトリの作成
[root@CentOS ~]# chmod 777 /usr/local/src/libiconv <= 作業用ディレクトリのパーミッション変更
[root@CentOS ~]# exit <= 一般ユーザになる
[root@CentOS ~]$ cd /usr/local/src/libiconv <= 作業用ディレクトリへ移動
[kaz@CentOS libiconv]$ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.10.tar.gz
 <= 「libiconv」のソースをダウンロード
[kaz@CentOS libiconv]$ wget http://www2d.biglobe.ne.jp/~msyk/software/libiconv/libiconv-1.10-ja-1.patch.gz
 <= 「libiconv」のパッチをダウンロード
[kaz@CentOS libiconv]$ tar xzf libiconv-1.10.tar.gz <= ダウンロードしたファイルの展開
[kaz@CentOS libiconv]$ cd libiconv-1.10 <= 展開したディレクトリに移動
[kaz@CentOS libiconv-1.10]$ gzip -dc ../libiconv-1.10-ja-1.patch.gz | patch -p1
[kaz@CentOS libiconv-1.10]$ ./configure | tee configure.log 2>&1
[kaz@CentOS libiconv-1.10]$ make | tee make.log 2>&1 <= コンパイル
[kaz@CentOS libiconv-1.10]$ su <= スーパーユーザになる
Password: <= パスワードの入力
[root@CentOS libiconv-1.10]# make install | tee make-install.log 2>&1 <= インストール

「ChaSen」のインストール

以下の場合、dartsdic.cppをそれぞれ変更する。
・「Darts」のバージョンが0.3の場合(当サイトの場合)、71行目を変更する。バージョン0.2では必要なし。
・gccのバージョンが3.4.3以降の場合、180行目を変更する。

[root@CentOS ~]# mkdir /usr/local/src/chasen <= 作業用ディレクトリの作成
[root@CentOS ~]# chmod 777 /usr/local/src/chasen <= 作業用ディレクトリのパーミッション変更
[root@CentOS ~]# exit <= 一般ユーザになる
[root@CentOS ~]$ cd /usr/local/src/chasen <= 作業用ディレクトリへ移動
[kaz@CentOS chasen]$ wget http://chasen.naist.jp/stable/chasen/chasen-2.3.3.tar.gz
 <= 「ChaSen」のソースをダウンロード
[kaz@CentOS chasen]$ tar xzf chasen-2.3.3.tar.gz <= ダウンロードしたファイルの展開
[kaz@CentOS chasen]$ cd chasen-2.3.3 <= 展開したディレクトリに移動
[kaz@CentOS chasen-2.3.3]$ vi lib/dartsdic.cpp
darts->setArray(cha_mmap_map(da->da_mmap)); <= 71行目
↓
darts->set_array(cha_mmap_map(da->da_mmap)); <= 変更

(const char*)keys[size] = key.data(); <= 180行目
↓
keys[size] = (char*)key.data(); <= 変更

[kaz@CentOS chasen-2.3.3]$ ./configure | tee configure.log 2>&1
[kaz@CentOS chasen-2.3.3]$ make | tee make.log 2>&1 <= コンパイル
[kaz@CentOS chasen-2.3.3]$ su <= スーパーユーザになる
Password: <= パスワードの入力
[root@CentOS chasen-2.3.3]# make install | tee make-install.log 2>&1 <= インストール

「ipadic」のインストール

「ChaSen」が利用する辞書の「ipadic」をインストールする。
なお、デフォルトの文字コードがEUC-JPなので、辞書をUTF-8に変換する。

[root@CentOS ~]# mkdir /usr/local/src/ipadic <= 作業用ディレクトリの作成
[root@CentOS ~]# chmod 777 /usr/local/src/ipadic <= 作業用ディレクトリのパーミッション変更
[root@CentOS ~]# exit <= 一般ユーザになる
[kaz@CentOS ~]$ cd /usr/local/src/ipadic <= 作業用ディレクトリへ移動
[kaz@CentOS ipadic]$ wget http://chasen.naist.jp/stable/ipadic/ipadic-2.7.0.tar.gz
 <= 「ipadic」のソースをダウンロード
[kaz@CentOS ipadic]$ tar xzf ipadic-2.7.0.tar.gz <= ダウンロードしたファイルの展開
[kaz@CentOS ipadic]$ cd ipadic-2.7.0 <= 展開したディレクトリに移動
[kaz@CentOS ipadic-2.7.0]$ ./configure | tee configure.log 2>&1

ここで辞書をUTF-8に変換するが、スクリプトを作成し変換した方が簡単に変換できる。
なお、変換にはnkfを利用する。

[kaz@CentOS ipadic-2.7.0]$ vi conv_utf-8.sh <= 変換スクリプトファイルの作成
#!/bin/sh
for file in $*
do
if [ -f $file ]; then
    nkf --utf8 $file > tmpfile
    mv tmpfile $file
fi
done
exit


[kaz@CentOS ipadic-2.7.0]$ chmod 755 conv_utf-8.sh <= スクリプトファイルに実行権限付加
[kaz@CentOS ipadic-2.7.0]$ ./conv_utf-8.sh *.dic *.cha

UTF-8への変換後、辞書を生成する。

[root@CentOS ipadic-2.7.0]# `chasen-config --mkchadic`/makemat -i w
[root@CentOS ipadic-2.7.0]# `chasen-config --mkchadic`/makeda -i w chadic *.dic
[root@CentOS ipadic-2.7.0]# make install | tee make-install.log 2>&1 <= インストール

最後に設定ファイルもUTF-8に変換する。

[root@CentOS ipadic-2.7.0]# cd /usr/local/etc
[root@CentOS etc]# nkf --utf8 chasenrc > chasenrc.tmp
[root@CentOS etc]# mv chasenrc.tmp chasenrc
「ChaSen」の実行

実行時のオプションの -i で文字コードを指定する。

[root@CentOS ~]# echo "文字コード変更のテスト。" | chasen -i w <= 「ChaSen」のテスト
文字    モジ    文字    名詞-一般
コード  コード  コード  名詞-一般
変更    ヘンコウ        変更    名詞-サ変接続
の      ノ      の      助詞-連体化
テスト  テスト  テスト  名詞-サ変接続
。      。      。      記号-句点
EOS
▲ページのトップへ