1

Web ページを圧縮テキスト ファイル (CSV) に保存したいと考えています。最適な圧縮を実現するために、1000 の Web ページのセットを提供したいと考えています。次にライブラリは、このコンテンツに最適な「辞書」を作成するのに時間を費やす必要があります。明らかな「辞書」エントリの<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">1 つは であり、ほとんどすべての Web ページに存在するため、%1 などとして保存される可能性があります。このようにカスタマイズされた辞書を作成することで、私の場合、圧縮率は 99% になるはずです。

私の質問は、これを行うためのライブラリが MIT または同様のリベラルなライセンスを使用して Windows に存在するかどうかです。そうでない場合、推奨する汎用圧縮ライブラリはありますか。zlib で少し試してみましたが、バイナリ データが出力されます。このバイナリデータをテキストに変換すると、元のテキストより長くなってしまうのではないかと心配です。

編集: テキストを CSV ファイルに保存し、データベースや Excel にインポートできるようにする必要があります。

4

1 に答える 1

4
  1. 「テキストファイル(バイナリではない)」は少し一般的すぎます。一部のバイト値(00、1Aなど)を使用できない場合は、任意のバイナリメソッド+base64コーディングなどを使用できます。(コルーチンのデモソースからより効率的な方法を提案しますが)。

    具体的には、任意の汎用コンプレッサーを使用してベースファイルを圧縮し、次にベースファイル+ターゲットファイルを圧縮し、次にこれらを差分すると、辞書圧縮(バイナリ)が取得され、「テキスト」に変換できます。 base64やyencなどで。

    または、そのための組み込みサポートを備えたコーダーがいくつかあります。たとえば、 http
    //compression.ru/ds/ppmtrain.rar http://code.google.com/p/lzham/

  2. 一般的なフレーズを参照に置き換えて、他のすべてのものをそのままにしておきたい場合(つまり、「テキスト出力」とは異なります)、http:
    //xwrt.sourceforge.netのようなテキストプリプロセッサを使用できます。 /
    http://compression.ru/ds/liptify.rar (もっと公平でした)。

  3. ハイブリッド方式も可能です。[1]のような汎用LZコンプレッサー(たとえばlzma)を使用して、そのエントロピーコーディングをテキストベースのものに置き換えることができます。たとえば、http://nishi.dreamhosters.com/u/lzmarec_v1_bin.rar には、LZMAのエントロピーコーディングを削除するユーティリティがあり、出力をテキストに変換するのは非常に簡単です。

于 2011-03-07T20:11:54.650 に答える