我有机会为压缩预置字典。这在我的例子中是有意义的,因为要压缩的数据相对较小,1kb-3kb,并且我有大量具有代表性的示例。要压缩的数据由任意的字节序列组成,因此标记化等不是一个好的方法。此外,数据显示了大量的重复(在数据示例之间),因此好的字典可能会提供非常好的结果。问题是如何计算出好的字典?有没有计算最佳字典(给定样本数据)的算法?
我开始研究前缀树,但不清楚如何在此上下文中使用它们。
致以最好的问候,Jarek
发布于 2013-07-13 00:17:04
我不知道有什么算法可以生成一个最优的甚至是一个好的字典。这通常是手工完成的。我认为后缀树是为字典查找公共字符串的一个很好的方法,但我从未尝试过。
要尝试的第一件事是简单地连接价值32K的1-3K示例,看看这比没有字典提供了多大的收益。然后,您可以从那里开始处理它,更改示例的顺序或从示例中删除重复的片段,直到字典的末尾。
请注意,最常见的字符串应该放在末尾,因为距离越短,占用的位就越少。
发布于 2018-06-05 03:35:04
我不知道这有多好,但它是一个字典创建者:https://github.com/vkrasnov/dictator
https://stackoverflow.com/questions/17608271
复制相似问题