Xây dựng bộ mã Huffman

Một phần của tài liệu Xây dựng kho dữ liệu an toàn với mã huffman (Trang 68)

d. Ứng dụng mã hóa Huffman để nén file

5.4. Xây dựng bộ mã Huffman

Hình CIII.IV – 1 Mô hình xây dựng bộ mã Huffman

Từ dữ liệu thu được trong việc “Xử lý văn bản và liệt kê tỷ lệ xuất hiện của các từ”, áp dụng giải thuật mã Huffman xây dựng hai bộ dữ liệu bao gồm:

- Cây nhịn phân mã Huffman: là một cây nhị phân với :

oLá là các từ

oBên trái của một node là bít 0

oBit 1 nằm bên phải node.

oCây nhịn phân Huffman được sử dụng để giải mã các văn bản đã nén. - Bảng mã hóa:

oLà một tập dữ liệu với định dạng: <Ký tự> - <Chuỗi bit nhị phân>

oBảng mã hóa được sử dụng để nén các file văn bản tiếng Việt. 5.5. Má hóa văn bản Tiếng việt sử dụng phương pháp mã Vigenere

5.5.1. Yêu cầu bài toán

69 5.5.2. Mô hình xử lý

Hình CIII.V.2 – Mô hình nén văn bản Tiếng Việt với mã hóa Vigenere

5.5.3. Giải thích mô hình xử lý

Bước 1: Từ kết quả việc phân tích các tập văn bản mẫn, thu được một bộ dữ liệu “thống kê từ trong Tiếng Việt”

a. Các bước để mã hóa một văn bản

- Bước 2: sử dụng bộ dữ liệu “thống kê từ trong Tiếng Việt” xây dựng lên “Hình vuông Vigenere”

- Bước 4: Mã hóa văn bản:

o Quá trình này sử dụng đầu vào là:  “hình vuông Vigenere”  “văn bản gốc” cần mã hóa.

 Người dùng nhập từ khóa để mã hóa văn bản

o Đầu ra: văn bản đã được mã hóa

b. Các bước để giải mã văn bản

- Bước 2: sử dụng bộ dữ liệu “thống kê từ trong Tiếng Việt” xây dựng lên “Hình vuông Vigenere”

70 - Bước 5: Giải mã văn bản

o Đầu vào:

 “hình vuông Vigenere”  Văn bản đã được mã hóa

 Người dùng nhập từ khóa để giải mã văn bản

o Đầu ra: Văn bản gốc trước khi mã hóa

c. Ghi chú

Bước 2 luôn được thực hiện lại tại mỗi quá trình nén và giải nén do bộ dữ liệu mẫu cho mã Huffman có thể được cập nhật liên tục theo yêu cầu sử dụng cũng như sự phát triển của ngôn ngữ theo thời gian.

5.6. Nén và giải nén văn bản Tiến Việt sử dụng phương pháp mã Huffman 5.6.1. Yêu cầu bài toán 5.6.1. Yêu cầu bài toán

71 5.6.2. Mô hình xử lý

Hình CIII.VI – 1 Mô hình nén và giải nén văn bản

Khi có một tài liệu (văn bản tiếng Việt) cân được nén, quá trình “nén dữ liệu” sẽ tiến hành:

- Bóc tách văn bản đầu vào, tách thành các từ (đơn – ghép) có nghĩa

- Mang đối chiếu các từ đã bóc tách được với bản mã Huffman để chuyển đổi từ đó thành một dãy bit.

 Kết thúc quá trình nén dữ liệu: văn bản được chuyển thành một chuỗi bít 0,1. Khi cần giản nén dữ liệu, quá trình giải nén:

- Mang chuỗi bít nhị phân 0-1 và đối chiếu vào duyệt cây nhị phân Huffman để tìm ra từ (đơn – ghép) tương ứng.

72 5.6.3. Kết quả thực hiện

a. Nén dữ liệu

Cho một chuỗi văn bản đầu vào cần nén:

