2012/04/19

Ubuntu 10.04 LTSでのUTF-8対応Chasen + ipadicの利用方法について

そろそろUbuntu 10.04 LTSから12.04 LTSに乗り換えるタイミングが迫っていますが、如何お過ごしでしょうか。 最新版のChasenパッケージはみていませんが、とりあえず作業ログをまとめておきます。

cannadicを使っている場合には、これから説明するような問題はないので気にしないでください。 今回の対象はパッケージのchasenとipadicを使っていて、UTF-8に対応させたい場合です。

ipadicパッケージを導入せずにchasen単体を導入すると、naistがまとめているjdicが導入されるはずです。 通常の使用であれば、こちらを使うのがお勧めです。

おすすめの方法

/var/lib/chasen/dic/naist-jdic-utf8 が導入されている事と /etc/chasenrc が /etc/alternatives/chasenrc へのシンボリックリンクになっていて、その先が /usr/share/chasen/chasenrc-utf8 になっている事を確認してください。 これだけで UTF-8 に対応したchasenを利用する事が可能になります。

ここから先は自力でipadic-2.7.0を導入したい人向けです。いまさらそんな需要はないと思いますけどね。

UTF-8対応にする際の課題

公式サイトのFAQをみると、UTF8に乗り換える手順は次のようになっています。

 $ tmpfile=/tmp/foo.$$
$ cd /etc
$ nkf -w chasenrc > $tmpfile 
$ cp $tmpfile chasenrc
$ cd/usr/share/chasen/dic/ipadic
$ for file in *.dic *.cha ; do nkf -w $file > $tmpfile ; sudo cp $tmpfile $file ; done
$ sudo `chasen-config --mkchadic`/makemat -i w
$ sudo `chasen-config --mkchadic`/makeda -i w chadic *.dic

全体的な流れは設定ファイルと辞書ファイルをUTF-8に変換して、chasenのmakemat,makedaを実行することです。

ここで問題になるのは、*.dicファイルがパッケージに付属してこないことです。

この時点でパッケージのipadicを使ってのUTF-8変換を行なう事は諦めました。

/usr/local/へのipadicの導入

ipadicパッケージは使い物にならないので、このまま残して、/usr/local以下にUTF-8対応のipadicを導入することにします。

ipadicパッケージを削除しようとすると、通常は依存関係にあるchasenも消えてしまうので注意が必要です。

ipadic-2.7.0の取得

ipadic-2.7.0を展開してコンパイルだけしておきます。

 $ tar xvzf ipadic-2.7.0.tar.gz
 $ ./configure
 $ make
/usr/local以下への展開

場所は /usr/local/share/chasen/dic/ipadic にします。場所は適当にかえてください。 この場所を/etc/chasenrcから指す事になります。

 $ sudo mkdir -p /usr/local/share/chasen/dic/ipadic
 $ sudo cp *.dic *.cha chasenrc /usr/local/share/chasen/dic/ipadic

ここから先は /usr/local/share/chasen/dic/ipadic に移動して実行します。

 $ /usr/local/share/chasen/dic/ipadic
$ tmpfile=/tmp/foo.$$
$ for file in *; do nkf -w $file > $tmpfile ; sudo cp $tmpfile $file ; done
$ sudo `chasen-config --mkchadic`/makemat -i w
$ sudo `chasen-config --mkchadic`/makeda -i w chadic *.dic
辞書の置き換え

最後に /etc/chasenrc を置き換えます。

 $ sudo cp -ip /etc/chasenrc /etc/chasenrc.backup.$$
 $ sudo cp /usr/local/share/chasen/dic/ipadic/chasenrc /etc/chasenrc

最後に /etc/chasenrc の先頭にある辞書を示す行を変更しておきます。

--- /usr/local/share/chasen/dic/ipadic/chasenrc	2012-04-19 14:36:22.935553612 +0900
+++ /etc/chasenrc	2012-04-19 14:39:02.456165344 +0900
@@ -5,8 +5,8 @@
 ;;;
 ;;;  grammar.cha/ctypes.cha/cforms.cha location /文法ファイル
 ;;;
-;(文法ファイル  /var/lib/chasen/dic/debian/ipadic)
-(GRAMMAR  /var/lib/chasen/dic/debian/ipadic)
+;(文法ファイル  /usr/local/share/chasen/dic/ipadic)
+(GRAMMAR  /usr/local/share/chasen/dic/ipadic)
 
 ;;;
 ;;;  dictionary /辞書

稼働確認

/etc/chasenrcはUTF-8に変更してあるので、これを処理させてみます。

 $ chasen -i w /etc/chasenrc

この結果を眺めて、名詞やらがちゃんと抜き出されているか確認します。

この流れだとパッケージに含まれているファイルの中で変更する対象は /etc/chasenrc だけになるので、いろいろやりやすいと思います。

0 件のコメント: