我有机会为deflate压缩预设字典。在我的情况下这是有道理的,因为要压缩的数据相对较小1kb-3kb,我有大量代表性示例。要压缩的数据由任意字节序列组成,因此标记化等不是一个好方法。此外,数据显示了大量重复(数据示例之间),因此良好的字典可能会产生非常好的结果。 问题是如何计算好字典?是否有算法计算最佳字典(给定样本数据)?
我开始查看前缀树,但目前尚不清楚如何在此上下文中使用它们。
祝你好运, 亚雷克
答案 0 :(得分:3)
我不知道生成最佳甚至是好词典的算法。这通常是手工完成的。我认为后缀树是查找字典常用字符串的好方法,但我从未尝试过。
要尝试的第一件事就是简单地连接32K值的1-3K示例,看看没有字典提供多少增益。然后你从那里弄乱了它,改变了例子的顺序,或者将例子中的重复部分拉到字典的末尾。
请注意,最常见的字符串应放在最后,因为较短的距离需要较少的位。
答案 1 :(得分:0)
我不知道这有多好,但它是一个字典创建者:https://github.com/vkrasnov/dictator