Nén tập tin posting

Một phần của tài liệu Nghiên cứu các phương pháp nén chỉ số trong các hệ thống tìm kiếm (Trang 37 - 40)

CHƯƠNG II. MỘT SỐ PHƯƠNG PHÁP NÉN CHỈ SỐ, NÉN CHỈ SỐ NGƯỢC

2.2 Phương pháp nén chỉ số

2.2.3 Nén tập tin posting

Hầu hết các công nghệ trước đã sử dụng docID để nén chỉ số. Tuy nhiên đã nhiều phương pháp nén đã chứng minh được sự khác nhau giữa chỉ số d-graps (viết tắt là khoảng cách d: khoảng cách giữa docID và docID trước) và docID. Các phương pháp nén số nguyên đã được sử dụng với khoảng cách d này. Thực tế đã chứng minh được sử dụng thuật toán nén số nguyên làm giảm giá trị trung bình mà cần phải được nén dẫn đến nén tốt hơn.

Ví dụ: một từ xuất hiện trong 8 tài liệu có số hiệu docId là:

<3, 8, 12, 19, 22, 23, 26, 33>

Chúng ta có thể lưu trữ các khoảng cách là hiệu giữa các docID <3, 5, 4, 7, 3, 1, 3, 7>.

Như vậy khoảng cách giữa các posting là ngắn lại. Vì vậy có thể mã hóa các khoảng cách này ít hơn 20 bits.

Để mã hóa các khoảng cách chúng ta cần sử dụng hai phương thức nén bytewise và nén bitwise tương ứng với việc khoảng cách được mã hóa bởi byte và bit.

a. Khoảng cách byte (Variable byte Code)

Variable byte code (VB code) là phương pháp mã hóa các khoảng cách bởi các bytes Ý tưởng: Trong mỗi byte, sử dụng 7 bits thấp để lưu trữ giá trị của khoảng cách, bit đầu (bit cao nhất) gọi là continuation bit như là bit cờ. Nó thiết lập là 1 cho byte cuối cùng của khoảng cách được mã hóa, ngược lại là 0.

VB code sử dụng ⌊log128(d) ⌋+1 byte để đại diện cho khoảng cách Ví dụ 1: với khoảng cách là 5 thì mã hóa: 1000.0101

Ví dụ 2: Khoảng cách d=267=2*128+11 được đại diện bởi 2 byte 10000010 00001011 Để giải mã cho phương pháp VB code, đọc tuần tự từng byte với bit continuation là 0 và byte kết thúc bởi bit continuation là 1. Sau đó giải nén và ghép các phần 7bits với nhau.

Với phương pháp nén VB code, kích thước nén chỉ số cho tập tài liệu RCV1 đã được thử nghiệm trong [9] là 116MB. Phương pháp này làm giảm 50% so với kích thước khi chưa nén.

Ý tưởng của mã hóa VB cũng có thể được áp dụng cho các số lớn hơn hoặc nhỏ hơn các bytes: từ 32 bits, từ 16bits và từ 4 bits.

Hầu hết hệ thống tìm kiếm thông tin sử dụng phương pháp mã hóa Vbcode đều có sự cân đối giữa thời gian và không gian, thực hiện giải nén nhanh hơn đối với những tập tin lớn nhưng ít hiệu quả về tỷ lệ nén. Vì vậy nếu không gian ổ đĩa có hạn và để đạt được tỷ lệ nén tốt hơn thì nên sử dụng phương pháp mã hóa bởi các bits, đặc biệt là hai hệ mã hóa γ code và δ code.

b. Elias code: γ và δ code Gama (γ) code:

Ý tưởng: Mã hóa các khoảng cách bởi các bits (variable bit) bằng cách chia khoảng cách thành 2 phần: length và offset.

Trong đó: offset là mã nhị phân của khoảng cách nhưng loại bỏ bit đầu Length là unary code của kích thước offset.

Với unary code là một số n được mã hóa bởi một chuỗi gồm n bit 1 theo sau là là một bit 0 biểu diễn như sau:

Nguyên tắc mã hóa: giả sử 2n là khoảng cách G. Với 1≤ G ≤ 2n. Khi đó độ dài của offset là ⌊log2G⌋ bits, còn độ dài của length là ⌊log2G⌋+1 bits.

Do đó tổng độ dài của mã là: 2×⌊log2G⌋+1 bits

Ví dụ: Với khoảng cách có độ dài là 13. Ta có mã nhị phân của 13 là 1101 Loại trừ bít 1 đầu tiên ta có: 101. Vậy Offset là 101

Ta lại có ⌊log213⌋=3. Do đó độ dài length là n=3. Unary code là: 1110

Vậy độ dài khoảng cách được mã hóa bởi dãy bits theo phương pháp γ code là:

1110101.

Để giải mã γ code thì bắt đầu đọc dãy unary code cho đến khi gặp bit 0 thì dừng lại. Phần bit còn lại là phần offset. Tiếp tục đọc phần offset bằng cách thêm bit 1 vào đầu dãy bit offset. Thực hiện tính ra giá trị thập phân cho dãy bit ta tìm được khoảng cách.

Đánh giá phương pháp: khi thực hiện phương pháp nén γ code kích thước của nén chỉ còn 101MB chỉ hơn 1/10 so với kích thước của tập tài liệu khi chưa nén. Thuộc tính của code phụ thuộc vào phân bố khoảng cách (đặt là P)

Với P xác định dựa vào Entropy H(P)

Dự kiến độ dài của code C, gọi là E(C)

Do đó γ code gần như luôn đạt tối ưu. Ngoài ra γ code đạt tỷ lệ nén cao tốt hơn 15% so với mã hóa VB code . Tuy nhiên việc giải mã lại phức tạp và mất nhiều thời gian hơn.

Bởi phương pháp này được chia thành nhiều cấp bit.

Một phần của tài liệu Nghiên cứu các phương pháp nén chỉ số trong các hệ thống tìm kiếm (Trang 37 - 40)

Tải bản đầy đủ (PDF)

(77 trang)