我有机会为压缩算法Deflate预设词典。在我这种情况下,这是有意义的,因为要压缩的数据相对较小,仅为1kb-3kb,并且我有大量代表性示例。要压缩的数据由任意字节序列组成,因此标记化等方法并不适用。此外,数据中显示出很多重复(在数据示例之间),因此良好的词典可能会产生非常好的结果。
问题是如何计算好的词典?是否有一种算法可以计算最优的词典(给定样本数据)?
我开始研究前缀树,但不清楚如何在此上下文中使用它们。
最好的祝愿, Jarek
最好的祝愿, Jarek
我不知道有没有一种算法可以生成最优甚至是好的字典。通常都是手工完成。我认为使用后缀树来查找字典中的常见字符串可能是一个不错的方法,但我从未尝试过。
首先要尝试的是简单地将您的1-3K示例拼接成32K,并查看与没有字典相比提供了多少收益。然后您可以从那里进行调整,更改示例的排序或将示例中重复的部分提取到字典的末尾。
请注意,最常见的字符串应该放在末尾,因为较短的距离需要较少的位。