Tổng quan về so khớp chuỗi

Một phần của tài liệu NGHIÊN cứu, xây DỰNG mô HÌNH ĐÁNH GIÁ, PHÁT HIỆN HÀNH VI bất THƯỜNG dựa TRÊN PHÂN TÍCH dữ LIỆU cảm BIẾN TRONG điện THOẠI THÔNG MINH (Trang 28 - 30)

2.3.1.Giới thiệu

So khớp chuỗi là việc so sánh một hoặc một vài chuỗi (thường được gọi là mẫu hoặc pattern) với tập văn bản cần so khớp để tìm nơi và tần xuất xuất hiện của chuỗi đó trong văn bản. Gọi Y là tập các dữ liệu và X là một mẫu. So khớp mẫu (Pattern Matching) là tìm ra tất cả các lần xuất hiện của mẫu X trong tập dữ liệu Y

Bài toán so khớp mẫu được mô tả như sau: Cho một bảng chữ cái Σ là một tập hữu hạn các ký tự, một mẫu P (P [1 … m]) độ dài m và một chuỗi ký tự

29

T (T [1 … n]) độ dài n (trong đó m<<n) Bài toán đặt ra là cần tìm các vị trí xuất hiện của P trong T hoặc P có khớp với một chuỗi con của T hay không?

Các thuật toán so khớp thường sử dụng cơ chế cửa sổ trượt (một khung có kích thước bằng với kích thước của mẫu cần tìm) để so sánh các ký tự của mẫu trong cửa sổ với các ký tự trong văn bản.

Thuật toán so khớp chuỗi được thực hiện qua hai bước đó là tiền xử lý và tìm kiếm. Việc đánh giá các thuật toán được thực hiện dựa trên dung lượng bộ nhớ sử dụng và tốc độ so khớp. Các thuật toán so khớp được phân loại theo cách tiếp cận xây dựng thuật toán và số lượng mẫu. Các thuật toán so khớp chuỗi có thể phân loại theo nhiều tiêu chí:

Dựa trên số lượng mẫu, chúng ta có hai loại: so khớp đơn mẫu (single pattern) và so khớp đa mẫu (multiple patterns). Các thuật toán so khớp đơn mẫu chỉ tiến hành so sánh lần lượt từng mẫu P trên văn bản T, còn so khớp đa mẫu cho phép so sánh cùng lúc nhiều mẫu Pi (i=1 ... k) trên văn bản T. Các thuật toán so khớp đã mẫu thường là những cải tiến của so khớp đơn mẫu nhằm nâng cao hiệu quả so khớp.

Dựa trên cơ sở thứ tự so sánh: thuật toán so khớp chuỗi có thể được thực hiện theo các thứ tự sau: từ trái sang phải, từ phải sang trái, so sánh tại vị trí cụ thể và so sánh không theo thứ tự nhất định.

Dựa trên độ chính xác của kết quả so khớp: các thuật toán so khớp được chia thành hai loại: so khớp chính xác (Extract String Matching) và so khớp gần đúng (Approximate String Matching). So khớp chính xác là khẳng định mẫu P có xuất hiện ở trong chuỗi T hay không? Còn thuật toán so khớp xấp xỉ chỉ đánh giá sự tương đồng của mẫu P so với mẫu T dựa trên một hàm đo khoảng cách nào đó. Đa số các thuật toán so khớp không chính xác sử dụng khoảng cách Hamming hay khoảng cách Levenshtein với k vị trí khác biệt được thiết lập trước.

30

Một phần của tài liệu NGHIÊN cứu, xây DỰNG mô HÌNH ĐÁNH GIÁ, PHÁT HIỆN HÀNH VI bất THƯỜNG dựa TRÊN PHÂN TÍCH dữ LIỆU cảm BIẾN TRONG điện THOẠI THÔNG MINH (Trang 28 - 30)