Với lượng lớn cỏc trang Web, ngày càng tăng làm nảy sinh nhiều vấn đề mới trong việc thu nhập và tỡm kiềm chỳng. Kớch thước của cỏc file chứa chỉ mục ngày càng lớn hơn, gõy khụng ớt khú khăn trong việc lưu trữ và tăng thời gian truy cập, tỡm kiếm. Vỡ vậy, người ta đó đưa ra một giải phỏp thớch hợp để cú thể tạo ra và truy cập đến cỏc file chứa chỉ mục với một thời gian hợp lý và giảm thiểu khụng gian lưu trữ. Giải phỏp được chọn ở đõy là sử dụng cỏc phương phỏp nộn dữ liệu để nộn cỏc file chứa chỉ mục. Cú nhiều phương phỏp nộn do nhiều tỏc giả đưa ra như Bell, BookStein, Moffat,... cỏc phương phỏp nộn này dựa trờn hai phương phỏp chủ yếu là nộn theo đoạn dài mó từ (run length) và nộn theo khoảng cỏch cỏc từ mó (d_grap).
2.4.1 Nộn dữ liệu theo đoạn dài mó từ
Phương phỏp này cũn gọi là mó hoỏ dữ liệu theo đoạn dài, là cỏch nộn dữ liệu trực tiếp nhằm làm giảm khụng gian lưu trữ của dữ liệu. Phương phỏp này dựa vào độ dài của cỏc từ mó giống nhau chuỗi trong dữ liệu. Thay vỡ mỗi ký tự chứa một byte thỡ chỉ cần dựng một byte để lưu ký tự đú và một byte để chỉ số lượng ký tự đú.
Chẳng hạn, chuỗi efghhdddddeeeeeeaggg chiếm 20 byte Nộn efg2h5d6ea3g chỉ chiếm 12 byte
56
Với lượng dữ liệu lớn và do kớch thước trang tài liệu thường nằm trong một khoảng xỏc định nờn giỏ trị vị trớ của cỏc từ trong tài liệu thường lặp lại. Vỡ vậy, phương phỏp nộn này làm giảm khụng gian lưu trữ cỏc file chứa chỉ mục rất nhiều.
Vấn đề vướng mắc ở đõy là dựng cỏc ký tự để biểu diễn vị trớ cỏc từ trong tài liệu, thực tế cỏc từ này là cỏc số nguyờn dương. Vậy làm thế nào để phõn biệt được số vị trớ lặp lại (số này được gọi là đoạn dài) với số chỉ giỏ trị vị trớ của từ đú. Nếu phương phỏp này, gặp những đoạn chỉ độ dài là 1 thỡ sau khi nộn lại làm tăng kớch thước của dữ liệu (vỡ lại mất 2 byte, một để lưu số đoạn dài, một để lưu ký tự đú).
Để giải quyết vấn đề này, ta chỉ sử dụng 7 bit sau của một byte để chỉ ra đoạn dài và bit đầu tiờn để dựng làm bit dấu. Nếu giỏ trị đoạn dài lớn hơn một (là một số dương) tức là bit đầu tiờn cú giỏ trị 0 thỡ dóy cỏc giỏ trị tiếp theo được lặp lại cho đến khi gặp giỏ trị õm của đoạn kế tiếp. Ngược lại, giỏ trị đoạn dài là một số õm thỡ dóy cỏc giỏ trị tiếp theo chỉ được chộp một lần, dóy cỏc ký tự đú cú số ký tự đỳng bằng trị tuyệt đối của giỏ trị đoạn dài (lỳc này là số õm).
Chẳng hạn, chuỗi efghhdddddeeeeeeaggg chiếm 20 byte
Nộn -3efg2h5d6e-1a3g chỉ chiếm 14 byte
Với vớ dụ trờn tỉ lệ nộn khụng cao, nhưng với lượng thụng tin, dữ liệu lớn và giỏ trị vị trớ nằm trong một khoảng nhỏ thỡ tỉ lệ nộn sẽ cao hơn nhiều, hiệu quả nộn sẽ tốt hơn.
2.4.2 Nộn dữ liệu theo khoảng cỏch
Nộn dữ kiệu theo khoảng cỏch (d_grap) là phương phỏp nộn dựa vào việc biểu diễn vị trớ của cỏc từ trong file chứa chỉ mục qua khoảng cỏch d của chỳng, sau đú, ỏp dụng phương phỏp mó hoỏ với đoạn dài từ mó thay đổi để nộn file chứa chỉ mục.
Chẳng hạn, vị trớ của một từ trong tài liệu được lưu trữ trong file chứa chỉ mục bằng một dóy cỏc số nguyờn:
57 5 7 9 15 21 32 41 74
Trước tiờn sử dụng phương phỏp d_grap, xỏc định khoảng cỏch của cỏc vị trớ từ vị trớ thứ 2 trở đi so với vị trớ đầu và lưu chỳng trong file chứa chỉ mục như sau:
5 2 2 6 6 11 9 33
Kết quả của phộp biểu diễn này là dóy cỏc số nguyờn nhỏ hơn và số cỏc khoảng cỏch nhỏ xuất hiện nhiều hơn, tức là cỏc số trựng nhau xuất hiờn trong dóy nhiều hơn.
Sau đú, sử dụng phương phỏp mó hoỏ với đoạn dài từ để mó hoỏ cỏc giỏ trị trong dóy. Với phương phỏp mó hoỏ này, cỏc giỏ trị nhỏ và tần số xuất hiện nhiều sẽ thu được kết quả là file chứa chỉ mục cú kớch thước nhỏ hơn nhiều.
58
Chương 3 Thuật toỏn đối sỏnh đa mẫu