เพื่อปรับปรุงการบีบอัด gzip คุณต้องการให้สตริง "คล้ายกัน" ปิดในรายการ มีหลายวิธีในการกำหนดความคล้ายคลึงกัน; ให้ฉันอธิบายสิ่งที่สมเหตุสมผลที่ใช้ได้ดีในทางปฏิบัติ จำได้ว่าขนาดบล็อกของ gzip คือ 64K ดังนั้นข้อมูลของคุณจะถูกแบ่งออกเป็นบล็อกขนาด 64K ไบต์และทุกบล็อกจะถูกบีบอัดอย่างอิสระ การเพิ่มประสิทธิภาพการบีบอัดจะต้องลดจำนวน k-mers ที่แตกต่างกัน (สตริงย่อยของขนาด k) ในทุกบล็อค แรงจูงใจคือสารตั้งต้นดังกล่าวทั้งหมดจะถูกแทนที่ด้วยตัวระบุ
ในขณะที่ปัญหาข้างต้นนั้นยากในทางทฤษฎี (มันเป็นตัวแปรของการแบ่งไฮเปอร์กราฟ) แต่ก็มีอัลกอริทึมการปฏิบัติที่รวดเร็ว ฉันอยากจะแนะนำการจัดกลุ่มคล้าย LSHที่สามารถใช้งานได้ด้วยการส่งผ่านข้อมูลของคุณเพียงครั้งเดียว ขอให้สังเกตว่าการเรียงลำดับ (ตัวอักษร) เป็นอีกวิธีหนึ่งในการ "รวมกลุ่ม" สตริงที่คล้ายกันเข้าด้วยกัน อย่างไรก็ตามอัลกอริทึมการจัดกลุ่มพิเศษสามารถทำงานได้ดีขึ้น
อีกทางเลือกหนึ่งคือการใช้zstdซึ่งเป็น (i) เร็วขึ้น (ii) ได้รับอัตราส่วนการบีบอัดที่สูงขึ้นและ (iii) ไม่มีข้อ จำกัด เกี่ยวกับขนาดบล็อก (และทำให้บีบอัดสตริงอย่างเท่าเทียมกัน