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.6 Áp dụng độ đo Levenshtine vào thực tiễn luận văn
Như đã giới thiệu ở chương 1 về một số giải pháp cho bài toán ―Tự động sửa đổi và gợi ý truy vấn‖, phần này cung cấp giải pháp trực tiếp đề cập tới giải pháp cho từng trường hợp cụ thể. Nhằm mục đích xây dựng một hệ thống hỗ trợ đắc lực cho quá trình tiền xử lý truy vấn tìm kiếm, nhất là đối với hệ thống cần có truy vấn bằng Tiếng Việt.
2.3.6.1 Giải quyết vấn đề tự động sửa đổi
Bài toán tự động sửa đổi xảy ra khi chuỗi truy vấn đƣợc cung cấp có chứa các từ trong chuỗi sai về chính tả. Với bài toán này cần phải thực hiện hai thao tác chính:
- Tìm các từ sai: Hệ thống sẽ thực hiện công việc tách chuỗi thành các từ và sử dụng giải thuật Levenshtein thực hiện kiểm tra từ sai. Chú ý là nếu độ đo có giá trị là 0 thì từ đó là đúng, ngược lại từ này sẽ được hệ thống lưu lại để thực hiện sửa từ.
- Sửa các từ sai thành từ đúng: Hệ thống sẽ thực hiện tìm trong từ điển các từ dựa trên độ đo xấp xỉ, hệ thống sẽ lọc ra các từ và đánh giá các từ có độ đo xấp xỉ nhất định, sau đó thực hiện thêm thao tác đo độ tương tự giữa từ sai và các từ được lọc ra, cuối cùng sẽ lấy ra từ có độ tương tự với khoảng cách sao cho từ đó là phù hợp nhất (khoảng cách nhỏ nhất và độ tương tự lớn nhất).
Hệ thống thực hiện sắp xếp các kết quả tìm đƣợc theo thứ tự giảm dần. Việc cuối cùng là lấy ra kết quả đầu tiên là từ đƣợc sửa cho từ đã cung cấp [9].
2.3.6.2 Giải quyết vấn đề gợi ý truy vấn
Bài toán thực hiện dựa vào hệ thống dữ liệu là các chuỗi và chuỗi truy vấn đƣợc cung cấp. Hệ thống tiến hành cung cấp một số chuỗi dữ liệu trong hệ thống có độ xấp xỉ tốt nhất với chuỗi truy vấn làm các chuỗi gợi ý. Với bài toán này hệ thống cần thực hiện các bước cơ bản sau:
- Thu thập các chuỗi mẫu ban đầu là dữ liệu để gợi ý cho chuỗi truy vấn đƣợc.
- Nhận chuỗi truy vấn đầu vào từ việc cung cấp một giao diện nhập. Hệ thống dự định tiến hành trên môi trường Web.
- Thực hiện tìm kiếm các chuỗi có khoảng cách xấp xỉ dựa trên thuật toán của Levenshtein và độ tương tự cao nhất (Top 10) có thể lấy ra khoảng 10 kết quả khả quan nhất đƣợc sắp xếp theo đúng thứ tự theo chiều giảm dần về độ đo.
- Thực hiện cung cấp tới người sử dụng nguồn tạo chuỗi truy vấn các kết quả thu thập đƣợc, để nguồn này thực hiện lựa chọn câu truy vấn phù hợp cho quá trình tìm kiếm.Trong hệ thống luôn thực hiện thu hẹp không gian đối sánh để đảm bảo đƣợc với số lƣợng dữ liệu lớn hệ thống vẫn kịp thời đáp ứng về yêu cầu thời gian.
Trong chương 3, em tiến hành xây dựng các hệ thống thực nghiệm cho các vấn đề vừa nêu ở chương 2 cụ thể như sau:
- Tiến hành cài đặt thuật toán Levenshtein dựa trên ngôn ngữ PHP. Tiến hành thực nghiệm với nội dung: Đối sánh từng chuỗi đơn lẻ, đối sánh đa chuỗi.
- Tiến hành thu thập các từ, các câu vào từ điển dữ liệu của hệ thống cho phép thực nghiệm với chức năng sửa lỗi chính tả cho từ và gợi ý truy vấn dữ liệu cho câu truy vấn.
- Tiến hành xây dựng hệ thống sửa lỗi chính tả với mục đích chính ứng dụng thuật toán Levenshtein. Hệ thống được trình bày dưới dạng ứng dụng web. Hệ thống cho phép người dùng nhập từ sau đó tiến hành kiểm tra. Hệ thống sẽ thực hiện thuật toán Levenshtein để quyết định hai thao tác chính.
Thao tác kiểm tra từ, thao tác này cho phép kiểm tra từ có bị sai hay không (thuật toán Leveshtein nếu khoảng cách giữa hai từ là D mà khác 0 thì từ nhập vào là sai, từ còn lại có trong từ điển). Thao tác thứ 2, thao tác sửa từ. Nếu từ bị sai do kết quả của thao tác kiểm tra từ trả về là từ bị sai thì hệ thống
tiến hành tìm ra từ có khoảng cách gần nhất (nhỏ nhất) và có độ tương đồng lớn nhất.
- Hệ thống gợi ý: Hệ thống cung cấp giao diện cho người dùng gõ câu truy vấn. Dựa trên câu truy vấn này hệ thống tự động tiến hành tìm ra các câu tương tự (gần đúng) với câu đã gõ.