Gzip sıkıştırmasını iyileştirmek için "benzer" dizelerin listede yakın olmasını istersiniz. Böyle bir benzerliği tanımlamanın birkaç yolu vardır; pratikte iyi çalışan makul bir tanesini açıklayayım. Gzip'in blok boyutunun 64K olduğunu hatırlayın. Böylece, verileriniz 64K baytlık bloklara bölünecek ve her blok bağımsız olarak sıkıştırılacaktır. Sıkıştırmayı optimize etmek için, her bloktaki farklı k-mer (k boyutunda alt dizeler) sayısını en aza indirmek gerekir. Motivasyon, bu tür tüm alt dizelerin bir tanımlayıcı ile değiştirilmesidir.
Yukarıdaki problem teoride zor olsa da (hipergraf bölümlemenin bir çeşididir), hızlı pratik algoritmalar vardır. Verilerinizin üzerinden tek bir geçişle uygulanabilen LSH benzeri kümelemeyi öneririm . (Alfabetik olarak) sıralamanın, benzer dizeleri birlikte "kümelemenin" başka bir yolu olduğuna dikkat edin. Ancak, özel kümeleme algoritmaları daha iyi performans gösterebilir.
Bir alternatif, (i) daha hızlı olan, (ii) daha yüksek sıkıştırma oranları elde eden ve (iii) blok boyutu üzerinde sınırlamalara sahip olmayan (ve böylece giriş sırasına bakılmaksızın dizeleri eşit derecede sıkıştırır) olan zstd kullanmaktır .