Các danh mục tài sản danh mục đơn vị sử dụng Đơn vị sử dụng tài sản bộ phận sử dụng loại tài sản hồ sơ giấy tờ nhãn hiệu chức danh được sử dụng tài sản được giao diện chuyển sang các ứng dụng phần mềm quản lý Đăng ký tài sản phần mềm Kế toán nội bộ và phần mềm Tài chính nội ngành

Hệ thống tiến hành phân tích văn bản và lọc ra các từ đơn/ghép có nghĩa:

Các danh mục tài sản danh mục đơn vị sử dụng Đơn vị sử dụng tài sản bộ phận sử dụng loại tài sản hồ sơ giấy tờ nhãn hiệu chức danh được sử dụng tài sản được giao diện chuyển sang các ứng dụng phần mềm quản lý Đăng ký tài sản phần mềm Kế toán nội bộ phần mềm Tài chính nội ngành

73 Các từ đơn/ghép này được man đối chiếu với bản mã Huffman đã được xây dựng và tiến hành nén dữ liệu, kết quả trả về một chuỗi nhị phân:

01100000110010110101100101000110101111110101011011110011010101 000001101101000100111000110000010101010110100101010000110101010111 111010100100010110110101001101001110011001010011110000110001

b. Giải nén dữ liệu

Khi tiến hành giải mã, hệ thống lấy chuỗi nhị phân :

01100000110010110101100101000110101111110101011011110011010101 000001101101000100111000110000010101010110100101010000110101010111 111010100100010110110101001101001110011001010011110000110001

Để duyệt trên cây mã hóa Huffman, từ đó trả về kết quả giải nén:

Các danh mục tài sản danh mục đơn vị sử dụng Đơn vị sử dụng tài sản bộ phận sử dụng loại tài sản hồ sơ giấy tờ nhãn hiệu chức danh được sử dụng tài sản được giao diện chuyển sang các ứng dụng phần mềm quản lý Đăng ký tài sản phần mềm Kế toán nội bộ và phần mềm Tài chính nội ngành

74 5.6.4. Giới thiệu chương trình nén và giải nén văn bản tiếng Việt

a. Cửa sổ Form xây dựng bộ mã Huffman:

Hình CIII.VI.4.a – 1 Cửa sổ chức năng xây dựng bộ mã Huffman

Từ cửa sổ ứng dụng, chọn têm tin mẫu sẽ dùng dữ liệu mẫu phân tích tỷ lệ xuất hiện các từ.

Sau khi nhấp chuột vào nút “Đếm từ” hệ thống tiến hành phân thích tệp tin mẫu và xây dựng lên bộ mã Huffman.

Cây nhị phân Huffman và bộ mã Huffman được phần mềm lưu lại để sử dụng cho việc nén/giải nén văn bản tiếng Việt.

75

b. Nén văn bản tiếng Việt

Hình CIII.VI.4.b – 1 Cửa sổ chức năng mã hóa văn bản

Từ tab “Mã hóa”, người dùng nhấp chọn tệp tin cần nén (mã hóa), sau đó nhấp chuột vào nút “Mã hóa dữ liệu” để tiến hành nén văn bản.

Hệ thống sử dụng bộ mã Huffman đã được xây dựng để tiến hành nén văn bản, tệp tin nén được lưu cùng thư mục với tệp tin đầu vào.

76

c. Giải nén văn bản tiếng Việt.

Hình CV.VI.4.c – 1 Cửa sổ chức năng giải mã văn bản

Chọn tệp tin cần giải nén, sau đó nhấp nút “giải mã”, phần mềm sử dụng cây mã Huffman đã được xây dựng để tiến hành duyệt cây và giải mã tệp tin nén.

Sau khi giải nén, tệp tin gốc được lưu cùng thu mục với tệp tin mã hóa (tệp tin đầu vào).

77 KẾT LUẬN

