Tìm kiếm mờ và ứng dụng giải thuật tìm kiếm thông tin trong văn bản nén

MỤC LỤC

Mục đích nghiên cứu

Luận văn tập trung nghiên cứu về tiếp cận otomat mờ và xây dựng một số giải thuật tiếp cận otomat mờ để tìm kiếm mẫu của văn bản nén.

Nhiệm vụ nghiên cứu

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn. - Luận văn cũng mong muốn nêu ra được một số hướng nghiên cứu mở rộng về tìm kiếm mẫu theo hướng tiếp cận otomat mờ.

TÌM KIẾM MẪU TRONG VĂN BẢN THEO CÁCH TIẾP CẬN OTOMAT MỜ

Khái niệm otomat mờ

    Nhưng trong thuật toán BM, có thể có những bước nhẩy xa trên S được thực hiện, nhờ vậy BM được đánh giá là thuật toán nhanh nhất về thực hành, đây là lựa chọn hiệu quả cho những ứng dụng thông thường như các trình soạn thảo văn bản. Ý tưởng cơ bản của thuật toán là sử dụng một “Cửa sổ trượt” như sau: “Cửa sổ” thực ra là một khúc độ dài m trên xâu vào S (m là độ dài của mẫu P) được đối sánh với mẫu tại một thời điểm nào đó. Khi gặp ký tự không khớp, cửa sổ trượt sang phải qua một đoạn trên S (tương ứng với việc dịch mẫu P sang phải). Trường hợp tốt nhất khi sự không khớp xảy ra tại vị trí Pm và ký tự không khớp là Sk lại không phải là một ký tự trong mẫu P, lúc đó có thể an toàn trượt cửa sổ sang phải qua m vị trí trên S và bắt đầu quá trình tìm kiếm mới bởi việc so sánh Pm và Sk+ m. Sk và bắt đầu so sánh Pmvới Sk. a) Nếu vị trí xuất hiện phải nhất của ký tự Sk trong P là m - g, ta có thể dịch mẫu P sang phải g vị trí sao cho Pm-g dóng thẳng với Sk. rồi bắt đầu lại quá trình đối sánh bởi phép so sánh Pm và S k+ g. b) Nếu ký tự Sk không có mặt trong P, ta có thể dịch mẫu P sang phải m vị trí. Đây là bước dịch chuyển xa nhất có thể mà vẫn không bỏ sót sự xuất hiện nào của mẫu. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn. a) Nếu vị trí xuất hiện trái nhất của ký tự Sk -m+i trong P là i - g, khi đó mẫu P được dịch sang phải g vị trí sao cho Pi-g dóng thẳng với Sk-m+i và sẽ bắt đầu quá trình đối sánh mới, bắt đầu từ Pm so với Sk+g.

    Chương này đã trình bày tổng quan về vấn đề tìm kíêm văn bản, phát biểu và tổng kết các hướng nghiên cứu cho các dạng bài toán tìm kiếm. Nội dung của luận văn tập trung giải quyết bài toán so đơn mẫu, chính xác, xấp xỉ theo hướng tiếp cận sử dụng một số hệ hình thức otomat mờ. Việc tính toán bảng next trong KMP và ý tưởng về bước dịch chuyển xa trong BM là nguồn gốc cho 2 thuật toán so đơn mẫu chính xác, xấp xỉ theo tiếp cận mờ sẽ được đưa ra ở chương 2.

    Hình 1.1. Ý nghĩa của mảng next
    Hình 1.1. Ý nghĩa của mảng next

    BÀI TOÁN SO MẪU THEO CÁCH TIẾP CẬN OTOMAT MỜ

    Bài toán so mẫu chính xác 1. Phát biểu bài toán

      Từ chi tiết này, kết hợp với kiểu sánh mẫu như trong KMP, ta sẽ có một “thuật toán theo tiếp cận mờ tổng quát kiểu KMP và BM”, trong đó độ mờ vẫn được tính toán dựa trên hàm TFuzz, đồng thời sẽ có những bước nhảy dài trên xâu đích, đem lại hiệu quả tìm kiếm cao. Dựa trên bảng TFuzz, tính độ mờ xuất hiện mẫu khi gặp ký tự w1 (hay chính là Sptr), ký hiệu độ mờ này là n1, đồng thời xác định bước nhảy tiếp theo để từ đó sẽ xét khối ký tự w mới, ký hiệu bước nhảy là n2. Do đó, nếu Sptr+m-n1 không phải là một ký tự xuất hiện trong P thì có thể thực hiện bước nhảy xa để đọc w mới bắt đầu từ vị trí ptr+m- n1+1 trên S mà vẫn đảm bảo không bỏ sót sự xuất hiện nào của mẫu.

      Trong nhiều tình huống, những kỹ thuật này chưa đáp ứng đầy đủ yêu cầu thực tế, như khi cần tìm kiếm theo tên người nước ngoài (chẳng hạn “christian Charras” và “Charas C”), khi có sự sai khác do biến đổi hình thái từ, cấu trúc câu (“approximate searching” và “search approximately”), một số trường hợp thứ tự ghép từ khác nhau nhưng mang ngữ nghĩa giống nhau (“toán logic” và “logic toán”) hoặc do thứ tự sai song vẫn hiểu được đúng nghĩa (“toán giải tích” và “giải tích toán”,..). Để đáp ứng nhu cầu tìm kiếm trong những tình huống như trên, một mô hình lỗi phản ánh độ tương tự giữa hai xâu kí tự là “Độ bảo toàn thứ tự xuất hiện các kí tự” được đề xuất. Một mô hình lỗi kinh điển là dựa vào độ dài khúc con chung dài nhất song với cách tiếp cận otomat mờ được đề xuất ở đây sẽ đem lại một thuật toán nhanh, đặc biệt hiệu quả khi cần so mẫu P với rất nhiều xâu S.

      Trường hợp S là một dòng dữ liệu văn bản (trong các máy tìm kiếm của hệ thống khai phá text, khai phá web,..), xâu mẫu P thường ngắn còn xâu đích S dài hơn rất nhiều so với P nên để phản ánh ngữ nghĩa được tốt cần phải chặt khúc dòng dữ liệu S và sánh từng khúc với P. Tập mờ mô tả độ gần tựa ngữ nghĩa của mẫu P so với xâu đích S Độ phức tạp khi so sánh mỗi khối (t,i) của mẫu được cắt với S có thể sử dụng thuật toán theo tiếp cận mờ xác định nhiều lần lặp mẫu (xem.

      Bảng  TFuzz  được  tính  toán  dựa  trên  mảng  next  (ví  dụ  1.1,  Mục  1.5.1) cho kết quả như sau:
      Bảng TFuzz được tính toán dựa trên mảng next (ví dụ 1.1, Mục 1.5.1) cho kết quả như sau:

      TÌM KIẾM MẪU TRONG VĂN BẢN NÉN VÀ MÃ HOÁ

      Tiếp cận tìm kiếm tổng quát trên văn bản nén và mã hoá

      Phương pháp so mẫu trên miền nén có sử dụng otomat mờ Cải tiến từ thuật toán so mẫu KMP - BM mờ được giới thiệu ở Chương 1, một thuật toán theo kiểu so mẫu trên miền nén được đưa ra. Ưu điểm quan trọng của việc sử dụng thuật toán KMP-BM mờ trên dữ liệu giải nén cục bộ so với các thuật toán kinh điển (như KMP, BM,..) là không cần lưu lại bất kỳ kí tự nào mà đã duyệt qua, đồng thời có tốc độ nhanh nhờ những bước dịch chuyển xa trên khối dữ liệu tìm kiếm, song việc cài đặt lại đơn giản. Nén dữ liệu text thực chất là một quá trình mã hóa, vì vậy thuật toán tìm kiếm trên văn bản nén có thể áp dụng đối với văn bản mã hóa dạng khối kí tự.

      Mặc dù dữ liệu giải nén cục bộ chỉ được lưu giữ một thời gian ngắn trên bộ nhớ trong, song không thể chắc chắn đây không là một sơ hở để lộ thông tin. Để nâng cao tính bảo mật, tránh rò rỉ thông tin ngay trong quá trình tìm kiếm, ý tưởng tìm kiếm xâu mẫu trong văn bản mã hóa mà không cần giải mã cục bộ được đưa ra. Với tiếp cận otomat mờ, các thuật toán tìm kiếm chính xác trên văn bản nén và mã hóa được trình bày ở đây có thể dễ dàng chuyển đổi sang tìm kiếm gần đúng bằng cách sử dụng những otomat so mẫu xấp xỉ đã giới thiệu ở trên.

      Hình 3.1. Phương pháp so mẫu trên miền nén có sử dụng otomat mờ  Cải  tiến  từ  thuật  toán  so  mẫu  KMP  -  BM  mờ  được  giới  thiệu  ở  Chương 1,  một thuật toán theo kiểu so  mẫu trên  miền  nén  được đưa ra
      Hình 3.1. Phương pháp so mẫu trên miền nén có sử dụng otomat mờ Cải tiến từ thuật toán so mẫu KMP - BM mờ được giới thiệu ở Chương 1, một thuật toán theo kiểu so mẫu trên miền nén được đưa ra

      Tìm kiếm trên văn bản nén 1. Các mô hình nén văn bản

        - Kích thước phải đủ lớn để vùng đệm không bị tràn khi gặp trường hợp một mã nén tương ứng với một đoạn văn bản dài (chẳng hạn như trong thuật toán Run - length, giải nén mã nén a256 sẽ được 256 kí tự a liên tiếp). - Điều kiện trên: Dữ liệu trên vùng đệm phải có độ dài nhỏ hơn hoặc bằng kích thước của vùng đệm, trong đó kích thước của vùng đệm bằng độ dài tối đa khi giải nén của một mã nén cộng với m+1. Trong từng giải thuật nén và giải nén cụ thể, với những cấu trúc cụ thể, chẳng hạn dạng cây (Hufman, LZW) ta có thể dựa trên giải thuật trên, cải biên để xây dựng các giải thuật sử dụng một danh sách của vài con trỏ, trỏ vào những điểm thích hợp trên cây để tận dụng ngay cấu trúc cây trực tiếp, thay cho việc cần một hàng đợi thực sự, nhằm tăng hiệu quả của chương trình.

        Nén dữ liệu text thực chất là một quá trình mã hóa, vì vậy thuật toán tìm kiếm trên văn bản nén có thể áp dụng đối với văn bản mã hóa dạng khối kí tự, trong đó thủ tục giải nén Decompress được thay thế bằng thủ tục giải mã. Trong một hệ thống bảo vệ dữ liệu cá nhân, việc sử dụng mã hóa đàn hồi và giải thuật so mẫu không giải mã sẽ đáp ứng tốt nhu cầu bảo mật mà vẫn có thể tìm thấy thông tin cần thiết. Tuy nhiên, để nâng cao mức độ bảo mật, tùy thuộc các nhu cầu ứng dụng và sử dụng được các sản phẩm mã hóa dữ liệu chất lượng cao sẵn có, phần này tác giả đưa ra giải pháp mã hóa hai tầng.

        Với những giải thuật nén mà dữ liệu giải nén không ở dạng khối kí tự, có thể cải biên thuật toán này bằng cách thay đổi nguyên tắc họat động của thủ tục giải nén. Do thời gian và khả năng có hạn, luận văn còn thiếu sót nhiều, em rất mong nhận được sự góp ý, chỉ dẫn thêm của các Thầy Cô, bạn bè để em có thể xây dựng được ứng dụng hoàn thiện hơn.

        Hình 3.3. Queue trước (a) và sau (b) khi thực hiện thủ tục Decompress B Decompress
        Hình 3.3. Queue trước (a) và sau (b) khi thực hiện thủ tục Decompress B Decompress