Tổ chức các mục từ có kích thước bằng nhau

Một phần của tài liệu Nghiên cứu và xây dựng ứng dụng từ điển trên điện thoại di động (Trang 53 - 57)

Ưu điểm:

ƒ Dễ dàng truy xuất ngẫu nhiên đến một mục từ khi biết vị trí của nó. Khuyết điểm:

ƒ Gây lãng phí không gian lưu trữ vì các mục từ có kích thước biến động nhiều. Nếu chúng ta tổ chức các mục từ cùng một kích thước thì sẽ có rất nhiều mục từ không dùng hết kích thước đó, điều này dẫn đến bộ nhớ bị lãng phí. Khuyết điểm này rất nghiêm trọng vì bộ nhớ lưu trữ của điện thoại di động là rất hạn chế.

Kích thước tập tin dữ liệu khi chỉ có từ gốc của 3 loại từđiển thông dụng: Anh – Việt (68998 từ), Việt – Anh (91146 từ) và Anh – Anh (121962 từ) được liệt kê trong bảng sau:

Từđiển Ví dụ về từ có kích thước lớn nhất Kích

thước Tkích ổng thước

(KB)

Anh – Việt “ extra-sensory perception” 24 1617 Việt – Anh “không đúng với đặc tính của một ngôn ngữ” 40 3560 Anh – Anh “American Federation of Labor-Congress of

Industrial Organizations” 65 7741

Bảng 5.2 Tổ chức từđiển với cáctừ gốc có kích thước bằng nhau

Trong bảng trên ta phải sử dụng kích thước từ lớn nhất: xét trong điều kiện mỗi ký tựđược biểu diễn bởi 1 byte và kích thước mục từở mỗi từđiển khác nhau.

Quy định kích thước đồng nghĩa với việc hạn chế kích thước của mục từ, do đó có thể không lưu được những mục từ thông dụng có kích thước từ gốc lớn và nghĩa lớn. Khuyết điểm này cũng không kém phần nghiêm trọng vì làm hạn chế khả năng lưu trữ của từđiển và cách thức tổ chức có vẻ không tự nhiên.

5.1.2 Tổ chức các mục từ có kích thước biến động

Ưu điểm:

ƒ Tránh được sự lãng phí bộ nhớ lưu trữ do đó tối ưu bộ nhớ lưu trữ của điện thoại di động.

ƒ Không hạn chế kích thước của các mục từ, cách thức tổ chức tự nhiên hơn.

Khuyết điểm:

ƒ Do kích thước của các mục từ biến động nên cần phải tốn thêm thông tin để có thể truy cập đến một mục từ bất kỳ, nói cách khác là chúng ta phải tổ chức thêm cấu trúc dữ liệu hỗ trợ cho việc tìm kiếm nhanh.

Kích thước tập tin dữ liệu khi chỉ có từ gốc của 3 loại từđiển thông dụng: Anh – Việt (68998 từ), Việt – Anh (91146 từ) và Anh – Anh (121962 từ) được liệt kê trong bảng sau:

Từđiển Tổng kích thước (KB) Kích thước từ trung bình (ký tự)

Anh – Việt 610 9

Việt – Anh 1204 13

Anh – Anh 1334 11

Bảng 5.3 Tổ chức từđiển với cáctừ gốc có kích thước không bằng nhau

Trong bảng trên mỗi từ được lưu với kích thước thật và mỗi ký tự được biểu diễn bởi 1 byte.

Như vậy giải pháp lưu trữ mục từ với kích thước khác nhau đã tiết kiệm được rất nhiều không gian lưu trữ. (Nhỏ hơn từ 2.5 đến 7 lần).

Rõ ràng việc tổ chức các mục từ có kích thước bằng nhau đã bộc lộ nhiều khuyết điểm mà một trong những khuyết điểm nghiêm trọng không thể chấp nhận được đó là gây lãng phí không gian lưu trữ của điện thoại di động. Trong khi đó việc tổ chức các mục từ có kích thước biến động đã thể hiện ưu điểm vượt trội của mình là tránh được sự lãng phí không cần thiết đối với không gian lưu trữ . Do đó dữ liệu của ứng dụng từ điển trong luận văn này sẽđược tổ chức theo cách tổ chức tối ưu này.

Phần tiếp theo sẽ trình bày cách thức nén dữ liệu để sao cho có được kích thước dữ liệu tối ưu nhất có thể có.

5.2 T chc nén d liu

