CHƯƠNG 3 : THỰC NGHIỆM
3.2. Các thuật tốn sử dụng trong agrep
Agrep sử dụng một số thuật tốn khác nhau để tối ưu hĩa hiệu suất cho các trường hợp khác nhau. Đối với truy vấn đơn giản chính xác ta sử dụng một biến thể của thuật tốn Boyer - Moore. Đối với các mẫu đơn giản với các lỗi, chúng tơi sử dụng một chương trình phân vùng, với chương trình Boyer -Moore.
Đối với các mẫu phức tạp hơn, ví dụ các mẫu với chi phí khơng đồng đều chỉnh sửa khác nhau, đa mẫu, biểu thức thơng thường tùy ý, ta sử dụng thuật tốn mới hồn tồn.
3.2.1. Thuật tốn WM trong AGREP
Trong phần mềm Agrep, ưu điểm chính của chương trình này là các thuật tốn sánh mẫu chính xác cĩ thểđược điều chỉnh để hỗ trợ nĩ. Ta minh họa cho ý tưởng này với một ví dụ như sau.
Giả sử rằng mẫu là ABCDEFGHIJKL (m = 12) và k = 3. Ta phân chia mẫu thành k +1 = 4 khối: ABC, DEF, GHI, và JKL. Ta cần tìm xem liệu cĩ một khối nào đĩ xuất hiện trong văn bản. Ta tạo ra một mẫu kết hợp bằng cách đan xen 4 khối : ADGJBEHKCFIL. Sau đĩ xây dựng mặt nạ vector R như bình thường cho mẫu này. Sự khác biệt duy nhất là, thay vì dịch chuyển trong mỗi bước, ta dịch chuyển bốn. Cĩ một đối sánh nếu bất kỳ một trong bốn bit cuối cùng là 1 (khi chúng ta dịch chuyển chúng ta cần phải điền vào bốn vị trí đầu tiên với l, hoặc tốt hơn, sử dụng shift–OR). Như vậy, so sánh cho tất cả các khối
được thực hiện chính xác theo cùng một cách nhưđối sánh thường xuyên và cơ
bản sẽđưa về cùng một thời gian chạy.
3.2.2. Thuật tốn sánh mẫu xấp xỉ
Như từng được giới thiệu ở Chương 1, một thách thức mới được chú ý hiện nay là tìm kiếm xấp xỉ (approximate search).
Tìm kiếm xấp xỉ là tìm sự xuất hiện của mẫu trong văn bản, trong đĩ cả
văn bản và mẫu đều cĩ thể cĩ “lỗi”. Đây là các “lỗi” cĩ thể nhận ra bằng mắt thường, khơng xét về khía cạnh ngữ nghĩa (OCR-optical character recognition errors), do một số kí tự nhất định bị chèn thêm hoặc bị xĩa hoặc bị thay thế, chẳng hạn “Việt Nam” và “Việt Nan” hay “Việtt Nan”,...Những lỗi này do nhiều nguyên nhân khác nhau, cĩ thể kể ra như:
− Câu truy vấn sai chính tả, xâu tìm kiếm khơng đúng cú pháp so với văn bản − Lỗi in ấn, lỗi chính tả, sử dụng dấu chấm câu sai,...
− Dữ liệu đưa vào cơ sở dữ liệu khơng chính xác, thường xảy ra với tên người,
địa chỉ,...
Bài tốn so mẫu xấp xỉ là sự mở rộng từ bài tốn so mẫu chính xác và
được phát biểu một cách tổng quát như sau: Cho văn bản T độ dài n và xâu mẫu
P độ dài m trên cùng một bảng chữ cái A. Tìm các vị trí trong văn bản khớp với mẫu, cho phép nhiều nhất k lỗi.
Sánh mẫu gần đúng là để tìm thấy tất cả các chuỗi con trong T gần đúng với P nhất theo một số biện pháp xấp xỉ. Cĩ nhiều mơ hình lỗi được đưa ra, nhưng phổ biến nhất và là cơ sở cho rất nhiều mơ hình lỗi khác là khoảng cách Levenshtein hay cịn gọi là khoảng cách Edit; khoảng cách Hamming; khúc con (hay xâu con) chung dài nhất; dãy con chung dài nhất. Độ đo “lỗi” này phản ánh độ tương tự giữa hai xâu, làm cơ sở để cài đặt tính năng tìm kiếm xấp xỉ
trong cơ sở dữ liệu và trong các hệ thống trích rút văn bản. Vì vậy bài tốn được giải quyết ở đây là: Cho xâu nguồn (hay xâu mẫu) P độ dài m và xâu đích S độ
dài n trên cùng bảng chữ A. Xác định độ tương tự giữa hai xâu P và S. Lưu ý rằng, 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à so sánh từng khúc với P (chẳng hạn, việc ngắt câu cĩ thể
xem là một cách chặt khúc). Khi đĩ độ tương tự sẽđược tổng hợp từ các kết quả
so sánh P và các khúc của S.
Vấn đề sánh mẫu xấp xỉ là tìm đối sánh tương tự cho chuỗi truy vấn từ cơ
sở dữ liệu đã cho. Cơ sở dữ liệu cĩ thểđược tổ chức theo nhiều cách khác nhau. Vấn đề tốn học định nghĩa là xem xét hai chuỗi văn bản T[1...n] và P[1...m], và
một khoảng cách D(x[ i...j] , y[a...b]) trong đĩ x[i...j] và y[a...b] là chuỗi con của x và y. D(x[ i...j] , y[a...b]) tính chi phí tối thiểu chuyển đổi x[i...j] thành
y[a...b]. Cĩ ba hoạt động chúng ta cĩ thể thực hiện chuyển đổi x thành y.
A. Thay thế: Thay thế chỉđơn giản là một trong những ký tự trong x và thay đổi nĩ để phù hợp với một ký tự trong y.
B. Chèn: Chèn là khi một ký tựđưa vào x phù hợp với ký tự trong y tại cùng một vị trí.
C. Xĩa: Đây là hành động loại bỏ một ký tự trong x.
Đầu vào cuối cùng để sánh mẫu xấp xỉ là k lỗi tối đa cho phép. Sau đĩ, vấn đề là tính tốn các thiết lập của P[i…j] mà D(T[ x...y] , P[i...j ] ) ≤ k.