ページ

2010年7月18日日曜日

自分メモ #Mozc

暑いですなぁ。梅雨明けしたからか今日は特に暑く感じました。参りますね。久々にMozcのウェブサイトを見たら、新しいのがリリースされていたので久しぶりにバージョンアップしてみました。自分用に手順を書き留めておこうと思います。改めて書くのもなんですが、私はLinux、プログラミングの素人ですので、このやり方がベストな方法なのかすら判別出来ません。ですので、技術的なツッコミ等をされても対応出来ません。ご了承下さい。

現在のMozcですが、リリースされてからある程度経過した事もあり、Ubuntu等の有力なディストリビューションでは何らかの形でパッケージ化が進んでおり、わざわざソースコードからビルドする必要性はあまりありません。ただ、今回は先日追加された郵便番号辞書を生成して追加する手順を行う為に、自分でビルドしてみました。郵便番号辞書対応はユーザー辞書という形や他のやり方でも追加可能ですが、せっかく本家で用意されているので、勉強も兼ねてトライしてみました。大半はMozcのウェブサイトを見れば簡単にビルドする事が出来ますが、何故か郵便番号辞書はあまり詳しく書かれていませんし。それとも単に探し方が悪いからなのかな。まぁいいや。ちなみに、私はUbuntu 10.04を使用しているので、Debianパッケージを作るやり方を書きます。まずは、以下のパッケージをapt-getコマンドでインストールします。
sudo apt-get install g++ python libibus-dev libcurl4-openssl-dev libssl-dev zlib1g-dev libdbus-1-dev libglib2.0-dev libprotobuf-dev protobuf-compiler libgtest-dev subversion devscripts debhelper libqt4-dev scim libscim-dev gyp
このパッケージ群はMozcの開発が進むごとに変化する可能性があるようなので、念の為にビルドする時に確認して見て下さい。後は、以下のコマンドを入力していくだけで、自動的にDebianパッケージが生成されます。
mkdir -p ~/src/mozc
cd ~/src/mozc
svn co http://mozc.googlecode.com/svn/trunk/src
cd src
debuild -uc -us
ただし、このまま進めてしまうと件の郵便番号辞書に非対応になってしまうので、最後のコマンド「debuild -uc -us」の前に、郵便番号辞書生成ツールを使用します。まずは「svn co http://mozc.googlecode.com/svn/trunk/src」までのコマンドを入力します。そうすると、ホーム・フォルダに「src」というフォルダが生成されています。以下のフォルダまで移動。
cd ~/src/mozc/src/data/dictionary/
このフォルダに「README.txt」というファイルがあります。このファイルにヒントが載っていますので、参考にして下さい。また郵便番号辞書用のデータを郵便局のウェブサイトからダウンロードしなくてはいけません。まずは以下のウェブサイトへアクセスして下さい。
http://www.post.japanpost.jp/zipcode/download.html
ここでダウンロードすべきファイルは2つ。まずは「住所の郵便番号(CSV形式)」から。2つありますが自分の好みで選んで下さい。私は下の「読み仮名データの促音・拗音を小書きで表記するもの」を選択しました。リンク先の「全国一括」をダウンロード。「ken_all.lzh」というファイルです。次に、「事業所の個別郵便番号(CSV形式)」。リンク先の「最新データのダウンロード」を選択。「jigyosyo.lzh」というファイルです。それぞれlzhというアーカイブ形式なので通常のUbuntuでは解凍出来ません。ですので以下のパッケージをインストールして下さい。
sudo apt-get install lha (lha-sjisでも可)
それぞれのファイルを解凍すると「ken_all.csv」と「jigyosyo.csv」が出て来ます。ここからは我流ですので別のやり方があるのかもしれませんが、私はこのやり方しか知りませんので注意して下さい。「ken_all.csv」と「jigyosyo.csv」を「KEN_ALL.CSV」と「JIGYOSYO.CSV」にリネーム。要するに全部大文字にします。そして、「KEN_ALL.CSV」と「JIGYOSYO.CSV」を、上にもある「~/src/mozc/src/data/dictionary/」に配置します。ここまで出来たら、コンソールを開いて「~/src/mozc/src/data/dictionary/」まで移動。上でも説明しましたが、一応。
cd ~/src/mozc/src/data/dictionary/
ファイル構成はこんな感じ。
JIGYOSYO.CSV collocation.txt dictionary1.txt zip_code_seed.tsv
KEN_ALL.CSV connection.txt id.def
README.txt dictionary0.txt suggestion_filter.txt
この時「zip_code_seed.tsv」を軽く確認しておいて下さい。特に開く必要はありませんが、以下のコマンドを実行すると、「zip_code_seed.tsv」が変化しますので。というか、「zip_code_seed.tsv」の内容が変化していれば成功です。
python ../../dictionary/gen_zip_code_seed.py --zip_code=KEN_ALL.CSV --jigyosyo=JIGYOSYO.CSV > ./zip_code_seed.tsv
後は上の方で説明した手順を再開すれば、Debianパッケージが完成します。ディレクトリの位置に注意するくらいですね。「~/src/mozc/src/data/dictionary/」にいたら、「~/src/mozc/src/」に移動します。そして、最後のコマンドである以下を実行。
debuild -uc -us
暫くするとDebianパッケージが「~/src/mozc/」に完成しているはずです。ちなみに、この4つのパッケージです。
ibus-mozc
Mozc engine for IBus - Client of the Mozc input method

mozc-server
Server of the Mozc input method

mozc-utils-gui
GUI uitilities of the Mozc input method

scim-mozc
Mozc engine for SCIM - Client of the Mozc input method
必須なのは上の3つです。「scim-mozc」はscim用のパッケージなのでibusがデフォルトのUbuntuでは必須ではありません。まぁ入れておいても害は無いと思いますけど。あと3つのパッケージもインストールの順番がありますので、気をつけて下さい。要は「mozc-server」を一番最初にインストールするだけですけど。

予想以上に長い文章になってしまいましたが、一応これで郵便番号辞書対応のMozcをソースコードからビルドする事が可能になると思います。ふぅ、やっぱり素人が無理して説明しようとするとボロが出ますね。無駄に長くなってしまったという感じがします。まぁ仕方ないな。慣れてくれば、もう少し上手く説明出来るようになるのだろうか。

#追記
郵便番号辞書が機能しているかの確認ですが、例えば、Mozcを起動させている状態で、全角で「100−0001」と入力すると「東京都千代田区千代田」とサジェスト/変換されれば成功していると思います。ハイフンでの区切りが必要な点が人によっては気になるかもしれませんけど。

#追記
2012年現在、上記の方法は古い情報なので、そのままでは上手くビルド出来ません。

#外部リンク
LinuxBuildInstructions - mozc - How to build Mozc on Linux - Mozc - Japanese Input Method for Chromium OS, Windows, Mac and Linux - Google Project Hosting
http://code.google.com/p/mozc/wiki/LinuxBuildInstructions

郵便番号データダウンロード - 日本郵便
http://www.post.japanpost.jp/zipcode/download.html

Ubuntu Weekly Topics:2010月7月16日号 10.04.1のリリース・10.10のPapercuts(1)・mozc・UWN#201・PAMのセキュリティアップデート|gihyo.jp … 技術評論社
http://gihyo.jp/admin/clip/01/ubuntu-topics/201007/16

0 件のコメント:

コメントを投稿