CHƯƠNG 2: ĐỐI SÁNH CHUỖI XẤP XỈ CHO VẤN ĐỀ TỰ ĐỘNG SỬA ĐỔI VÀ GỢI Ý TRUY VẤN
2.3 Tự động sửa đổi và gợi ý truy vấn dựa trên độ đo Levenshtein
2.3.1 Đánh chỉ mục các truy vấn tìm kiếm đã có (lịch sử)
Kỹ thuật tìm kiếm theo chỉ mục (indexing) đƣợc áp dụng nhằm tăng hiệu quả trong truy vấn tìm kiếm.
Văn bản không đƣợc đánh chỉ mục: sẽ tốn chi phí cho quá trình tìm kiếm bởi giải thuật tìm kiếm phải duyệt qua toàn bộ nội dung để trả lời câu hỏi truy vấn đã cung cấp. Việc làm này với vài văn bản thì chi phí rất thấp.
Nhƣng với số lƣợng văn bản lớn thì chi phí bỏ ra cần phải tính đến. Hơn thế nữa nếu từ với nội dung đƣợc tìm kiếm lần tiếp theo không thay đổi thì việc truy vấn lại thực hiện việc lặp lại nhƣ lần đầu tiên [10].
Văn bản đƣợc đánh chỉ mục: Các văn bản có trong hệ thống đƣợc đánh chỉ mục sao cho nâng cao chất lƣợng truy vấn. Nhiều kỹ thuật đánh chỉ mục khác nhau phục vụ cho bài toán truy vấn tìm kiếm khác nhau. Nhìn chung, văn bản đƣợc đánh chỉ mục đƣợc thực hiện theo cách đƣa ra bảng mô tả các từ khóa có trong văn bản. Thay vì việc tìm kiếm trên nội dung của văn bản ta tiến hành tìm kiếm trên chỉ mục. Nhƣ vậy việc phải duyệt qua nội dung văn bản sẽ đƣợc giảm bớt dẫn đến giảm chi phí tìm kiếm. Với các từ khóa mới thì hệ thống thực hiện tìm kiếm và đánh chỉ mục cho từ khóa mới, lần kế tiếp các văn bản sẽ đƣợc tìm kiếm bằng cách tìm kiếm trên chỉ mục. Nhƣng với dữ liệu khởi tạo đầu tiên thì việc đánh chỉ mục mới cũng tốn chi phí. Trong luận văn này không đi sâu vào các kỹ thuật đánh chỉ mục, mà chỉ cung cấp một số kỹ thuật đánh chỉ mục trong truy vấn tìm kiếm (tìm kiếm văn bản).
2.3.1.1 Kỹ thuật đánh chỉ mục xuôi
Kỹ thuật sử dụng các từ đƣợc thống kê trên một bảng chỉ mục. Cột đầu tiên thể hiện các từ cần đánh chỉ mục, cột tiếp theo thể hiện tài liệu mà từ đó xuất hiện. Phương pháp này thể hiện rất hiệu quả với máy tìm kiếm. Cho phép tìm kiếm dựa trên từ khóa và đƣa ra đƣợc các văn bản có nội dung tìm kiếm là các từ khóa. Chỉ cần đối sánh các từ hoặc chuỗi chỉ mục mà không cần phải tìm kiếm trên toàn bộ văn bản nữa. Việc đánh chỉ mục đã thay thế thao tác tìm kiếm việc tìm kiếm lúc này là tìm kiếm trên chỉ mục [10][11]
Bảng 2.3: Kỹ thuật đánh chỉ mục xuôi
Đánh chỉ số xuôi
Từ Tài liệu
Thuyền D1, D3, D4, D5, D7 Biển D2, D3, D4
* Giải thuật đánh chỉ mục xuôi Input:
- Files: các file văn bản
- Words: các từ cần đánh chỉ số Ouput:
- Chỉ số (indexing ) của tử trong File Method:
m = lenght(file);
n = lenght(word);
Indexing = array[n]
For i = 1 to n do { For j=1 to m do
While (Chƣa cuối file files[j] ) { Str = files[j].getLine();
if( words[i] trong str){
indexing[i] += namefile (files[j]) exit while; }
}
Return indexing;
* Mô tả giải thuật:
Giải thuật với đầu vào là tập các từ cần đánh chỉ số với một tập các file cần thực hiện chỉ số theo các từ. Giải thuật sẽ thực hiện trả về một mảng Indexing có n phần tử, mỗi phần từ mảng chứa các file mà nội dung của nó sẽ chứa từ cần đánh chỉ số.
- Giải thuật thực hiện duyệt cho từng từ trong từng file.
- Mỗi lần duyệt từ thực hiện đọc nội dung file và thực hiện đối sánh từ với nội dung. Nếu đọc tới file nào mà có nội dung chứa từ tương ứng giải thuật thực hiện cập nhật tên file vào trong chỉ mục Indexing[i] tương ứng với từ khóa i.
- Bước tiếp theo cho file kế tiếp và nếu tìm thấy lần đầu tiên của từ trong file sẽ bổ sung thêm file và thực hiện thao tác dừng đọc file hiện tại (làm tăng tốc độ xử lý).
2.3.1.2 Kỹ thuật đánh chỉ mục ngược
Ngƣợc với quá trình đánh chỉ mục xuôi là chỉ ra từ có trong các văn bản, thì quá trình thực hiện đánh chỉ mục ngƣợc lại thực hiện trên một bảng chỉ mục. Cột đầu tiên thể hiện văn bản, cột kế tiếp thể hiện các từ có trong văn bản đó (các từ sẽ không trùng nhau, thể hiện việc lưu trữ không gian nhỏ hơn). Khi tìm kiếm, các máy tìm kiếm thực hiện tìm từ hoặc chuỗi xuất hiện trong các văn bản. Dựa trên các từ cung cấp, có thể chỉ ra các văn bản có từ đó tồn tại, mà không phải dùng kỹ thuật đọc nội dung văn bản đề tìm mà chỉ việc tìm trên bảng chỉ mục. Việc đánh chỉ mục đã thực hiện công việc tiền xử lý trước văn bản [10, 11].
Bảng 2.4: Đánh chỉ số ngược
Chỉ số ngƣợc Tài liệu Các từ
D1 Chỉ, đạt, danh, thế, gì
D3 Thế, Thử, Hoa, hoàn, hoán, đổi, trăng
* Giải thuật đánh chỉ số ngƣợc:
Input
- Files Tập các văn bản
- Words Một tập các từ Output
- Chỉ số ngƣợc Method
Index mảng các chỉ số cho văn bản.
N Độ dài mảng là số file văn bản For i =1 to N do
While file [i] vẫn còn nội dung Begin
Đọc một dòng str trong file [i]
For j = 1 to M = count(words) do If words[j] nằm trong str then
Cập nhật index[i] thêm từ word[j];
End if End for End while
Return indexing
Việc thực hiện truy vấn tìm kiếm dựa trên chỉ mục có thể chỉ ra rằng chỉ mục phải đƣợc xây dựng sao cho chỉ mục đƣợc áp dụng cho tìm kiếm chính xác. Một hạn chế cần phải khắc phục đó là trong quá trình tìm kiếm người cung cấp dữ liệu tìm kiếm có thể cung cấp sai từ. Hệ thống không thể chỉ ra đƣợc kết quả gì dữ liệu này không thể tồn tại bên trong chỉ mục. Một hệ
thống tìm kiếm tốt hơn sẽ thực hiện dựa trên dữ liệu đầu vào, rồi tiến hành tìm kiếm gần đúng theo dữ liệu đó, gần đúng thể hiện cùng nội dung từ xấp xỉ.