Ứng dụng độ tương đồng chuỗi trong chống trùng lặp cho các tập dữ liệu văn bản có cấu trúc dạng bảng

66 523 1
Ứng dụng độ tương đồng chuỗi trong chống trùng lặp cho các tập dữ liệu văn bản có cấu trúc dạng bảng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TRƯƠNG LÊ QUÂN ỨNG DỤNG ĐỘ TƯƠNG ĐỒNG CHUỖI TRONG CHỐNG TRÙNG LẶP CHO CÁC TẬP DỮ LIỆU VĂN BẢN CÓ CẤU TRÚC DẠNG BẢNG Ngành: Công nghệ Thông tin Chuyên ngành: Kỹ thuật phần mềm Mã số: 60.48.01.03 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: Tiến sĩ Hoàng Xuân Tùng Hà Nội – 2015 Lời cảm ơn Tôi xin chân thành cảm ơn TS Hoàng Xuân Tùng, người tận tình hướng dẫn suốt trình làm luận văn Những ý kiến đóng góp bảo thầy trình kim nam giúp hoàn thành mục tiêu nghiên cứu Tôi xin cảm ơn tập thể thầy cô giáo trường Đại học Công nghệ - Đại học Quốc gia Hà Nội giảng dạy tạo điều kiện tốt cho thời gian học tập trường nghiên cứu làm luận văn Tôi xin gửi lời cảm ơn tới người đàn anh thầy hướng dẫn người cho lời khuyên cần thiết động viên người trình làm luận văn Cuối xin gửi lời cảm ơn tới gia đình bạn bè người đứng sau cổ vũ cho suốt quãng thời gian học tập làm luận văn Lời cam đoan Tôi xin cam đoan viết luận văn sản phẩm cá nhân tôi, không chép từ người khác Trong toàn luận văn điều trình bày cá nhân trích dẫn từ nhiều nguồn tài liệu Tất tài liệu tham khảo có xuất xứ rõ ràng trích dẫn hợp pháp Tôi xin hoàn toàn chịu trách nhiệm hình thức kỷ luật theo quy định cho lời cam đoan Hà Nội, ngày 27 tháng 10 năm 2015 Trương Lê Quân Mở đầu Trong luận văn trình bày phương pháp giải khó khăn thực phương pháp chống trùng lặp thông thường tập liệu văn có cấu trúc dạng bảng Khó khăn xuất có lỗi nhập liệu, sai sót gõ máy dẫn tới việc phương pháp thông thường tìm liệu bị trùng lặp Để giải khó khăn đề xuất phương pháp chống trùng lặp dựa vào cách tính độ tương đồng chuỗi nhằm đạt kết cao tìm liệu trùng lặp tập liệu văn xảy lỗi nhập liệu Bằng phương pháp tính độ tương đồng liệu nhập vào tập văn cho dù có xảy lỗi nhập liệu bị phát xử lý Mặc dù môi trường thử nghiệm thiếu thốn, tập liệu đầu vào phương pháp thực nghiệm độ tương đồng kết thực nghiệm rằng: phương pháp chống trùng lặp ứng dụng độ tương đồng giải vấn đề nhập liệu Tỉ lệ sai nhập liệu lớn hiệu suất phương pháp cao Ngay không xảy lỗi nhập liệu hiệu suất phương pháp ngang với phương pháp cũ Điểm yếu thời gian chạy, chưa thể thực nghiệm phương pháp giải vấn đề thời gian nêu lý thuyết Để đánh giá cách công cần thử nghiệm lớn với phương pháp tối ưu Tuy nhiên kết luận luận văn là: Phương pháp chống trùng lặp ứng dụng độ tương đồng chuỗi phần giải khó khăn xử lý liệu tập văn có cấu trúc Mục Lục DANH MỤC CÁC TỪ VIẾT TẮT DANH SÁCH HÌNH VẼ DANH SÁCH BẢNG .9 Chương 1: Trùng lặp liệu phương pháp chống trùng lặp .10 1.1 Các vấn đề trùng lặp liệu 10 1.2 Chống trùng lặp liệu 11 1.2.1 Khái niệm 11 1.2.2 Lợi ích chống trùng lặp liệu 12 1.3 Ứng dụng chống trùng lặp liệu 13 1.3.1 Backup liệu 13 1.3.2 Nhân liệu 14 1.3.3 Lưu trữ liệu 14 Chương 2: Phân loại phương pháp chống trùng lặp liệu 17 2.1 Các phương pháp chống trùng lặp phân chia theo liệu 17 2.1.1 File Base Compare .17 2.1.2 File Level Hashing .17 2.1.3 Block Level Hashing 18 2.1.4 Sub Block Level Hashing 19 2.1.5 Delta Versioning 20 2.1.6 So sánh phương pháp chống trùng lặp 21 2.2 Các phương pháp chống trùng lặp theo cách thức thực .23 2.2.1 Inline 23 2.2.2 Post-process 24 2.2.3 Client Base 25 2.2.4 Target-base 25 2.2.5 NAS-based 26 2.2.6 SAN-based 26 2.2.7 Global 27 2.3 Các đoạn có chiều dài cố định đoạn có chiều dài linh hoạt 28 Chương Ứng dụng độ tương đồng chuỗi chống trùng lặp liệu 31 3.1 Vấn đề phương pháp chống trùng lặp cho tập liệu văn có cấu trúc dạng bảng 31 3.2 Ứng dụng độ tương đồng chuỗi vào chống trùng lặp .32 3.2.1 Sử dụng khoảng cách chuỗi 32 3.2.2 Phương pháp sử dụng phân cụm k-means 36 3.2.3 Phương pháp sử dụng thuật toán LSH (locality sensitive hashing) 39 Chương Thực nghiệm đánh giá kết 42 4.1 Tổng quan thử nghiệm 42 4.2 Thử nghiệm 43 4.3 Thử nghiệm 46 4.4 Đánh giá kết 48 4.5 Các thử nghiệm khác .49 4.5.1 Thử nghiệm chọn cận cách thống kê .49 4.5.2 Thử nghiệm đánh giá tác động cận .50 4.6 Thực nghiệm thực tế 52 4.7 Kết luận hướng phát triển tương lai 53 4.7.1 Kết luận 53 4.7.2 Hướng phát triển tương lai 54 TÀI LIỆU THAM KHẢO 55 Tiếng Anh .55 Phụ lục 57 DANH MỤC CÁC TỪ VIẾT TẮT Viết tắt LAN WAN NAS SAN IP FC LSH Tên đầy đủ Local Area Network Wide Area Network Network Attached Storage Storage Area Network Internet Protocol Fibre Channel Locality Sensitive Hash DANH SÁCH HÌNH VẼ Hình 1.1 Chống trùng lặp liệu [3] 12 Hình 1.2 Lưu trữ liệu không sử dụng chống trùng lặp [3] 15 Hình 1.3 Lưu trữ liệu sử dụng chống trùng lặp [3] 15 Hình 2.1 File Base Compare 17 Hình 2.2 Quy trình hoạt động File Level Hashing 18 Hình 2.3 Quy trình làm việc Block Level Hashing 19 Hình 2.4 Chia nhỏ File 19 Hình 2.5 Dữ liệu sau xóa block/sub-block .20 Hình 2.6 Inline 24 Hình 2.7 Post-process 25 Hình 2.8 Client Base .25 Hình 2.9 Target-base 26 Hình 2.10 NAS-Based 26 Hình 2.11 SAN-based 27 Hình 2.12 Global 28 Hình 13 Chia đoạn có chiều dài cố định [1] .29 Hình 14 Chia đoạn có độ dài linh hoạt [1] 29 Hình 3.1 Sử dụng phương pháp chống trùng lặp bình thường .31 Hình 3.2 Quy trình chống trùng lặp sử dụng độ tương đồng chuỗi 33 Hình 3.3 Quy trình đánh giá độ tương đồng chuỗi .33 Hình Lưu đồ phương pháp tương đồng chuỗi 35 Hình 3.5 Thuật toán K-means .36 Hình 3.6 Lưu đồ thuật toán K-means .37 Hình 3.7 Lưu đồ phương pháp sử dụng K-means 38 Hình Mô hình thuật toán LSH [10] 40 Hình Lưu đồ phương pháp ứng dụng LSH .41 Hình 4.1 Kết thu sau thực nghiệm .44 Hình 4.2 Kết thu sau thực nghiệm .47 Hình 4.3 Biểu đồ két thực nghiệm 51 DANH SÁCH BẢNG Bảng 2.1 So sánh phương pháp 23 Bảng 4.1 Sự thay đổi file đầu vào thử nghiệm 44 Bảng 4.2 Kết thực nghiệm 45 Bảng 4.3 Sự thay đổi file gốc thử nghiệm 46 Bảng 4.4 Kết thực nghiệm 48 Bảng 4.5 File đầu vào thực nghiệm thay đổi cận 50 Bảng 4.6 Bảng kết thực nghiệm tác động cận 52 10 Chương 1: Trùng lặp liệu phương pháp chống trùng lặp 1.1 Các vấn đề trùng lặp liệu Thông tin phần quan trọng công nghệ thông tin, công ty hay tổ chức muốn hoạt động tốt cần phải có cách sử dụng thông tin cách hợp lý Chính mà liệu – thứ tạo nên thông tin cần phải quản lý cách tốt bảo vệ cách hiệu quả, nhiên lượng liệu lớn yêu cầu không gian lưu trữ việc quản lý ngày gia tăng Sự gia tăng liệu dẫn tới vấn đề nghiêm trọng khác, trùng lặp liệu Trùng lặp liệu việc liệu có nội dung giống nhiều nguyên nhân khác mà bị lưu lại nhiều lần Một hậu mà trùng lặp liệu gây hao phí cho không gian lưu trữ Dữ liệu trùng lặp lớn hao phí nhiều Ví dụ người bán hàng gửi giới thiệu sản phẩm khoảng 10mb cho khoảng 500 người báo cáo phải chứa file khác cho dù nội dung chúng phần lớn giống nhau, lúc dung lượng phải lưu trữ khoảng 5gb, đương nhiên số lớn phải gửi 10 giới thiệu, 100 giới thiệu sao, chắn số nhỏ Hơn phần lớn liệu giống khiến cho việc lưu trữ liệu trở nên hoang phí, block giống lại lưu trữ nhiều lần khiến chi phí cho không gian lưu trữ tăng lên nhanh chóng mà khiến cho chi phí backup liệu tăng lên tới mức chóng mặt (Chi tiết xem [1]) Theo [2] không công ty lớn xảy việc trùng lặp liệu mà đám mây Đám mây hồ liệu lớn nơi liệu lưu trữ Thay việc phải sử dụng hay nhiều máy chủ tất liệu đám mây ảo hóa thông qua internet Điểm mạnh việc lưu trữ đám mây tính mềm dẻo, khả tính toán, tính đàn hồi co giãn tài nguyên, người sử dụng không cần phải tính toán dung lượng lưu trữ mà cần trả tiền có dung lượng cần thiết Chính mà việc trùng lặp liệu xảy đám mây lại nhiều Lấy ví dụ đơn giản ông A yêu thích nhạc cổ điển, ông ta đưa file X lên đám mây, ta lại có thêm ông B yêu thích nhạc cổ điển trùng hợp ông ta yêu thích X đưa lên đám mây Hiện đám mây có X phải lưu trữ hai Như chi phí cho file, liệu tốn gấp đôi, chưa kể tới việc số người dùng đám mây lúc nhiều, số lượng liệu trùng lặp lúc lớn, gấp đôi mà gấp ba, gấp bốn chí gấp hàng chục lần Nếu biện pháp giải vấn đề việc lãng phí tài nguyên trở thành vấn đề lớn, chi phí cho tài nguyên dư thừa trở thành gánh nặng nhà cung cấp 52 Tỉ lệ trùng lặp liệu (%) Cận Số lượng dòng liệu file đầu vào 100 20% Số lượng dòng liệu thu sau thực nghiệm 90 100 20% 0,9 80 100 20% 0,8 76 100 20% 0,7 61 100 20% 0,6 21 Số lần thực Bảng 4.6 Bảng kết thực nghiệm tác động cận Bằng thực nghiệm nhận tầm quan trọng cận với phương pháp chống trùng lặp ứng dụng độ tương đồng chuỗi Nó trực tiếp định độ xác phương pháp Giống nói lý thuyết, cận cao thấp không gây ảnh hưởng tới kết cuối Các liệu trùng lặp không giải cách triệt để liệu không trùng lặp bị xóa Vì chọn lựa cận cần cẩn thận, tốt tìm cận cách sử dụng phương pháp thống kê nêu thực nghiệm 4.6 Thực nghiệm thực tế Trong trình nghiên cứu thực nghiệm thực tế với liệu văn nhiên kết không ý muốn cụ thể là: - - Để thực thí nghiệm sử dụng mẫu văn có cấu trúc dạng bảng nhiên liệu thực tế, khong có tỷ lệ phần trăm liệu lỗi rõ ràng, việc sai lỗi tả không dừng mức 90% thử nghiệm Chương trình sử dụng chương trình chống trùng lặp liệu Kết thu chưa khả quan, có nhiều lỗi phát sinh thực chống trùng lặp liệu thực tế Cụ thể sau: - Khi đặt giới hạn cận lên 90% có liệu trùng lặp không bị xử lý lỗi tả lớn giới hạn đặt Khi giảm giới hạn cận xuống 80% có liệu không trùng lặp bị xóa 53 Tóm lại thực nghiệm thực tế yêu cầu lý thuyết chưa đạt kết tốt cần nhiều phát triển tương lai Cần thử nghiệm quy mô lớn để đánh giá mức độ sai lầm nhập liệu tỷ lệ lỗi liệu không trùng lặp 4.7 Kết luận hướng phát triển tương lai 4.7.1 Kết luận Trong luận văn trình bày nhược điểm phương pháp chống trùng lặp thông thường tập liệu có cấu trúc cách giải nhược điểm trên, sử dụng độ tương đồng chuỗi Ngoài phương pháp ngây thơ đơn giản giới thiệu hai cách nhằm cải thiện thời gian phương pháp Mục tiêu cuối vừa giữ hiệu suất làm việc cao mà đảm bảo thời gian chạy tương đương với phương pháp chống trùng lặp thông thường Tuy chưa kịp thực nghiệm thời gian phương pháp cải tiến thông qua việc so sánh hiệu suất phương pháp chống trùng lặp thông thường với phương pháp ngây thơ thu kết khả quan, từ có kết luận sau:  Hiệu suất phương pháp chống trùng lặp ứng dụng độ tương đồng chuỗi tập liệu văn có cấu trúc dạng bảng cao so với phương pháp chống trùng lặp thông thường  Khi lỗi nhập liệu cao hiệu lớn cho dù trùng lặp liệu không xảy lỗi nhập liệu giải không tỏ thua với phương pháp thông thường  Vì lượng liệu nhỏ nên thời gian chạy không đáng kể nhiên tăng lên nhiều tùy thuộc vào lượng liệu Từ kết luận cho việc ứng dụng độ tương đồng chuỗi vào chống trùng lặp liệu xử lý liệu tập văn có cấu trúc tốt phương pháp chống trùng lặp thông thường Tuy nhiên kết nhiều hạn chế, tập liệu văn mà sử dụng làm đầu vào vào chưa thể đại diện cho tất tập liệu khác Cần phải có thực nghiệm rộng với nhiều loại liệu văn Ngoài phương pháp nhằm giảm thời gian xử lý cần phải đưa vào thực nghiệm để kiểm tra tính đắn hiệu suất làm việc Tuy nhiên tin kết thu lại khả quan phù hợp với nêu lý thuyết 54 4.7.2 Hướng phát triển tương lai Hiện tiếp tục thực nghiệm phương pháp tập liệu văn khác sql, csv… Bằng cách mở rộng dạng liệu văn đầu vào kiểm chứng lại lý thuyết hoàn chỉnh Không bắt đầu tăng dung lượng tập liệu đầu vào cách tăng số hàng số cột Tôi muốn kiểm tra xem liệu tăng lên tới hàng ngàn dòng, chí hàng chục ngàn dòng kết có ý không thời gian để xử lý liệu Thử nghiệm thực tiễn yêu cầu cần thiết môi trường thực khác biệt hoàn toàn với thí nghiệm lý tưởng Trong lần thực nghiệm gần việc đưa phương pháp vào thực tiễn gặp khó khan định, ví dụ xóa nhầm liệu không xóa liệu trùng lặp Trong tương lai cố gắng tìm cách để giải vấn đề nhằm ứng dụng thực tiễn Trong tương lai không xa đưa lý thuyết lại vào thực nghiệm, phương pháp giải vấn đề thời gian mà nêu kiểm chứng kết Từ tiếp tục cải thiện phương pháp đồng thời bắt đầu đưa chúng vào ứng dụng thực tiễn 55 TÀI LIỆU THAM KHẢO Tiếng Anh [1] S W Mark R.Coppock, Data Deduplication For Dummies, 2011 [2] D S S Deepak Mishra, Comprehensive study of data de-duplication, 2013 [3] A N Christopher Poelker, Storage Area Network for Dummies, 2011 [4] W J B Dutch T Meyer, A Study of Practical Deduplication, 2011 [5] C Poelker, "computerworld.com," [Online] Available: http://www.computerworld.com/article/2475300/cloud-security/datadeduplication-in-the-cloud-explained part-three implementationmethods.html [6] D Lin, An Information-Theoretic Definition of Similarity [7] G Navarro, A guided tour to approximate string matching, 2001 [8] N S N D M M C D P R S A Y W Tapas Kanungo, "An EfficientkMeans Cụming Algorithm:Analysis and Implementation" [9] M Bilenko, "Learnable Similarity Functions and Their Applications to Record Linkage and Cụming," 2003 [10] J Leskovec [Online] Available: http://web.stanford.edu/class/cs246/slides/03-lsh.pdf [11] J Z J Z Xinran Jiang, Enhance Data De-Duplication Performance With Multi-Thread Chunking, 2014 [12] J M S J G L C Y Y W K Ider Lkhagvasuren, Byte-index Chunking Algorithm for Data Deduplication System, 2013 [13] S Y P J G L Y W K Ho Min Jung, Efficient Data Deduplication System Considering File, 2012 [14] A B A N P G Vandana Dixit Kaushik, An Efficient Algorithm for Deduplication of, 2012 [15] R K A K A O J L S S Ahmed El-Shimi, Primary Data Deduplication – Large Scale Study and System Design, 2012 56 [16] K E D B Mark Lillibridge, Improving Restore Speed for Backup Systems that Use Inline, 2013 [17] Y J D H D Guanlin Lu, Frequency Based Chunking for Data DeDuplication, 2010 [18] L Whitehouse, HP StoreOnce Deduplication Software, 2010 [19] S S J L Biplob Debnath, ChunkStash: Speeding up Inline Storage Deduplication using Flash Memory, 2010 [20] L D R Amatruda, Back up and recovery: accelerating efficiency and driving down IT cost using data deduplication, 2010 [21] P Bille, Asurvey on tree edit distance and related problems, 2004 57 Phụ lục Khoảng cách chuỗi ký tự 1.1 Định nghĩa Khoảng cách chuỗi ký tự khác biệt chuỗi ký tự hay nói cách khác số bước để biến chuỗi thành chuỗi khác Để tính độ tương đồng cần phải tìm khoảng cách chuỗi kí tự Có nhiều cách định nghĩa khác khoảng cách chuỗi ký tự sử dụng tập cách xử lý chuỗi khác Ví dụ khoảng cách Hamming, khoảng cách Levenshtein 1.2 Khoảng cách Hamming Trong khoa học máy tính khoảng cách Hamming hai dãy kí tự có chiều dài số ký tự vị trí tương đương hai dãy có giá trị khác Nói cách khác khoảng cách Hamming đo số ký tự cần phải thay đổi để biến chuỗi ký tự sang chuỗi ký tự khác Ví dụ: Khoảng cách Hamming 10010010 11010010 Khoảng cách Hamming 1235678 1234677 Khoảng cách Hamming “quân” “quây” Khoảng cách Hamming đặt theo tên ông Richard Hamming, người giới thiệu lý thuyết tài liệu có tính sở ông mã phát lỗi sửa lỗi Khoảng cách ứng dụng nhiều lĩnh vực Nó sử dụng viễn thông để tính số bit từ nhị phân bị đổi ngược cách thức để ước tính số lỗi xảy trình truyền thông, mà gọi khoảng cách tín hiệu Việc sử dụng khoảng cách Hamming ứng dụng tin sinh học so sánh hai đoạn gen có chiều dài Khoảng cách Hamming ứng dụng số ngành khác mã hóa… Đặc tính khoảng cách Hamming: Đối với chiều dài cố định “n” khoảng cách Hamming độ đo không gian vecto từ có chiều dài trên, thỏa mãn yêu cầu tính chất số không âm, có khả đáp ứng tính bất khả phân định tính đối xứng chứng minh cách dễ dàng phép quy nạp toàn phần thỏa mãn bất đẳng thức tam giác 58 Khoảng cách Hamming từ a b gọi trọng lượng Hamming phép toán a-b Đối với hai dãy kí tự nhị phân a b, phép toán tương đương với a XOR b Khoảng cách Hamming dãy nhị phân tương với khoảng cách Manhattan giao điểm hình lập phương cấp n, n chiều dài từ Ví dụ thuật toán Harming: Dưới hàm C để tính toán khoảng cách Hamming hai chuỗi Thời gian chạy hàm tỷ lệ với khoảng cách Hamming với số bit nhập vào, tức khoảng cách lớn thời gian chạy lâu cho dù 10 bit hay 20 bit không quan trọng int hamming_distance(unsigned x, unsigned y) { int dist = 0; unsigned val = x ^ y; // Count the number of bits set while (val != 0) { // A bit is set, so increment the count and clear the bit dist++; val &= val - 1; } // Return the number of differing bits return dist; } Bên cạnh khoảng cách Hamming có nhược điểm rõ ràng: hoạt động chuỗi ký tự có chiều dài hai chuỗi chiều dài sao? Chắc chắn khoảng cách Hamming không hoạt động trường hợp Để giải vấn đề hai chuỗi có chiều dài không ta có loại khoảng cách gọi Khoảng cách Levenshtein 59 1.3 Khoảng cách Levenshtein Trong lý thuyết thông tin khoa học máy tính, khoảng cách Levenshtein thể khoảng cách chuỗi ký tự Khoảng cách Levenshtein chuỗi S chuỗi T số bước để biến chuỗi S thành chuỗi T thông qua phép biến đổi là:  Xóa ký tự  Thêm ký tự  thay ký tự ký tự khác Khoảng cách đặt theo tên Vladimir Levenshtein người đề khái niệm vào năm 1965 Nó sử dụng việc tính toán tương đồng hay khác biệt chuỗi Ví dụ chuỗi kí tự “kitten” “sitting” có khoảng cách Levenshtein phải dùng lần biến đổi  kitten -> sitten (thay “k” “s”)  sitten -> sittin (thay “e” “i”)  sittin -> sitting (thêm “g”) Định nghĩa toán học Theo toán học khoảng cách Levenshtein chuỗi a,b có chiều dài |a| |b| leva,b(|a|,|b|) đó: leva,b(|a|,|b|) = ai=bj leva,b(|a|,|b|) =1 ai≠bj Giới hạn giới hạn Khoảng cách Levenshtein có vài giới hạn đơn giản Bao gồm:     Phải có khác biệt chiều dài hai dãy Có chiều dài chuỗi dài Khoảng cách chuỗi giống hệt Nếu chuỗi có chiều dài khoảng cách Hamming giới hạn khoảng cách Levenshtein  Khoảng cách Levenshtein chuỗi không dài tổng chiều dài chúng chuỗi thứ 60 Ví dụ giới hạn khoảng cách Levenshtein khoảng cách Hamming chuỗi có chiều dài là: giả dụ ta có chữ “flaw” “lawn”, ta thấy khoảng cách Levenshtein chuỗi (xóa “f” đầu chuỗi thêm “n” cuối chuỗi) khoảng cách Hamming Như thấy giới hạn khoảng cách Levenshtein Tính toán khoảng cách Levenshtein Đệ quy : Đây phương pháp dễ hiệu nhất, C ta dùng phép đệ quy tính toán khoảng cách Levenshtein cách viết hàm Lenvenshtein với đầu vào chuỗi s t với chiều dài chúng, sau trả khoảng cách Levenshtein chúng Thuật toán mô tả sau // len_s and len_t are the number of characters in string s and t respectively int LevenshteinDistance(string s, int len_s, string t, int len_t) { int cost; /* base case: empty strings */ if (len_s == 0) return len_t; if (len_t == 0) return len_s; /* test if last characters of the strings match */ if (s[len_s-1] == t[len_t-1]) cost = 0; else cost = 1; /* return minimum of delete char from s, delete char from t, and delete char from both */ return minimum(LevenshteinDistance(s, len_s - 1, t, len_t ) + 1, LevenshteinDistance(s, len_s , t, len_t - 1) + 1, LevenshteinDistance(s, len_s - 1, t, len_t - 1) + cost); } Phương pháp dễ dàng hiệu tính toán khoảng cách Levenshtein cách sử dụng nhiều lần chuỗi 61 Sử dụng ma trận chiều: Ta áp dụng thuật toán quy hoạch động để tính khoảng cách Levenshtein, sử dụng mảng chiều (n+1)*(m+1) với n,m chiều dài chuỗi cần tính, sau thuật toán trả khoảng cách Levenshtein Dưới phần code mô tả thuật toán function LevenshteinDistance(char s[1 m], char t[1 n]): // for all i and j, d[i,j] will hold the Levenshtein distance between // the first i characters of s and the first j characters of t; // note that d has (m+1)*(n+1) values declare int d[0 m, n] set each element in d to zero // source prefixes can be transformed into empty string by // dropping all characters for i from to m: d[i, 0] := i // target prefixes can be reached from empty source prefix // by inserting every character for j from to n: d[0, j] := j for j from to n: for i from to m: if s[i] = t[j]: d[i, j] := d[i-1, j-1] // no operation required else: d[i, j] := minimum(d[i-1, j] + 1, // a deletion d[i, j-1] + 1, // an insertion d[i-1, j-1] + 1) // a substitution return d[m, n] Phương pháp thật không hoàn toán khớp với định nghĩa toán học, chí tốt nhiều, kể chèn xóa cho kết tốt Tuy nhiên kết cho tương đương Dưới ví dụ cho chuỗi sử dụng ma trận 62 Ví dụ việc sử dụng ma trận chiều Sử dụng ma trận hàng: Chỉ cần hàng bảng đủ việc tính toán khoảng cách Levenshtein mà không cần thiết phải tái cấu trúc lại chuỗi đầu vào Đoạn code cho khoảng cách Levenshtein sử dụng thuật toán int LevenshteinDistance(string s, string t) { // degenerate cases if (s == t) return 0; if (s.Length == 0) return t.Length; if (t.Length == 0) return s.Length; // create two work vectors of integer distances int[] v0 = new int[t.Length + 1]; int[] v1 = new int[t.Length + 1]; // initialize v0 (the previous row of distances) // this row is A[0][i]: edit distance for an empty s // the distance is just the number of characters to delete from t for (int i = 0; i < v0.Length; i++) v0[i] = i; for (int i = 0; i < s.Length; i++) { // calculate v1 (current row distances) from the previous row v0 63 // first element of v1 is A[i+1][0] // edit distance is delete (i+1) chars from s to match empty t v1[0] = i + 1; // use formula to fill in the rest of the row for (int j = 0; j < t.Length; j++) { var cost = (s[i] == t[j]) ? : 1; v1[j + 1] = Minimum(v1[j] + 1, v0[j + 1] + 1, v0[j] + cost); } // copy v1 (current row) to v0 (previous row) for next iteration for (int j = 0; j < v0.Length; j++) v0[j] = v1[j]; } return v1[t.Length]; } 1.4 Khoảng cách Euclide Khoảng cách Euclide hay gọi khoảng cách Euclide không gian n chiều chiều dài đường thẳng nối chúng Trong mặt phẳng khoảng cách điểm (x1,y1) (x2,y2) tính theo công thức sau Trong không gian chiều khoảng cách điểm (x1,y1,z1) (x2,y2,z2) Như với không gian n chiều khoảng cách điểm x,y tính sau: 1.5 Khoảng cách Manhattan 64 Khoảng cách hai điểm P1 P2 mặt phẳng chiều dài tất đoạn nối p với q dọc theo mặt cắt trục đứng trục ngang, theo chiều tới Trong hình đường đỏ thể khoảng cách Manhattan, đường xanh nước biển vàng tương đương với khoảng cách Manhattan, đường xanh đường thằng hay khoảng cách Euclidean Khoảng cách Manhattan điểm p q không gian vecto n chiều với hệ tọa độ Cartesian xác định sau: Với 1.6 Khoảng cách Cosine Từ công thức tính vecto Euclidean sau: Như với vecto A B với n chiều ta có cos(θ), độ tương tự cosine hay khoảng cách theo góc vecto tính công thức 65 Nếu kết -1 hai vecto hoàn toàn đối nghịch, vecto giống nhau, vecto vuông góc trực giao Độ tương đồng chuỗi 2.1 Định nghĩa Độ tương đồng chuỗi độ đo giống ký tự chuỗi, ký tự từ âm vị, tất phương pháp tính toán độ tương đồng chuỗi cho phép tính toán sử dụng dạng ký tự Vì áp dụng cho loại ngôn ngữ không phân biệt latinh hay tượng hình Độ tương đồng chuỗi sử dụng rộng rãi lĩnh vực ngôn ngữ học Ví dụ chương trình xử lý ngôn ngữ tự nhiên để xác định từ đánh sai Ngoài độ tương đồng sử dụng để tính toán mối hệ ngữ cảnh sử dụng với biện pháp tính toán độ tương đồng ngữ nghĩa Đặc biệt sử dụng kết hợp với hàm tính tần suất thay đổi luân phiên PCT phương tiện để tính toán tần số mà âm bị trộn lẫn với ngôn ngữ Một vài thước đo độ tương đồng sử dụng để tính toán mật độ lân cận dùng việc xử lý âm vị Một “lân cận” từ X từ tương đồng với X 2.2 Phương pháp tính toán Phương pháp thông dụng sử dụng khoảng cách chuỗi, ta biết khoảng cách chuỗi số từ khác biệt chúng, ta hoàn toàn tìm tỉ lệ khác biệt chuỗi cách chia số từ khác biệt cho tổng số từ lớn chuỗi Bằng cách ta dễ dàng tính tỷ lệ khác biệt chuỗi Ví dụ: chuỗi ký tự “nghênh” “nghiêng” có khoảng cách số từ lớn chuỗi từ “nghiêng” có từ Vậy tỉ lệ khác biệt chuỗi 2/7 Nếu chuỗi giống tỉ lệ khác biệt chuỗi khác hẳn tỉ lệ khác biệt Từ ta thấy độ tương đồng giống độ khác biệt nằm khoảng tới Từ ta tính độ tương đồng chuỗi ký tự cách sử dụng giới hạn trừ cho độ khác biệt chuỗi ký tự Ví dụ: 66 Vẫn chuỗi ký tự “nghênh” “nghiêng” có khoảng cách tỉ lệ khác biệt chuỗi 2/7 độ tương đồng chuỗi là: 5/7 Giả sử nmax chiều dài chuỗi lớn hơn, khoảng cách chuỗi ED, độ tương đồng chuỗi S ta có công thức: S= – 𝐸𝐷 𝑛𝑚𝑎𝑥 [...]... văn bản dữ liệu đầu vào nhất định Dưới đây là sơ đồ mới cho phương pháp sử dụng độ tương đồng chuỗi vào chống trùng lặp: Chia 1 File thành các Block/Subb lock Đánh giá độ tương đồng chuỗi Giống Xóa block Khác Giữ Block Hình 3.2 Quy trình chống trùng lặp sử dụng độ tương đồng chuỗi Các bước trong quá trình đánh giá độ tương đồng chuỗi: Loại bỏ dữ liệu thừa Tính độ tương đồng chuỗi So sánh độ tương đồng. .. sử dụng tới một kỹ thuật đặc biệt cho phép người sử dụng loại bỏ những dữ liệu trùng lặp và lưu trữ lại những dữ liệu độc nhất Kỹ thuật đó gọi là chống trùng lặp dữ liệu 1.2 Chống trùng lặp dữ liệu 1.2.1 Khái niệm Theo [3] thì chống trùng lặp là một kỹ thuật làm giảm dung lượng cần thiết bằng cách xóa đi các dữ liệu bị trùng lặp Chỉ có các dữ liệu độc nhất mới được lưu trữ vào cơ sở dữ liệu, các dữ liệu. .. hashing có thể sử dụng trên cả dữ liệu có cấu trúc hoặc dữ liệu không có cấu trúc, tức là dữ liệc được chứa trên đĩa (không có cấu trúc) và dữ liệu được chứa trong bảng cơ sở dữ liệu (có cấu trúc) Bỡi phương pháp này làm việc với các block dữ liệu đã có và các block dữ liệu mới cho nên việc nó là dữ liệu gì, đến từ đâu là không quan trọng Mỗi một block dữ liệu mới được đưa vào sẽ được hash và có được hash... liệu văn bản có cấu trúc dạng bảng Như đã nói ở chương 2 các phương pháp chống trùng lặp có thể dùng cho tất cả dữ liệu: block level hashing và sub-block level hashing Đối với một cấu trúc dạng bảng các phương pháp này có thể chia mỗi bảng thành các hàng, các cột hoặc các ô Các hàng, các cột và các ô ở đây có thể đại diện cho block hoặc sub-block và với việc xử lý dữ liệu các dữ liệu trong mỗi block/sub-block... trùng lặp sẽ được thay thế bằng các con trỏ hướng tới dữ liệu độc nhất Ví dụ: ta có 100 MB dữ liệu, thông thường sẽ cần 100MB không gian để chứa nó nhưng với chống trùng lặp ta có thể xóa các dữ liệu trùng lặp và chỉ lưu lại các dữ liệu độc nhất, điều này giúp cho ta có thể dùng ít hơn 100MB để lưu trữ từng đó thông tin 12 Hình 1.1 Chống trùng lặp dữ liệu [3] 1.2.2 Lợi ích của chống trùng lặp dữ liệu. .. giá độ tương đồng chuỗi 34 Theo lược đồ trên để thực hiện việc đánh giá độ tương đồng chuỗi cần phải chia nhỏ nó ra làm 3 bước Đó là:  Loại bỏ dữ liệu thừa  Tính độ tương đồng  So sánh độ tương đồng với cận dưới Loại bỏ dữ liệu thừa: Dữ liệu sau khi được chia thành các block/sub-block (trong cơ sở dữ liệu dạng bảng sẽ chia thành các hàng, các cột hoặc các ô) sẽ được xử lý Ta có dữ liệu bây giờ là các. .. khác thay thế cho bước hashing trong hai phương pháp chống trùng lặp trên, đó là độ tương đồng giữa 2 chuỗi ký tự ký tự Thay vì phải hash dữ liệu ra thì phương pháp này sẽ tính độ tương đồng giữa 2 dòng rồi dựa vào độ tương đồng đó để xử lý dữ liệu Phương pháp mới không cần dữ liệu phải giống hệt nhau mà nó sẽ tính ra độ tương đồng giữa các dữ liệu và quyết định xem dữ liệu đó có bị trùng lặp không rồi... trong [3]) 15 Hình 1.2 Lưu trữ dữ liệu khi không sử dụng chống trùng lặp [3] Hình 1.3 Lưu trữ dữ liệu khi sử dụng chống trùng lặp [3] Hình 1.1 là ví dụ về việc một tập dữ liệu khoảng 20TB được backup trong vòng 5 tuần bao gồm sự độ lớn dữ liệu và tốc độ thay đổi khi không sử dụng các phương pháp chống trùng lặp Trong khi đó hình 2.16 cùng là lượng dữ liệu và thời gian nhưng có sử dụng phương pháp chống. .. giữ được tiến độ lưu trữ Có tói 78% dữ liệu đã bị loại bỏ, những dữ liệu này là trùng lặp và không cần thiết Rõ ràng là khi ứng dụng chống trùng lặp vào lưu trữ dữ liệu sẽ giúp ta tiết kiệm được chi phí cho không gian lưu trữ 17 Chương 2: Phân loại các phương pháp chống trùng lặp dữ liệu 2.1 Các phương pháp chống trùng lặp phân chia theo dữ liệu Việc phân chia các phương pháp chống trùng lặp dựa vào... vẫn có thể nhận biết được sự sai khác đó và xử lý những dữ liệu bị trùng lặp kia Bằng cách tính toán độ tương đồng chuỗi sẽ giúp tôi tính toán được sự giống nhau giữa các dữ liệu và nếu như chúng có độ tương đồng lớn thì có thể coi như là những dữ liệu bị trùng lặp Bên cạnh việc tính độ tương đồng tôi cần tới một tham số cận dưới, chỉ khi độ tương đồng giữa 2 chuỗi vượt qua cận dưới này thì 2 chuỗi dữ ... Chương Ứng dụng độ tương đồng chuỗi chống trùng lặp liệu 3.1 Vấn đề phương pháp chống trùng lặp cho tập liệu văn có cấu trúc dạng bảng Như nói chương phương pháp chống trùng lặp dùng cho tất liệu: ... phương pháp chống trùng lặp ứng dụng độ tương đồng Với ưu việc thể kết thực nghiệm khẳng định cần xử lý liệu trùng lặp tập văn có cấu trúc phương pháp chống trùng lặp ứng dụng độ tương đồng chuỗi phương... 2.3 Các đoạn có chiều dài cố định đoạn có chiều dài linh hoạt 28 Chương Ứng dụng độ tương đồng chuỗi chống trùng lặp liệu 31 3.1 Vấn đề phương pháp chống trùng lặp cho tập liệu văn có cấu trúc

Ngày đăng: 27/04/2016, 07:36

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan