Global String Alignment

Một phần của tài liệu hệ thống tìm kiếm âm thanh QBH trong cơ sở dữ liệu đa phương tiện và ứng dụng (Trang 28 - 30)

Thuật toán Global String Alignment, một dạng điển hình của tìm kiếm dựa trên chuỗi, là thuật toán quy hoạch động. Đặt độ dài của chuỗi S là |S|. Và ta có Q (Query) là chuỗi mẫu cần truy vấn, và T (Target) là chuỗi trong cơ sở dữ liệu cần đem so sánh. Giả thiết rằng Q và T chỉ chứa những ký tự trong cùng một bảng chữ cái. Ta xây dựng một bảng AlignScore gồm |Q| + 1 dòng và |T| + 1 cột trong đó AlignScore (i, j) là điểm liên kết tốt nhất giữa hai chuỗi con q1...qi của Q và t1..tj của T.

Quy trình này được bắt đầu bằng việc gán AlignScore (0, 0) = 0. Sau đó, những phần tử của mảng sẽđược tuần tựđiền vào theo công thức (2-1) dưới

Hàm matchScore có ý nghĩa như một hàn lượng giác mức độ giống nhau của hai ký tự trong một chuỗi. Hàm matchScore có thể được định nghĩa đơn giản như công thức (2-2)

(2-2)

Tuỳ thuộc vào bản chất của đặc trang dữ liệu, matchScore có thểđược thay đổi cho phù hợp và cho hiệu quả tốt nhất. Hàm skipPenalty cũng được xây dựng dựa theo các điều kiện của matchScore (hay cũng có thể biến thành một trường hợp đặc biệt của matchScore). Với hàm matchScore tương ứng như trên, ta có thể xây dựng hai hàm skipPenalty như (2-3).

(2-3)

Sau khi xây dựng xong mảng alignScore, giá trị liên kết tốt nhất giữa hai chuỗi sẽđược đọc tại ô ở dòng cuối cùng, góc bên phải của bảng. Từđó, ta cũng có thể lần ngược lại đường đi để cho ra giá trị tốt nhất này.

Hình 8: Ma trận alignScore

Trong trường hợp ma trận alignScore ở Hình 2-6, chuỗi tìm kiếm là “G D A C B”, còn chuỗi đích trong cơ sở dữ liệu là “G A B B”. Điểm liên kết giữa hai

chuỗi là 3. Dưới đây là những cách thức kết hợp hai chuỗi này (dấu „-‟ có ý nghĩa là một ký tự bị bỏ qua, không khớp)

Hình 9: So khớp truy vấn và đích

Một phần của tài liệu hệ thống tìm kiếm âm thanh QBH trong cơ sở dữ liệu đa phương tiện và ứng dụng (Trang 28 - 30)