a. Đầu vào: term cần truy vấn, tập chỉ mục thuận mức từ, chỉ mục ngược.
b. Quá trình tìm kiếm:
- Bước 1: Tách các từ khóa cần truy vấn thành một mảng các từ riêng biệt, mỗi âm vịđược chuyển về âm vị chuẩn theo quy ước trong bộ từđiển tiếng Việt đã trình bày ở trên: Thanh điệu Kí từ biểu diễn Ví dụ Huyền 2 Hà -> Ha2 Sắc 5 Án -> A5n Hỏi 4 Hỏi -> Ho4i Ngã 3 Ngã -> Nga3 Nặng 6 Hạn -> Ha6n ^ 8 Cô -> Co8 Dấu móc 9 Ngư ->Ngu9
Bảng 8: Qui định ký tự thay thế thanh điệu
- Bước 2: Đối với mỗi từ khóa, truy tìm trong chỉ mục ngược để xác định danh sách các file chứa từ khóa đó. Tiếp đến tiến hành lấy giao các danh sách để xác định các file tài liệu có chứa tất cả các từ trong câu truy vấn.
- Bước 3: Xử lý các file chỉ mục tương ứng, kiểm tra độ phù hợp vềđiều kiện thời gian, tính xác suất so khớp, sắp xếp theo
o Bước 3.1: Với mỗi từ khóa tìm kiếm từ trái sang phải, lấy ra danh sách xuất hiện từ tập chỉ mục thuận mức từ.
o Bước 3.2: Kiểm tra xem sự xuất hiện của các từ có phù hợp với một đoạn tiếng nói được phát âm liên tục hay không dựa vào các thời điểm bắt đầu xuất hiện của mỗi từ. Sự phù hợp được xác định là hai từ liền kề nhau phải thỏa mãn điều kiện khoảng cách giữa thời gian kết thúc của từ trước đó và thời gian bắt đầu của từ liền kề phải nhỏ hơn 0,5s. Nếu thỏa mãn điều kiện về
thời gian, chuyển sang bước 3.3, ngược lại kết luận câu truy vấn không xuất hiện trong file và quay lại bước 3.1.
o Bước 3.3: Tính xác suất của mỗi so khớp: để tính xác suất của mỗi so khớp, tôi thực hiện 2 bước
Xây dựng đồ thị so khớp
Tìm đường trên đồ thị và tính xác suất
Xây dựng đồ thị so khớp: Do đặc trưng là mỗi từđược nhận dạng với nhiều giả thuyết về thời gian bắt đầu, thời gian tồn tại và xác suất khác nhau (lattice cung), nên tôi xây dựng đồ thị có hước so khớp để xác định đường kết nối giữa các từ trong truy vấn và tính xác suất so khớp ứng với một truy vấn. Qui tắc xây dựng đồ thị so khớp như sau
• Nếu câu truy vấn w1 w2 w3 wk có lần lượt n1, n2,n3, nk lattice cung thì đồ thị có sốđỉnh N= n1+n2+n3 + nk
• Các đỉnh được đánh thứ tự lần lượt từ 1..n1, n1+1.. n2, ……,nk-1+1..nk
• Thông tin lưu tại mỗi đỉnh gồm có: thời gian bắt đầu, thời gian tồn tại và điểm xác suất.
• Các cung có hướng của đồ thị so khớp được xác định như sau: Xét trên mỗi cặp 2 từ khóa kề nhau trong câu truy vấn, xử lý với mỗi cặp
lattice cung (lattice cung k của từ khóa thứ j và lattice cung m của từ khóa thứ j+1), nếu thời gian kết thúc của từ khóa thứ j và thời gian bắt đầu từ khóa thứ j+1 thỏa mãn điều kiện về ràng buộc thời gian (lệch nhau không quá 0,5s) thì tồn tại một cung nối đỉnh k đến đỉnh m của đồ thị so khớp.
Ví dụ vềđồ thị so khớp, cho câu truy vấn “bệnh tim mạch” trong một file: từ khóa bệnh có 4 lattice cung (4 giả thuyết về thời gian bắt đầu, thời gian tồn tại và điểm xác suất), tương tự từ khóa tim có 9 lattice cung và từ khóa mạch có 7 lattice cung.
Hình 36: Đồ thị so khớp
Tìm đường đi (tìm so khớp) và tính xác xuất của mỗi so khớp: Áp dụng thuật toán tìm kiếm theo chiều sâu DFS, xuất phát từ các node của từ khóa tìm kiếm đầu tiên, kết thúc ở các node của từ khóa tìm kiếm cuối cùng trong câu truy vấn. Theo ví dụ trên ta thấy có các so khớp đối với câu truy vấn “bệnh tim mạch” như sau: 4→11→14; 4→11→15; 4→11→16; 4→12→17;
o Bước 3.4: Xử lý kết quả, hiển thị và quay lại bước 3.1 xử ý file tiếp.
Tìm so khớp có xác suất lớn nhất (ví dụ: sk1), và loại bỏ tất cả các so khớp khác “trùng “ với so khớp sk1. Điều kiện loại bỏ là thời gian bắt đầu của so khớp lệch khoảng 0,5s so với sk1
Hiển thị thời gian bắt đầu, quãng thời gian tồn tại của của truy vấn cùng với xác xuất so khớp lớn nhất.
Căn cứ trên tên file chỉ mục đang xử lý, lấy ra tên file wav tương ứng trong cơ sở dữ liệu, và cho phép người dùng nghe đoạn tìm thấy, và nghe cả file để kiểm chứng.
Lặp lại việc tìm so khớp lớn nhất nếu vẫn còn so khớp chưa bị loại bỏ. - Bước 4: Sắp xếp lại kết quả tìm kiếm theo chiều giảm dần của xác suất so khớp