トレーニング済みのデータを使用してデータを圧縮および解凍できる、事前にトレーニングできる圧縮アルゴリズムがあるかどうかを調べようとしています。
圧縮アルゴリズムがどのように機能するかは正確にはわかりませんが、これが可能であるという予感はあります。
たとえば、これらの行を個別に圧縮すると、あまり圧縮されません。
banana: 1, tree: 2, frog: 3
banana: 7, tree: 9, elephant: 10
事前に数百のサンプル行を使用して圧縮アルゴリズムをトレーニングすると、「バナナ」をコード/ルックアップ値にマッピングする方法が既にあるため、非常によく圧縮されます。
私の質問を説明するのに役立つ疑似コード:
# Compressing side
rip = Rip()
trained = rip.train(data) # once off
send_trained_data_to_clients(trained)
compressed = rip.compress(data)
# And on the other end
rip = Rip()
rip.load_train_data(train)
data = rip.decompress(compressed)
これを可能にする一般的な (つまり、一般的な言語用のライブラリがある) 圧縮アルゴリズムはありますか?