« モバイルノート考 | トップページ | EPWING 形式の辞書を Zaurus で使う »

2008年1月16日

wikipedia-fpw を使う

 wikipedia-fpw を使って、Wikipedia 日本語版で配布されているデータを EPWING 形式に変換して、インターネットに繋がっていない環境でも Wikipedia を閲覧できるようにします。

Screen_001
 まずは Wikipedia 日本語版データのダウンロードです。Wikipedia 日本語版のデータベースダウンロードページからダウンロードできます。「ウィキペディア日本語版: http://download.wikimedia.org/jawiki/」へ進みます。

Screen_002
 フォルダの一覧が表示されます。「latest」フォルダへ進みます。

Screen_003
 何種類ものファイルがあります。ここで必要なのは「jawiki-latest-pages-articles.xml.bz2」というファイルです。サイズは 600 MB 強あります。これをダウンロードしてください。

Screen_004
 ダウンロードしたら、解凍してください。解凍ソフトがない、または対応していない場合は Lhaz の導入をおすすめします。単独で大抵のファイル形式に対応しています。ファイルを解凍すると「jawiki-latest-pages-articles.xml」というファイルができます。2.5 GB ほどの非常に大きな XML 文書です。絶対にダブルクリックしたりしないでください。普通のエディタやブラウザでは扱いきれません。

Screen_005
 XML ファイルを Cygwin のホームフォルダへファイルを移動します。また、wikipedia-fpw のページで最新のツールをダウンロードし、同じくホームフォルダへ移動させておきます。記事執筆時点の最新版は「wikipedia-fpw-20071202-src.tar.gz」でした。

Screen_006
 XML ファイルの名前を「wikipedia.xml」へ変更します。ダブルクリックしてファイルを開いたりしないように最新の注意を払いましょう。

Screen_007
 Cygwin を起動します。「dir」コマンドで「wikipedia-fpw-20071202-src.tar.gz」ファイルと「wikipedia.xml」ファイルがあることを確認し、「tar」コマンドでツールを解凍しましょう。以下のコマンドを実行します。

tar zxvf wikipedia-fpw-20071202-src.tar.gz

Screen_008
 ファイルが解凍されると、「wikipedia-fpw-20071202」フォルダができます。今度はそこへ「wikipedia.xml」ファイルを移動させます。ファイルの移動には「mv」コマンドを使います。

mv wikipedia.xml wikipedia-fpw-20071202/

 と打って実行します。最後の「/」も忘れずに。「~の中」というような意味の記号です。ファイルを移動させたら、次はじぶんも移動します。「cd」コマンドを使います。

cd wikipedia-fpw-20071202

 と打って実行してください。黄色の文字にフォルダ名が追記されていればフォルダの中へ移動できています。

Screen_009
 ここで Windows からホームフォルダの様子を見てみましょう。Cygwin は起動したままにしていてください。ホームフォルダに新しいフォルダができていて、XML ファイルがなくなっています。XML ファイルはフォルダの中にあるはずです。

Screen_010
 ほら、ありました。

Screen_011
 さあ、Cygwin に戻ります。ここからが変換作業の本番です。といっても、ちょっとコマンドを打つだけで後は自動で作業してくれます。ただ、とても時間がかかります。Core2 Duo 3.0 GHz のデスクトップマシンで 3 時間ほどかかりました。ここから先は時間のあるときに進んでください。
 コマンドは「fpwmake」です。

fpwmake

 と打って実行しましょう。

Screen_012
 変換中… というか、相互参照の状態を調べている感じ? 図では Entry が 11767 と、1 万ちょいですね。これが数十万件ほど実行されます。表示が文字化けしていますが、ターミナルウィンドウが日本語の表示に対応していないか、日本語を含まないフォントを使っているせいか、こちらの作業環境が英語版 XP のせいかだと思います。まあ、実際のデータには影響がないので特に問題ありません。気になるなら、タイトルバーを右クリックして「properties」を選択してください。設定ウィンドウが開くので、「Font」タブでフォントに「MS ゴシック」を選ぶと解決すると思います。

