ESPによる文法圧縮の実装を公開しました。

2012-02-04の記事 http://d.hatena.ne.jp/tb_yasu/20120204 のESPによる文法圧縮の実装に関して問い合わせが数件ありましたのでソースコードを公開しました。

今後のアップデートのしやすさを考慮してgithubにアップロードしました。
https://github.com/tb-yasu/GrammarCompression

現在のところ、文章から文法を構築する機能と、文法から文章を復元する機能をサポートしています。

esp-0.0.1.tar.bz2をダウンロードしましたら、tarで解凍してください。

tar -xzvf esp-0.0.1.tar.bz2

解凍出来ましたらmakeでコンパイルできます。

cd esp-0.0.1/src
make

文章から文法を構築する際は、esp-compressコマンドを使用します。

./esp-compress ../dat/ex1.txt grammar

第一引数は文法を構築したい文書ファイル名です。ex1.txtファイルにはmississippiが格納されています。第二引数のファイルは文書から構築した文法を格納するファイル名です。ここではgrammarを指定しています。

文法から文章を復元する際は、esp-decompressコマンドを使用します。

./esp-decompress grammar output

第一引数は、esp-compressより作られた文法のファイル名です。ここではgrammarを指定しています。第二引数は、出力ファイル名です。ここではoutputを指定しています。../dat/ex1.txtとoutputは同じ文章が入っているはずです。