Qua quá trình tìm hiểu, nghiên cứu, học hỏi từ các dự án mã nguồn mở về xây dựng search-engine cũng như các hệ thống kho lưu trữ, thư viện điện tử … cùng với sự hướng dẫn tận tình của giáo viên hướng dẫn, tôi đã hoàn thành luận văn với những kết quả như sau:

Luận văn đã nêu ra được giải pháp kỹ thuật, cài đặt thành công các thuật toán mã hóa và nén văn bản Tiếng việt, lựa chọn công nghệ điện toán đám mây và xây dựng thành công một hệ thống lưu trữ đám mây; Giúp giải quyết các bài toán về lưu trữ, bảo mật, tối ưu dung lượng lưu trữ cũng như tiết kiện kinh phí đầu tư, đáp ứng được nhu cầu tin học hóa tại các cơ quan, đơn vị và cả các doanh nghiệp lớn cũng như vừa và nhỏ.

Kết quả đạt được:

- Nghiên cứu, tìm hiểu cơ chế hoạt động, cách thức lưu trữ và chia sẻ dữ liệu, sử dụng tài nguyên phần cứng cũng như phần mềm trong công nghệ điện toán đám mây trên môi trường ảo hóa.

- Nghiên cứu và cài đặt lại các thuật toán Huffman, Vigenere cho việc mã hóa cũng như nén các văn bản tiếng Việt.

- Hoàn thành cơ bản việc xây dựng thử nghiệm hệ thống kho lưu trữ đám mây. - Hệ thống chạy trên môi trường web và thông qua phần mềm client bằng ngôn ngữ

Java. Hạn chế:

- Chưa đưa vào triển khai thực tế để kiểm tra hiệu năng phần mềm cũng như tính thân thiện với người sử dụng.

- Tốc đỗ sử lý với các văn bản tiếng Việt còn chậm.

- Chưa xây dựng hoàn thiện phần mềm phía client (cho việc mã hóa, nén và upload văn bản lên đám mây lưu trữ) để đáp ứng yêu cầu cài đặt trên các thiết bị di động hay thông qua trình duyệt web

78 TÀI LIỆU THAM KHẢO

- Nén dữ liệu:

o http://vi.wikipedia.org/wiki/N%C3%A9n_d%E1%BB%AF_li%E1%BB%8 7u

- Lý thuyết thông tin:

o http://vi.wikipedia.org/wiki/L%C3%BD_thuy%E1%BA%BFt_th%C3%B4 ng_tin - Claude Shannon: o http://vi.wikipedia.org/wiki/Claude_Shannon o http://vi.wikipedia.org/wiki/M%E1%BA%ADt_m%C3%A3_h%C3%B3a_ kh%C3%B3a_c%C3%B4ng_khai - HDFS: o http://www.ibm.com/developerworks/vn/library/data/2013Q1/dm- 1209hadoopbigdata/ o http://ciren.gov.vn/index.php?option=com_content&view=article&id=677:s -cn-thit-phi-m-nganh-ao-to-trinh-i-hclu-tr-tai-liu-in-t-nhm-ap-ng-nhu-cu-hi- nhp-ca-vit-nam-hin-nay&catid=47:tin-cong-nghe-thong-tin&Itemid=53 o http://kcntt.duytan.edu.vn/Home/ArticleDetail/vn/166/2306/bai-02-luu-tru- va-xu-ly-thao-tac-tren-mo-hinh-dien-toan-dam-may-kien-truc-dien-toan- dam-may o http://foxman.com.vn/vn/mot-so-van-de-an-toan-cho-dien-toan-dam- may_41.html o http://xahoithongtin.com.vn/cac-dich-vu-luu-tru-du-lieu-tren-may-pho- bien-nhat-hien-nay-d22245.html o http://expressmagazine.net/posts/view/2037/gioi-thieu-so-luoc-apache- hadoop

Một phần của tài liệu Xây dựng kho dữ liệu an toàn với mã huffman (Trang 68)

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

(78 trang)