有没有办法从文件中存储gzip的字典?

gra*_*fox 7 unix compression algorithm dictionary classification

我一直在研究基于压缩的文本分类,我试图找出一种方法来存储由编码器构建的字典(在训练文件中),以便在测试文件上"静态"运行?使用UNIX的gzip实用程序可以实现这一点吗?

例如,我一直在使用sport.txt和atheism.txt的2个"类"文件,因此我想对这两个文件运行压缩并存储它们使用的字典.接下来我想要一个测试文件(没有标记,可能是无神论或运动),并通过使用此test.txt上的预构建词典,我可以分析它在该词典/模型下的压缩程度.

谢谢

Mar*_*ler 7

deflate编码器,如在gzip和zlib中,不要"构建"字典.它们只是使用前面的32K字节作为从当前位置开始的字节串的潜在匹配的源.最后32K字节称为"字典",但名称可能会产生误导.

您可以使用zlib来试验预设词典.请参阅deflateSetDictionary()inflateSetDictionary()功能.在这种情况下,zlib压缩使用32K字节的"字典"进行准备,该字典有效地在作为匹配源压缩的第一个字节之前,但字典本身未被压缩.启动只能改善前32K字节的压缩.之后,预设字典太远而无法提供匹配.

gzip不支持预设词典.

  • 与现代方法相比,LZW 是无效的。这不值得考虑。在我了解您要做什么的范围内,您可以使用 deflate 32K 字典。您要做的是识别代表性数据中的常见字符串,然后用这些字符串打包一个 32K 的字典。deflate 的压缩算法不会帮助你做到这一点。您需要编写自己的代码来查找这些常见字符串。 (2认同)