Log of ROYGB

はてなダイアリーが廃止されるので、引っ越しました。

圧縮

JPGやMP3のように画像や音楽という物に特化した圧縮形式というのがあって、これは画像ならばその特性に合わせたアルゴリズムを使うということ以外に、人間の認識についても考えられています。人間が判別できない部分は不要なデータとして取り除いてしまうので、完全に元にはもどらない不加逆圧縮ですがそれが気にならないようになっています。
テキストの圧縮でも同じようなことができないかというのが、考えたことです。文章を読む場合に、表現が多少変化しても意味が同じならば違和感はそれほど無いといったことを利用して、JPGのように不可逆だけれども高い圧縮率は実現できないものだろうかというのが一つ目です。テキストの場合は画像や音楽のデータほど大きくはないのでそれほど圧縮率を上げることに意味はないかもしれません。テキスト化というのがある種の圧縮になっているとも考えられます。
もう一つは、テキストの意味を判断して圧縮することができたら、それを別の言語に解凍することも出来るのではないかということです。日本語のテキストを圧縮して、解凍時に英語にするわけです。


情報エントロピーから考えると、違う言語であっても同じ意味の内容であればエントロピーは等しくなると考えられます。言語を圧縮することが出来るのは、冗長な部分があるからです。
日本語と英語のどちらが冗長かというのは難しいですが、テキストデータを圧縮する場合は一般に英語の方が高い圧縮率になります。同じ意味の単語の長さを比べることもできます。例えば「台風」は2文字で"Typhoon"は7文字といった具合です。バイト数で比べても4バイトと7バイトなので日本語の方が少ないバイト数ですみます。これを沢山の単語で行うと傾向がつかめるでしょう。
そして、英語の文書を圧縮した場合と、同じ意味の日本語の文書を圧縮した場合では理論的には同じ大きさになると考えられます。文書の意味の持つ情報エントロピーで決まってくるからです。この場合は圧縮が目的というよりは、情報化が目的です。いちど情報化することが出来れば、それをもとの日本語に戻すことや英語などの別の言語に変換することが出来そうに思えます。
この辺のことは、コンピュータ関連の言語であればコンパイルしてから逆コンパイルするようなもので、すでに実現している技術です。しかし、日常言語の情報化そして逆情報化というのはまだまだ難しいでしょう。