Việc tổ chức các mục từ có kích thước biến động vẫn chưa thể thực sự tối ưu hóa không gian lưu trữ. Kích thước của dữ liệu từ điển vẫn còn lớn so với không gian lưu trữ của điện thoại di động. Ngoài việc tổ chức các mục từ có kích thước biến động ta chỉ có thể làm giảm kích thước dữ liệu bằng cách nén dữ liệu để lưu trữ và khi cần truy xuất thì giải nén dữ liệu. Nhưng việc tổ chức nén và giải nén dữ liệu khi cần thiết có thể làm giảm tốc độ truy xuất, do đó chúng ta cần phải lựa chọn phương pháp nén và giải nén sao cho tốc độ truy xuất có thể chấp nhận được. Có hai chiến lược nén dữ liệu là: nén toàn bộ dữ liệu và nén từng khối dữ liệu. Ta hãy lần lượt phân tích mặt mạnh, mặt yếu của từng chiến lược nén để chọn ra chiến lược nén thích hợp cho bài toán xây dựng từđiển trên thiết bị di động.

5.2.1 Nén toàn bộ dữ liệu (adsbygoogle = window.adsbygoogle || []).push({});

Ưu điểm:

ƒ Vì dữ liệu được nén toàn bộ nên nếu sử dụng thuật toán nén tốt ta có thể nén nhỏ tối ưu.

Khuyết điểm:

ƒ Khi cần tra cứu một từ dữ liệu phải được giải nén toàn bộ kể cả những phần không cần thiết. Việc giải nén toàn bộ làm cho ứng dụng chậm và tốn không gian lưu trữ tạm không cần thiết.

5.2.2 Nén từng khối dữ liệu

Ưu điểm:

ƒ Dữ liệu được nén thành từng khối, khi cần truy xuất đển một mục từ nào ta chỉ cần giải nén khối nén chứa dữ liệu tương ứng với mục từđó. Nhờ vậy mà thời gian giải nén và không gian lưu trữ tạm được giảm đáng kể. Khuyết điểm:

ƒ Do dữ liệu được nén theo từng khối nên hiệu quả của việc nén từng khối sẽ thấp hơn hiệu quả của việc nén toàn bộ.

Như vậy chỉ có chiến lược nén từng khối với khuyết điểm có thể chấp nhận mới có thểđáp ứng yêu cầu vừa có thể nén được dữ liệu vừa có thể truy xuất ngẫu nhiên nhanh.

Chiến lược nén từng khối dữ liệu đòi hỏi phải tổ chức một cấu trúc lưu trữ thích hợp để có thể truy xuất ngẫu nhiên nhanh. Cách thức nén và cấu trúc lưu trữ như thế được gọi là chuẩn nén. Hiện nay, trên thế giới chuẩn nén Dictzip được sử dụng rộng rãi nhất cho việc nén dữ liệu từđiển.

5.2.3 Chuẩn nén Dictzip

Chuẩn nén Dictzip được giới thiệu lần đầu tiên vào năm 1996 bởi Rickard E.Faith, và được phát triển với nguồn mở. Chuẩn nén này có cách thức nén và cấu trúc lưu trữ lần lượt như sau.

5.2.3.1 Cách thức nén

Dictzip dựa vào chuẩn nén Gzip với mục đích là các chương trình giải nén tập tin Gzip đều giải nén được tập tin Dictzip. Dictzip khác Gzip ở chỗ một phần thông tin mở rộng được thêm vào tập tin nén Gzip để lưu thêm thông tin về các khối nén. Các chương trình giải nén tập tin Gzip sẽ bỏ qua phần thông tin mở rộng này. Các chương trình đọc tập tin Dictzip sẽđọc phần thông tin thêm này để có thể truy xuất ngẫu nhiên trong tập tin.

5.2.3.2 Cấu trúc lưu trữ

Ý tưởng cơ bản của cấu trúc lưu trữ này là dữ liệu gốc sau khi nén sẽ thành các khối nén có kích thước tối đa là 64 KB. Nghĩa là Dictzip nén các khối khối dữ liệu (của tập tin ban đầu) không biết trước kích thước li thành các khối dữ liệu nén đã biết kích thước bl (bl tối đa 64KB). Khối cuối cùng có thể không có cùng kích thước với các khối trước. Kích thước của từng khối dữ liệu sau khi giải nén được lưu ở phần thông tin mở rộng thêm vào nói trên. Khi cần truy cập ngẫu nhiên ta dựa vào vị trí, kích thước cần đọc và thông tin đầu tập tin nén mà lấy ra các khối nén tương ứng và giải nén chúng.

Hình 5.1 Ý tưởng cấu trúc lưu trữ chuẩn Dictzip

Một phần của tài liệu Nghiên cứu và xây dựng ứng dụng từ điển trên điện thoại di động (Trang 53 - 57)