我一直在对基于压缩的文本分类进行一些研究,并且试图找出一种存储由编码器(在训练文件上)构建的字典以用于在测试文件上“静态”运行的方法?这完全可以使用 UNIX 的 gzip 实用程序吗?
例如,我一直在使用 sport.txt 和 atheism.txt 的 2 个“类”文件,因此我想对这两个文件进行压缩并存储它们使用的字典。接下来,我想获取一个测试文件(未标记,可能是无神论或运动),并通过使用此 test.txt 上的预构建字典,我可以分析它在该字典/模型下的压缩程度。
谢谢
我一直在对基于压缩的文本分类进行一些研究,并且试图找出一种存储由编码器(在训练文件上)构建的字典以用于在测试文件上“静态”运行的方法?这完全可以使用 UNIX 的 gzip 实用程序吗?
例如,我一直在使用 sport.txt 和 atheism.txt 的 2 个“类”文件,因此我想对这两个文件进行压缩并存储它们使用的字典。接下来,我想获取一个测试文件(未标记,可能是无神论或运动),并通过使用此 test.txt 上的预构建字典,我可以分析它在该字典/模型下的压缩程度。
谢谢
与 gzip 和 zlib 一样,deflate 编码器不会“构建”字典。他们只是使用之前的 32K 字节作为可能匹配从当前位置开始的字节串的来源。最后 32K 字节被称为“字典”,但这个名称可能会产生误导。
您可以使用zlib来试验预设字典。请参阅deflateSetDictionary()
和inflateSetDictionary()
功能。在这种情况下,zlib 压缩以 32K 字节的“字典”作为初始值,该“字典”有效地在第一个字节被压缩为匹配源之前,但字典本身没有被压缩。启动只能改进前 32K 字节的压缩。在那之后,预设字典太远了,无法提供匹配。
gzip 不支持预设字典。