Menu

辞書の減量化・圧縮方法

Palmの外部メモリは、大容量のものが出回ってきたとはいえ、まだ高価であり、収納 す るデータは小さいにこしたことはありません。ここでは、EPWING 形式辞書の honmon や、電子ブック形式辞書の start から、不要データをそぎおとして減量化・圧縮する方法を説明します。
作業はほとんど、MS-DOSプロンプト(コマンドプロンプト)上で行います。MS-DOS の説明は関連 ページを参照してください。

◆準備
電子辞書 eDict Snapshot>のウェブサイトに登録されている辞書ユーティリティソフトを使うことにします。このサイトから ebutils 版の Windows 32bit 用 ebu-w32.lzh をダウンロードして、解凍してください。ebu-w32 のフォルダに、bookinfo.exe, catdump.exe, squeeze.exe の3つのソフトと、いくつかのテキストファイル(マニュアル)が入っているはずです。

◆展開

EPWING規格第4版〜第6版の辞書は、DATAフォルダの中の honmon が圧縮されて honmon2 になっているので、これを展開しないと先へ進めません。しかし、上記 ebutils 版のソフトは、実行時に自動的に展開もやってくれますから、特に意識する必要はありません。

◆書籍管理情報
上記 ebu-w32 に同梱されている bookinfo.exe というソフトを使うと、honmon/honmon2/start の書籍管理情報をテキストファイルにおとして、見ることができます。コマンドは、たとえば以下のようになります。
bookinfo honmon > koujien.txt
「広辞苑 第四版」についてみてみます(主要個所だけ載せます)。
-----------------------------------------------------------------------
; 電子ブック/EPWING 書籍管理情報 (generated by bookinfo v1.2pre)
ID 名称                                  先頭 サイズ INDEX情報 予備3/4
*00 本文                                     2  17803 kasctygdh 00/0000
 30 かなインデックス                     17805   3225 kasctygdh 00/0000
 60 表記形インデックス                   21030   3505 .as...... 00/0000
*90 前方一致かなインデックス             24535   3976 kasctygdh 00/0000
*04 前方一致かな見出し                   28511   3576 kasctygdh 00/0000
*91 前方一致表記形インデックス           32087   5015 .as...... 00/0000
*05 前方一致表記形見出し                 37102   7327 kasctygdh 00/0000
*70 後方一致かなインデックス             44429   3976 kasctygdh 00/0000
*06 後方一致かな見出し                   48405   3576 kasctygdh 00/0000
*71 後方一致表記形インデックス           51981   5015 .as...... 00/0000
*07 後方一致表記形見出し                 56996   7327 kasctygdh 00/0000
 80 条件検索インデックス                 64323  15073 .as...... 00/0000
 03 条件検索見出し                       79396  50546 kasctygdh 00/0000
 81 クロス検索インデックス              129942    217 .as...... 00/0000
 0A クロス検索見出し                    130159    409 kasctygdh 00/0000
*01 メニュー                            130568    171 kasctygdh 00/0000
 FF 複合検索                               ***  19173 kasctygdh 00/0000
 FF 複合検索                               ***   7491 kasctygdh 00/0000
 FF 複合検索                               ***   6311 kasctygdh 00/0000
 FF 複合検索                               ***   4308 kasctygdh 00/0000
 D0 モノクロ図版                        149863  13242 kasctygdh 00/0000
 D2 カラー図版                          163105  89249 kasctygdh 00/0000
*02 著作権表示                          252354      1 kasctygdh 00/0000
 23 著作権表示(1行表示用)               252355      1 kasctygdh 00/0000
 E0 色見本                              252356    266 kasctygdh 00/0000
 D8 PCM音声                             252622   4887 kasctygdh 00/0000
-----------------------------------------------------------------------
この中で、Palmの辞書検索ソフトに必要なのは以下の5つだけです(辞書の種類によって、ないものもあります)。
*00 本文
*90 前方一致かなインデックス
*04 前方一致かな見出し
*91 前方一致表記形インデックス
*05 前方一致表記形見出し
また、電子ブックの場合は、このほかに外字データが含まれます。
*F1 外字(16×16ドット)
*F2 外字(8×16ドット)

◆減量化
前記の書籍管理情報をもとに、squeeze.exe を使ってデータを減量化します。squeeze.exe の -d オプションには、削除するデータの ID を記述します。残すのは00,04,05,90,91だけですから、16進数の 00-FF までのあいだで不要なのは、01-03,06-8F,92-FF(電子ブックなら外字も残すので、01-03,06-8F,92-F0,F3-FF) です。従って、honmon/honmon2/startの場合、コマンドはそれぞれ以下のように記述します。
squeeze -d01-03,06-8F,92-FF honmon honmon0
squeeze -d01-03,06-8F,92-FF honmon2 honmon0
squeeze -d01-03,06-8F,92-F0,F3-FF start start0
このあと、減量化されたファイルをほかのディレクトリに移動させてから、リネームして 末尾の0をとってください。
この減量効果は、上記の「広辞苑 第四版」の場合でみると、503MB→74MBと劇的です。

squeeze による減量化で不具合が出た例があるので挙げておきます。
電子ブック版「大辞林&デイリー英和・和英」の start のファイルを上記のオプションで減量化したところ、Buckingham EB Player で外字が正常に表示されず、外字コードが表示されてしまいました。試みに-d オプションなしで減量化したところ、(後方一致インデックスなどが残るので、ファイルサイズは若干大きくなりましたが)外字は正常に表示されました。この ファイルに対して、後述の圧縮を行っても、やはり外字は正常に表示されました。また、この辞書については電子ブック形式からEPWING形式に変換するこ とによっても問題は解決し、最大限の減量化・圧縮後も外字は正常に表示されました。→関連ページ

