辞書の仕様


仕様書(pdicu-dic.doc) PDIC/Unicode Ver.5.xで使用している辞書

従来のPDIC/W32の辞書仕様書を書き換え、Unicode専用に書き換えています。まだ書きかけなのでこの仕様書は信じないでください。昔の記述が残っていたりします。

圧縮について

PDIC/W32ではAR(lhaの仲間)を使用していましたが、独自実装のRangeCoderに変更しました。
用例、バイナリデータが辞書に格納できない場合、RangeCoderで圧縮されます。
PDIC/Unicodeでは辞書に格納できるデータの大きさの制限を大幅に緩くしたため、格納できないというケースは非常にレアであると思います。アプリケーションが圧縮に対応しない場合は、エラー表示するなどの対応でも問題ないと思います。(圧縮フラグで判断)
完全に対応したいという場合はこのRangeCoderのdecode(必要ならばencode)に対応する必要があります。

as isでソースコードをとりあえずおいておきます。

RangeCodec.cpp
RangeCodec.h

※2000年頃に作ったもので、現在ではもっといい実装があるかもしれません。
※開発当初は圧縮率がいいけど、ちょっと遅いな。。と思いましたが、CPUが速くなったお陰でほとんどストレスがないと思います。(なのでPDIC/Unicodeでは圧縮・解凍プログレス表示はしていません。時間がなかったのもあるけど)

キーワード部(見出し語)

辞書の仕様書だけでは説明が足りないかも。言語プロセッサのキーワード部分の処理も目を通した方がいいかもしれません。

リンク

PDIC miniソースコード - 私自身全く確認していませんので保証はできませんが、PDIC/Unicodeの辞書を検索できるようです。

補足

PDICのソースコードを公開すれば・・・というのはあるかもしれませんが、見ないほうが身のためです。(笑)

ご意見など