Screen_013
 相互参照の調査が終わると、今度は各エントリーを生成しているようです。これが一番時間がかかります。

Screen_017
 今回使用したデータでは Entry が 838,342 までありました。6,861 秒かかったとあります。約 115 分。2 時間ですね。でも、まだ終わりじゃありません。

Screen_019
 この状態で、しばらくかかります。なにやら生成している様子。こちらの環境で 20 分ほどかかりました。

Screen_020
 このようにコマンド受付状態になったら、fpwmake 終了です。作業はまだ続きます。

Screen_021
 ここでまた「wikipedia-fpw-20071202」フォルダをのぞいてみます。新しいファイルやフォルダが作られています。その中でひときわ大容量なのが「honmon」ファイル。これが辞書データの要です。

Screen_022
 Cygwin に戻ります。次は「fpwmake」コマンドに「catalogs」オプションをつけて実行します。

fpwmake catalogs

 と打って実行します。これは数秒で済みます。

Screen_025
 次が最後のコマンドです。「fpwmake」に「package」オプションをつけて実行します。

fpwmake package

 このコマンドで、辞書のデータを整えて、Zip 形式のファイルに圧縮しています。こちらの環境で 5 分ほどかかりました。Cygwin に「Zip」コマンドが入ってないとエラーになりますが、圧縮されないだけで、辞書データの生成は正常に行われると思います。

Screen_028
 正常に終了するとこんな感じ。

Screen_029
 「wikipedia-fpw-20071202」フォルダの中にある「wikipedia-fpw-20071202.zip」が完成した辞書データです。「Zip」コマンドが入ってなくてエラーになった場合は、このフォルダにある「work」フォルダの中に「WIKIP」というフォルダがあると思います。それが辞書データです。Zip 圧縮されていないだけで、正常なデータです。本来、圧縮されている必要はありませんし。

Screen_031
 完成した Zip ファイルを解凍すると、EPWING 形式の辞書データになります。この形式のデータはある規則に従ったフォルダとファイルで構成されています。今回作成されるのは「WIKIP」という辞書です。

Screen_032
 フォルダを開いてみると、親フォルダと同名のフォルダ、「CATALOGS」「GFDL」「README.PKG」などのファイルがあります。この 4 つを内包する親フォルダ「WIKIP」が辞書になります。

Screen_033
 子フォルダ「WIKIP」をさらに開き「DATA」フォルダを開くと、辞書データの中心「HONMON」ファイルがあります。「WIKIP」のデータサイズは 1.5 GB ほどもあります。さすが Wikipedia です。でかい!

Screen_040
 正常に辞書が作成できたら、「wikipedia-fpw-20071202」フォルダや「wikipedia-fpw-20071202-src.tar.gz」は必要ありません。とっておいてもハードディスクを圧迫するだけなので削除しましょう。

Screen_041
 ほら、7 GB 近くも使ってる。

 生成した辞書データは EPWING 検索ソフトで閲覧できます。ローカルで Wikipedia を持ち歩けるなんて、とても便利ですよ。図版などは含まれないためネット上の Wikipedia に劣る部分もありますが、強力な辞書であることは間違いありません。編集に携わっている全ての人に、ありがとうと感謝しましょう。

 以下は、今回のターミナルのコマンド入力作業の一連です。「wikipedia-fpw-20071202-src.tar.gz」と「wikipedia.xml」がホームフォルダにある状態で始めます。

User@Machine ~
$ tar zxvf wikipedia-fpw-20071202-src.tar.gz
$ mv wikipedia.xml wikipedia-fpw-20071202/
$ cd wikipedia-fpw-20071202
$ fpwmake package

 最低限必要なコマンドはこれだけです。「fpwmake」コマンドは「package」オプションをつけて実行すれば、「fpwmake」で行う辞書の生成も「catalogs」オプションで行うカタログの作成もやってくれるみたいです。