◆カタログの修正
次にcatalogs(電子ブックではcatalog)の修正を行います。コマンドは 次のようです。
catdump catalogs > catalogs.txt
このあと Windows から catalogs.txt をクリックすると、メモ帳などが起動して以下のような内容が表示されます(内容は辞書の種類によって異なります)。
---------------------------------------------------------------
; 電子ブック/EPWING カタログ内容 (generated by catdump v1.2pre)
[Catalog]
FileName   = catalogs
Type       = EPWING3
Books      = 6
BookSelect = 6

[Book]
BookType   = 0003 (00:国語辞典, 03:EPWING3)
Title      = "広辞苑 第四版"
Directory  = "KOUJIEN"
InfoBlock  = 0001
ZenGaiji   = "GA16FULLGA24FULLGA30FULLGA48FULL"
HanGaiji   = "GA16HALFGA24HALFGA30HALFGA48HALF"
Reserved1  = 002B002B
BookFile   = "HONMON"

[Book]
BookType   = 0001 (00:国語辞典, 01:EPWING1)
Title      = "付属資料"
Directory  = "FUROKU"
InfoBlock  = 0001
ZenGaiji   = "GA16FULLGA24FULLGA30FULLGA48FULL"
HanGaiji   = "GA16HALFGA24HALFGA30HALFGA48HALF"
(以下省略)
---------------------------------------------------------------
重要なのは、Books、Directory、ZenGaiji、HanGaiji、BookFile の個所です。
  • 辞書本体以外に、上の例のように付属資料などがついていることがありますから、それらの書籍情報は削除して Books=1 とします。ひとつのcatalogsに複数の辞書が入っている場合は、その数に合わせてください。
  • Directoryは Data や Gaiji のフォルダが入っているフォルダ名です。
  • 外字は、各ドット数ごとに全角外字と半角外字があります。これらのうちBuckingham EB Player で使うのは16ドットのものだけです。それよりドット数の大きい外字は不要ですから、記述 から削除してください。なお、外字のファイル名は、辞書によって若干異なります。
  • 圧縮版の HONMON2 を、展開した HONMON に変えたら、BookFile の名前も必ず変更してください。
BookSelect、Padding2、Padding3、GraphicsFile、SoundFile などの行があったら、削除しても影響ないはずです。修正結果は以下のようになります。
---------------------------------------------------------------
; 電子ブック/EPWING カタログ内容 (generated by catdump v1.2pre)
[Catalog]
FileName   = catalogs
Type       = EPWING3
Books      = 1

[Book]
BookType   = 0003 (00:国語辞典, 03:EPWING3)
Title      = "広辞苑 第四版"
Directory  = "KOUJIEN"
InfoBlock  = 0001
ZenGaiji   = "GA16FULL"
HanGaiji   = "GA16HALF"
Reserved1  = 002B002B
BookFile   = "HONMON"
---------------------------------------------------------------
修正が終わったら、上書き保存して、MS-DOSプロンプトで以下を実行します(今度は「-u」のオプションをつけ、「>」はつけないことに注 意)。
catdump -u catalogs.txt catalogs
これで、catalogs の修正も完了です。
なお、上記のZenGaiji、HanGaiji の指定に合わせて、Gaiji フォルダのなかの不要な外字ファイルも削除してください。

◆圧縮
このあと、辞書の格納フォルダ全体(関 連ページ参照)の圧縮を行います。
<ebzip.exe の場合>
説明を簡単にするために、ebzip.exe と辞書フォルダ iwanami が同じディレクトリにあるとします。MS-DOS のコマンドで以下のように実行すると、上書きで圧縮されます。
ebzip -l3 -o iwanami iwanami
-l(Lの小文字)オプションは圧縮レベル(0〜3)、-o オプションは出力先ディレクトリ指定、最後が辞書格納フォルダ名です(ディレクトリ名の頭に \ をつけず、相対指定していることに注意してください)。
ebzip.exe は、「電子辞書オープンラボ」の eblook のページから、MS Windows 用バイナリの eblook13nocyg.zip をダウンロードして、この中に同梱されているバージョンを使いましたが、ほかのバージョンでも動作は変わらないと思います。
<BuckinghamEBCompressor.exe の場合>
Windowsのソフトです。アイコンをクリックして起動し、辞書格納フォルダごと窓の中にドロップして、圧縮レベル(0〜3)を選んでから、「圧縮実 行」をクリックするだけです。上書きで圧縮されます。なお、辞書データの honmon や start だけをドロップして圧縮することもできます。catalogs や外字ファイルは、圧縮前でもサイズはそれほど大きくなく、圧縮するとソフト起動時に要するオーバーヘッドの時間が長くなるので、圧縮しないほうがいいか もしれません。
このソフトは、Buckingham EB Player に同梱されています。
<圧縮サイズ>
両ソフトで圧縮率はほとんど同じです。「広辞苑 第四版」の場合は以下のように圧縮されます。
減量化のみ …74MB
圧縮レベル0…31MB
圧縮レベル1…29MB
圧縮レベル2…28MB
圧縮レベル3…27MB
最近のPalmはCPUが高速なので、レベル3でも待たされるという感じはまったくしません。
なお、辞書によってはまれに、圧縮すると検索に不具合が生じる場合があるので、そのときは減量化のみで使用してください。