Để cải thiện nén gzip, bạn muốn đóng các chuỗi "tương tự" trong danh sách. Có một số cách để xác định sự tương đồng như vậy; hãy để tôi mô tả một cái hợp lý hoạt động tốt trong thực tế. Hãy nhớ lại rằng kích thước khối của gzip là 64K. Do đó, dữ liệu của bạn sẽ được chia thành các khối 64K byte và mọi khối sẽ được nén độc lập. Cần tối ưu hóa nén, người ta sẽ cần giảm thiểu số lượng k-mers riêng biệt (chuỗi con có kích thước k) trong mỗi khối. Động lực là tất cả các chuỗi con như vậy sẽ được thay thế bằng một định danh.
Mặc dù vấn đề trên là khó về lý thuyết (nó là một biến thể của phân vùng siêu dữ liệu), tồn tại các thuật toán thực tế nhanh. Tôi muốn giới thiệu phân cụm giống như LSH có thể được thực hiện với một lần chuyển qua dữ liệu của bạn. Lưu ý rằng sắp xếp theo thứ tự chữ cái là một cách khác để "gom" các chuỗi tương tự lại với nhau. Tuy nhiên, các thuật toán phân cụm chuyên ngành có thể thực hiện tốt hơn.
Một cách khác là sử dụng zstd , nhanh hơn (i), (ii) có tỷ lệ nén cao hơn và (iii) không có giới hạn về kích thước khối (và do đó, nén các chuỗi không kém bất kể thứ tự đầu vào).