- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
是否有任何压缩算法(有损或无损)专门适用于处理现实世界(困惑和无效)的 HTML 内容?
如果不是,我们可以利用 HTML 的哪些特性来创建这样的算法?潜在的性能提升是什么?
此外,我问的问题不是为了提供此类内容(通过 Apache 或任何其他服务器),尽管这当然很有趣,而是为了存储和分析它。
更新:我指的不是 GZIP —— 这很明显 —— 而是一种专门设计用于利用 HTML 内容特性的算法。例如,可预测的标签和树结构。
最佳答案
我不知道“现成的”压缩库明确针对 HTML 内容优化。
然而,HTML 文本应该使用通用算法很好地压缩(请阅读此答案的底部以获得更好的算法)。由于特定语言习语的高度重复性,Lempel–Ziv 的所有变体通常在类似 HTML 的语言上表现良好; GZip ,经常被引用使用这种基于 LZ 的算法(我认为是 LZ77)。
一个可能改进这些通用算法的想法是用最常见的 html 标签和模式来填充一个 LZ 型循环缓冲区。以这种方式,我们将通过使用这种模式的第一个实例中的引用来减少压缩后的大小。这种增益对较小的 html 文档特别敏感。
一个互补的、类似的想法是让压缩和解压方法隐含(即不发送)LZ-x 算法的其他压缩算法的信息(比如 LZH 等情况下的哈夫曼树),使用特定于典型 HTML 的统计数据,小心地从字符中排除,计算引用编码的 [统计加权] 字符实例。这种经过过滤的字符分布可能比完整的 HTML 文本更接近纯英语(或目标网站的国家语言)。
与上述 [受过教育,我希望] 猜测无关,我开始在网上搜索有关此主题的信息。
' 找到了这个 2008 scholarly paper (pdf format)弗罗茨瓦夫大学的 Przemysław Skibiński 着。该论文的摘要表明比 GZIP 提高了 15%,压缩速度相当。
否则我可能找错地方了。似乎没有多少人对此感兴趣。可能只是因为相对于普通或适度调整的通用算法而言,额外的 yield 不足以引起这种兴趣,即使在支持网络的手机的早期(当时带宽非常宝贵...... .).
关于html - 专门针对 HTML 内容优化的压缩算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2419010/
我有一个带有模板函数的基类,该函数具有通用模板类型和专用版本。 #ifndef BASE_CLASS #define BASE_CLASS #include using namespace std;
我有这个 3D vector 模板 template class Vec3TYPE{ public: union{ struct{ TYPE x,y,z; }; struct{ TY
我是一名优秀的程序员,十分优秀!