Tải bản đầy đủ (.pdf) (79 trang)

Tự động sửa đổi và gợi ý truy vấn tìm kiếm dựa trên các phương pháp đối sánh chuỗi xấp xỉ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.3 MB, 79 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

TRẦN THÚY NHUNG

Tự ĐộNG SửA ĐổI VÀ GợI Ý TRUY VấN
TÌM KIếM DựA TRÊN CÁC PHƯƠNG PHÁP
ĐốI SÁNH CHUỗI XấP Xỉ
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số chuyên ngành: 60 48 0101

TÓM TẮT LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

NGƯỜI HƯỚNG DẪN KHOA HỌC
TS. Phan Xuân Hiếu

Thái Nguyên - 2015



i
LỜI CAM ĐOAN
Tên em là Trần Thúy Nhung, học viên lớp Cao học K12E, chuyên
ngành Khoa học máy tính, khóa học 2013 – 2015. Em xin cam đoan luận văn:
“TỰ ĐỘNG SỬA ĐỔI VÀ GỢI Ý TRUY VẤN TÌM KIẾM DỰA TRÊN
CÁC PHƢƠNG PHÁP ĐỐI SÁNH CHUỖI XẤP XỈ”.
Dƣới sự hƣớng dẫn của TS. Phan Xuân Hiếu - Trƣờng Đại học Công nghệ
- Đại học Quốc gia Hà Nội, với các nội dung trình bày đƣợc trích dẫn đầy đủ
từ các nguồn tài liệu tham khảo chính thống (báo khoa học, các sách có bản
quyền), các nội dung trình bày trong luận văn hoàn toàn trung thực. Và đây là
công trình nghiên cứu của bản thân kết hợp với sự hƣớng dẫn của TS. Phan


Xuân Hiếu tạo lập ra.
Nếu có nội dung nào sao chụp lại hoặc không phải do chính bản thân
tạo ra, em xin hoàn toàn chịu tránh nhiệm và chịu các hình thức kỷ luật.

Phú Thọ, ngày ... tháng 9 năm 2015
HỌC VIÊN

Trần Thúy Nhung


ii
LỜI CẢM ƠN
Điều đầu tiên em xin gửi lời cảm ơn tới các Thầy, Cô Trƣờng Đại học
Công nghệ thông tin và Truyền thông Thái Nguyên trong thời gian vừa qua đã
cung cấp và truyền đạt chƣơng trình học với các môn học có nội dung bổ ích.
Thông qua chƣơng trình học, em đƣợc lĩnh hội nhiều về kiến thức chuyên
môn, các phƣơng pháp tiếp cận bài toán trong tin học.
Em xin gửi lời cảm ơn sâu sắc tới TS. Phan Xuân Hiếu, ngƣời Thầy
đã hƣớng dẫn, chỉ bảo, giám sát, theo dõi, cung cấp phƣơng pháp, nguồn dữ
liệu tiếp cận bài toán để em có thể hoàn thành đƣợc luận văn của mình.
Em xin cảm ơn Ban Giám hiệu trƣờng Cao đẳng Kinh tế - Kỹ thuật Phú
Thọ cùng các đồng nghiệp trong Trƣờng, xin cảm ơn Khoa Công nghệ thông
tin – Trƣờng Đại học Công nghệ - Đại học Quốc gia Hà Nội đã tạo mọi điều
kiện giúp đỡ để em hoàn thành chƣơng trình học tập và luận văn tốt nghiệp.
Điều cuối cùng em xin cảm ơn gia đình, bạn bè luôn nhiệt tình ủng
hộ, động viên, giúp đỡ cả về vật chất lẫn tinh thần trong thời gian học tập
và nghiên cứu.
Trong quá trình thực hiện luận văn, mặc dù đã có rất nhiều cố gắng
nhƣng cũng không tránh khỏi những thiếu sót. Kính mong nhận đƣợc sự cảm
thông và tận tình chỉ bảo của các Thầy, Cô và các bạn.

Em xin trân trọng cảm ơn!.
Phú Thọ, ngày …… tháng 9 năm 2015.
HỌC VIÊN
Trần Thúy Nhung


iii
MỤC LỤC
LỜI CAM ĐOAN .............................................................................................. i
LỜI CẢM ƠN ................................................................................................... ii
DANH MỤC CÁC BẢNG................................................................................ v
DANH MỤC CÁC HÌNH ................................................................................. v
MỞ ĐẦU ........................................................................................................... 1
CHƢƠNG 1: GIỚI THIỆU BÀI TOÁN ........................................................... 4
1.1 Giới thiệu bài toán Tự động sửa đổi và gợi ý truy vấn tìm kiếm................ 4
1.1.2 Hỗ trợ truy vấn tìm kiếm bằng sửa đổi và gợi ý ............................... 7
1.1.3 Hỗ trợ truy vấn tìm kiếm xấp xỉ bằng Tiếng Việt........................... 10
1.2 Các cách tiếp cận giải quyết bài toán ........................................................ 11
1.2.1 Cách tiếp cận thông thƣờng ............................................................ 11
1.2.2 Cách tiếp cận theo thuật toán chuỗi con chung có độ dài lớn nhất .13
1.2.3 Cách cách tiếp cận theo các thuật toán Similar Text ..................... 14
1.3 Cách tiếp cận đối sánh chuỗi xấp xỉ .......................................................... 14
1.3.1 Bài toán đối sánh chuỗi xấp xỉ ....................................................... 14
1.3.2 Ứng dụng của đối sánh chuỗi xấp xỉ .............................................. 16
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 ......................................................................... 19
2.1 Các phƣơng pháp đối sánh chuỗi xấp xỉ ................................................... 19
2.1.1 Khoảng các Hamming .................................................................... 19
2.1.2 Khoảng cách Episode ..................................................................... 21
2.1.3 Khoảng cách Longest Common Sequence (LSC) ......................... 21

2.2 Phƣơng pháp đối sánh theo độ đo Levenshtein (string edit distance) ...... 23
2.2.1 Độ đo Levenshtein.......................................................................... 23


iv
2.2.2 Giải thuật tính độ đo Levenshtein .................................................. 24
2.2.3 Mô tả giải thuật............................................................................... 26
2.2.4 Trình tự các bƣớc thông qua ví dụ cụ thể....................................... 27
2.3 Tự động sửa đổi và gợi ý truy vấn dựa trên độ đo Levenshtein ............... 31
2.3.1 Đánh chỉ mục các truy vấn tìm kiếm đã có (lịch sử) ..................... 31
2.3.2 Thu gọn không gian đối sánh ......................................................... 36
2.3.3 Đối sánh chuỗi với độ đo Levenshtein .......................................... 39
2.3.4 Đối sánh với độ đo Cosine ............................................................. 40
2.3.5 Đối sánh với độ đo KL ................................................................... 41
2.3.6 Áp dụng độ đo Levenshtine vào thực tiễn luận văn ....................... 41
CHƢƠNG 3: THỰC NGHIỆM, ĐÁNH GIÁ VÀ ỨNG DỤNG ................... 45
3.1 Thực nghiệm và đánh giá đối sánh từng cặp chuỗi đơn lẻ ....................... 47
3.2 Thực nghiệm và đánh giá đối sánh đa chuỗi ............................................. 50
3.3 Thực nghiệm và đánh giá thu gọn không gian đối sánh ........................... 51
3.3.1 Một số điểm tƣơng đồng giữa ký tự Tiếng Việt và ký tự La Tinh . 52
3.3.2 Thực nghiệm và đánh giá ............................................................... 54
3.4 Thực nghiệm và đánh giá tự động sửa đổi và gợi ý truy vấn ................... 62
3.5 Ứng dụng sửa đổi và gợi ý truy vấn tự động ............................................ 65
KẾT LUẬN VÀ KIẾN NGHỊ......................................................................... 69
TÀI LIỆU THAM KHẢO ............................................................................... 71


v
DANH MỤC CÁC BẢNG
Bảng 2.1: Bảng mô tả khoảng cách Hamming giữa hai chuỗi có độ dài nhƣ nhau ....... 19

Bảng 2.2: Độ đo Levenshtein giữa hai chuỗi S và T ..................................................... 24
Bảng 2.3: Kỹ thuật đánh chỉ mục xuôi ........................................................................... 32
Bảng 2.4: Đánh chỉ số ngƣợc ......................................................................................... 34
Bảng 3.1: Các từ/chuỗi đƣợc xây dựng làm thực nghiệm thu gọn không gian đối sánh. .................... 54

DANH MỤC CÁC HÌNH
Hình 1.1 Mô hình truy vấn tìm kiếm ............................................................................... 5
Hình 2.1: Thuật toán Hamming ..................................................................................... 21
Hinh 2.2: Độ lệch pha Cosine của vector A và vector B ............................................... 41
Hình 3.1: Hệ thống thực nghiệm trên thuật toán Levenshtein ....................................... 46
Hình 3.2 Đối sánh chuỗi đơn lẻ...................................................................................... 48
Hình 3.3: Đối sánh với cặp chuỗi ―Công nghệ‖ và ―Công nghệ‖ .................................. 49
Hình 3.4: Đối sánh đa chuỗi ........................................................................................... 51
Hình 3.5: Thu gọn không gian với từ khóa ―Hệ thống‖ D=15 và K=15 ...................... 56
Hình 3.6: Thu gọn không gian với từ khóa ―Hệ thống‖ D=10 và K=15 ....................... 57
Hình 3.7: Thu gọn không gian với chuỗi ―Hệ thống‖có D = 5, K = 5 ........................... 58
Hình 3.8: Thu hẹp không gian với chuỗi ―Hệ thống thông tin‖ với D=30;K=20 ................... 59
Hình 3.9: Thu gọn không gian với chuỗi ―hệ thống thông tin‖ với D=10; K=15................... 60
Hình 3.10: Thu gọn không gian với ―chuỗi hệ thống thông tin‖ D=5 và K=5 ....................... 61
Hình 3.11: Hệ thống sửa từ cho từ ―Cổng‖. ................................................................... 63
Hình 3.12: Hệ thống sửa đổi từ cho từ khóa ―Tộngn‖ .................................................. 64
Hình 3.13: Hệ thống sửa đổi với từ khóa ―Gợi‖ ........................................................... 64
Hình 3.14: Gợi ý chuỗi ―Gựi ý truy vấn‖ ....................................................................... 66
Hình 3.15: Kết quả của các chuỗi gợi ý ―Hệ thống thông tin‖ ..................................... 67
Hình 3.16: Kết quả của các chuỗi gợi ý ―Phần mểmm‖ ............................................... 67
Hình 3.17: Kết quả của các chuỗi gợi ý ―Phần mểm‖ .................................................. 68


1
MỞ ĐẦU

1. Lý do chọn đề tài
Ngày nay, tìm kiếm thông tin là một trong các vấn đề nghiên cứu và
ứng dụng nhận đƣợc rất nhiều sự quan tâm của cộng đồng khoa học máy tính
và công nghệ thông tin. Trong bối cảnh bùng nổ dữ liệu, chúng ta cần có các
công cụ tìm kiếm thông tin tự động để hỗ trợ ngƣời dùng. Một trong những
tính năng quan trọng của một hệ thống tìm kiếm là khả năng tự động sửa đổi
và gợi ý truy vấn tìm kiếm. Đối với những hệ thống tìm kiếm lớn nhƣ Google,
Bing, … việc gợi ý các truy vấn đúng, chính xác sẽ giúp ngƣời dùng thao tác
rất nhanh và tìm đƣợc những kết quả theo ý muốn thậm chí chỉ với một truy
vấn gần đúng.
Luận văn này hƣớng đến khảo sát, nghiên cứu, và xây dựng thử
nghiệm mô đun tự động sửa đổi và gợi ý truy vấn tiếng Việt dựa vào các
phƣơng pháp và thuật toán đối sánh mẫu xấp xỉ. Việc đối sánh để tìm ra
đƣợc truy vấn đúng để gợi ý cần phải thực hiện rất nhanh và đây là một
khía cạnh nữa mà đề tài cần tập trung nghiên cứu.
Bài toán sánh mẫu không chỉ có trong miền dữ liệu văn bản mà còn có
trong các miền dữ liệu đa phƣơng tiện khác (ảnh, video, âm thanh, …). Trên
thực tế có rất nhiều ứng dụng sánh mẫu nhƣ: cơ chế sánh mẫu của hệ điều
hành (chẳng hạn, lệnh grep, fgrep ... trong hệ điều hành UNIX), cơ chế kiểm
tra một file nhiễm virus (sánh mẫu – xâu đặc tả virus - với nội dung file), máy
tìm kiếm (search engine) trên Internet, xác định mẫu gene bệnh xuất hiện
trong đoạn gene của ngƣời ...
Trong thời đại tốc độ lƣợng thông tin tăng gấp đôi sau chu kỳ 18 tháng,
dù cho tốc độ và khả năng lƣu trữ của máy tính tăng nhanh thì vấn đề nghiên
cứu, phát triển nâng cao hiệu quả của các thuật toán sánh mẫu luôn là chủ đề
nghiên cứu thời sự.
Trong các thuật toán của bộ môn khoa học máy tính, khái
niệm Khoảng cách Levenshtein thể hiện khoảng cách khác biệt giữa 2 chuỗi



2
kí tự. Khoảng cách Levenshtein giữa chuỗi T và chuỗi P là số bƣớc ít nhất
biến chuỗi S thành chuỗi T thông qua 3 phép biến đổi là:
- Xoá 1 kí tự.
- Thêm 1 kí tự.
- Thay kí tự này bằng kí tự khác.
Khoảng cách này đƣợc đặt theo tên Vladimir Levenshtein, ngƣời đã đề
ra khái niệm này vào năm 1965. Nó đƣợc sử dụng trong việc tính toán sự
giống và khác nhau giữa 2 chuỗi, nhƣ chƣơng trình kiểm tra lỗi chính tả
của winword spellchecker. Ví dụ: Khoảng cách Levenshtein giữa 2 chuỗi
"kitten" và "sitting" là 3, vì phải dùng ít nhất 3 lần biến đổi.
1. kitten -> sitten (thay "k" bằng "s")
2. sitten -> sittin (thay "e" bằng "i")
3. sittin -> sitting (thêm kí tự "g")
Tìm hiểu, nghiên cứu bài toán tự động sửa đổi và gợi ý truy vấn tìm
kiếm; đồng thời nghiên cứu các phƣơng pháp đối sánh chuỗi xấp xỉ và đặt
trọng tâm vào phƣơng pháp đối sánh theo độ đo Levenshtein; ứng dụng vào
sửa đổi và gợi ý truy vấn tự động. Là những gì mà luận văn này mong muốn
đạt đƣợc.
2. Tính thực tiễn của đề tài
Nhƣ đã trình bày ở trên, có rất nhiều tình huống xảy ra khi chúng ta tiến
hành tìm kiếm thông tin dƣới dạng chuỗi, nhƣ: gõ sai kí tự, gõ thừa kí tự,…
Để khắc phục những hạn chế trên và mang lại kết quả chính xác cho ngƣời sử
dụng nên em đã chọn đề tài ―Tự động sửa đổi và gợi ý truy vấn tìm kiếm dựa
trên các phƣơng pháp đối sánh chuỗi xấp xỉ.‖ Đặc biệt, đề tài này sẽ hƣớng
đến khảo sát, nghiên cứu, và thử nghiệm với dữ liệu truy vấn tiếng Việt. Việc
xây dựng đƣợc một mô đun tự động sửa đổi và gợi ý truy vấn với chất lƣợng
cao (chính xác, độ phủ cao, tốc độ nhanh, …), sẽ bổ sung một tính năng tốt
cho khâu tìm kiếm trên các site thƣơng mại điện tử, du lịch, y học, …



3
3. Nội dung nghiên cứu
Mục tiêu nghiên cứu của đề tài là tìm hiểu, nghiên cứu bài toán tự động
sửa đổi và gợi ý truy vấn tìm kiếm; đồng thời nghiên cứu các phƣơng pháp
đối sánh chuỗi xấp xỉ và đặt trọng tâm vào phƣơng pháp đối sánh theo độ đo
Levenshtein. Và ứng dụng vào sửa đổi và gợi ý truy vấn tự động.
4. Phạm vi nghiên cứu
- Tìm hiểu các khái niệm liên quan đến bài toán tự động sửa đổi và gợi
ý truy vấn tìm kiếm.
- Tìm hiểu một số phƣơng pháp đối sánh chuỗi xấp xỉ.
- Đi sâu tìm hiểu và nghiên cứu về phƣơng pháp đối sánh theo độ đo
Levenshtein.
- Thực nghiệm, đánh giá và ứng dụng tự động sửa đổi và gợi ý truy vấn.
5. Phƣơng pháp nghiên cứu
- Tìm hiểu các tài liệu về các vấn đề liên quan.
- Tham gia thảo luận và trình bày xemina.
- Thực nghiệm, đánh giá và ứng dụng.
6. Bố cục luận văn
Luận văn bao gồm: mục lục, phần mở đầu
- Chƣơng 1: Giới thiệu bài toán
- 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
- Chƣơng 3: Thực nghiệm, đánh giá, và ứng dụng
Kết luận và kiến nghị


4
CHƢƠNG 1: GIỚI THIỆU BÀI TOÁN
Trong chƣơng này sẽ giới thiệu một số nội dung liên quan đến các

phƣơng pháp đối sánh chuỗi xấp xỉ. Với mục tiêu cung cấp các thông tin và
các giải thuật đối sánh chuỗi xấp xỉ đƣợc áp dụng trong luận văn này. Với các
nội dung chính đƣợc đề cập tới bao gồm: Giới thiệu chung về máy tìm kiếm
với mô hình đơn giản và trình tự các bƣớc cơ bản cần phải có để thực hiện tìm
kiếm. Giới thiệu về phƣơng pháp đối sánh mẫu, đối sánh chính xác so với đối
sánh xấp xỉ[1]; tập trung giới thiệu các cách tiếp cận đối sánh xấp xỉ với giải
thuật đối sánh xấp xỉ dựa trên độ đo khoảng cách xấp xỉ của
Levenshtein.[1][2][3]
1.1 Giới thiệu bài toán Tự động sửa đổi và gợi ý truy vấn tìm kiếm
1.1.1 Mô hình truy vấn tìm kiếm
Với sự phát triển của khoa học về công nghệ thông tin, sự bùng nổ cả
về số lƣợng, chất lƣợng của dữ liệu và ứng dụng. Để có thể sử dụng một cách
hiệu quả hơn nữa các hệ thống thông tin hiện đại với độ phức tạp và độ lớn
của dữ liệu, đáp ứng nhanh chính xác, kịp thời, đã dẫn tới sự ra đời của các
máy tìm kiếm thông tin (chú trọng tới các máy tìm kiếm dựa trên văn bản).
Việc truy lùng thông tin luôn cần có thao tác so sánh (đối sánh). Dựa trên việc
đối sánh này chúng ta mới có thể truy xuất đƣợc thông tin. Một hệ thống truy
tìm thông tin nhƣ vậy đƣợc gọi chung là máy tìm kiếm thông tin. Máy này
thực hiện tập các thao tác xử lý với thông tin, sao cho cung cấp một chuỗi truy
vấn (một tập chuỗi) thực hiện truy tìm theo chuỗi truy vấn, tiến hành tìm kiếm
trong hệ thống dữ liệu (đƣợc thu thập, tổ chức, tiền xử lý, lƣu trữ ...) theo một
số phƣơng pháp để đƣa trả về dữ liệu đáp ứng truy vấn.
Máy tìm kiếm (Search Engine)[9], thực hiện các thao tác tìm kiếm dữ
liệu trong hệ thống khi có yêu cầu bởi một dữ liệu đầu vào là các từ khóa. Mô


5
hình tìm kiếm (hình 1.1) biểu diễn mô hình chung cho các máy thực hiện
chức năng tìm kiếm dữ liệu. Thực hiện thông qua ba bƣớc chính:
- B1: Nguồn cung cấp dữ liệu đầu vào Input bởi câu truy vấn Query

text viết tắt q.
- B2: Hệ thống tìm kiếm Search Engine thực hiện tìm kiếm dựa trên q
theo một phƣơng thức f tới cơ sở dữ liệu (CSDL) D.
- B3: Hệ thống trả kết quả dữ liệu R (Result).
Theo cách thức trên thì có thể biểu diễn mô hình dạng tổng quát:
R = f(q)D

(1)

Với kết quả R phải phụ thuộc vào các yếu tố sau đây:
- Nguồn dữ liệu D: Đƣợc tổ chức cụ thể cho máy tìm kiếm xử lý sao
cho hiệu quả. Với mỗi máy tìm kiếm khác nhau sẽ có cách tổ chức khác nhau.
Nhƣng dữ liệu sẽ có dung lƣợng rất lớn.
- Thuật toán tìm kiếm f: Thực hiện phƣơng pháp tìm kiếm cụ thể đƣợc
cài đặt, tìm kiếm trên miền dữ liệu D. Hàm sẽ trả về kết quả có dữ liệu tìm
thấy hoặc không có dữ liệu với câu truy vấn q cung cấp không phù hợp với dữ
liệu hiện có.
- Câu truy vấn q: Chuỗi hoặc từ cung cấp làm điều kiện để hàm thực
hiện tìm kiếm.
1

q

Seacrh Engine
F

2

R


Data base
3

Hình 1.1 Mô hình truy vấn tìm kiếm
Trong khuôn khổ luận văn này, nội dung chủ yếu đề cập tới cách thức
cung cấp hỗ trợ để trƣớc khi thực hiện bƣớc 1, cung cấp câu truy vấn q sao
cho có kết quả đƣợc cải thiện hơn trƣớc. Câu truy vấn q đƣợc nhắc tới trong
luận văn này thể hiện kiểu dữ liệu dạng văn bản (Text).


6
Với câu truy vấn q đƣợc cung cấp cho hệ thống, khi thực thi dữ liệu
phụ thuộc vào câu truy vấn này.
- Nếu câu truy vấn q đƣợc đƣa vào có nội dung chính xác (có trong
CSDL) thì hệ thống có thể trả về kết quả mong muốn. Các kết quả là một dữ
liệu thể hiện văn bản hoặc dạng khác. Các kết quả này đều thể hiện có liên
quan (toàn bộ hoặc bộ phận) với câu truy vấn. Nếu là toàn bộ thì chúng ta có
truy vấn chính xác (trùng khớp) ngƣợc lại có thể gọi là truy vấn bộ phận hoặc
xấp xỉ. Nhƣ vậy xấp xỉ có thể trả ra nhiều kết quả hơn truy vấn chính xác.
Mỗi loại đều có ý nghĩa thực tiễn cao.
- Nếu câu truy vấn không chính xác thì hệ thống không thể trả về kết
quả hoặc kết quả không thể nhƣ mong đợi.
Nhƣ vậy chất lƣợng câu truy vấn q phụ thuộc vào nguồn cung cấp câu truy
vấn. Nguồn cung cấp có thể là ngƣời dùng (ngƣời sử dụng hệ thống tìm kiếm để
truy lùng thông tin) hoặc hệ thống khác muốn sử dụng hệ thống tìm kiếm thông
tin. Nội dung q có hai vấn đề: đó là các văn bản đƣợc xây dựng có thể bị sai chính
tả và vấn đề còn lại không biết chính xác nội dung truy vấn để thu đƣợc kết quả
mong đợi.
Luận văn này sử dụng kỹ thuật hỗ trợ trong bƣớc 1 trƣớc khi diễn ra
bƣớc 2 nhằm tự động sửa và gợi ý truy vấn tìm kiếm:

- Kỹ thuật tự động sửa đổi từ trong q: Với trƣờng hợp thệ thống cung
cấp văn bản vẫn còn lỗi chính tả, các từ trong chuỗi truy vấn không có trong
từ điển hoặc bị sai. Với trƣờng hợp này cần phải sửa lại sao cho đúng rồi mới
tiến hành tìm kiếm. Với những ngƣời dùng ban đầu hoặc khả năng về ngôn
ngữ bị giới hạn thì việc tìm kiếm xảy ra sai sót sẽ nhiều hơn nhóm ngƣời
còn lại.
- Kỹ thuật gợi ý truy vấn tìm kiếm: Đối với trƣờng hợp q đƣa vào hệ thống
sẽ cung cấp thêm các kết quả q‘ sát với q để có các kết quả sát hơn so với mong


7
đợi. Hệ thống cung cấp q sẽ tiến hành lựa chọn q‘ phù hợp nhất để tiến
hành tìm kiếm.
Các kỹ thuật đƣợc trình bày cụ thể ở phần 1.1.2.
1.1.2 Hỗ trợ truy vấn tìm kiếm bằng sửa đổi và gợi ý
1.1.2.1 Tự động sửa đổi truy vấn
Với câu truy vấn q cung cấp tới máy tìm kiếm thì các dữ liệu văn bản
gồm các từ, về mặt ngữ pháp có thể xảy ra trƣờng hợp các từ cung cấp sai
chính tả (từ sai) trong câu truy vấn. Hệ thống sẽ thực hiện nhiệm vụ sửa lại
các từ bị sai này để có một câu truy vấn với các từ sai thành các từ đúng, bằng
cách áp dụng thuật toán của Levenshtien.
Giải thuật sửa đổi truy vấn:
Input:
- q Text; chuỗi cần tìm kiếm trong hệ thống
Ouput:
- q‘: Chuỗi văn bản xấp xỉ q theo độ đo d
------------------------Begin Function
Khởi tạo mảng các từ Words = new Array();
B1: Tách q thành mảng các từ Words
B2: Foreach ( w trong Words)

If (w từ sai) { thay w bởi w‘ đúng }
End for each
B3: Gộp Words thành q‘;
B4: Return q‘;
End Function


8
Với ý tƣởng phát hiện các từ sai, hệ thống cần phải thực hiện bƣớc
quan trọng đầu tiên đó chính là tổ hợp các từ vào tập từ điển. Các từ này phải
đƣợc lựa chọn sàng lọc sao cho dữ liệu từ điển không đƣợc lặp lại (các từ phải
là khác nhau). Các từ phải có trong từ điển Tiếng Việt, các từ phải phản ánh
đƣợc dữ liệu trung thực[4][6].
Ý tƣởng giải pháp sửa đổi các từ đƣợc trình bày ở thuật toán trên đƣợc
thực hiện nhƣ sau:
- Bƣớc 1: Từ chuỗi truy vấn đƣợc nguồn cung cấp đƣa vào hệ thống thực
hiện tìm kiếm. Tại bƣớc này hệ thống thực hiện tách chuỗi thành các từ riêng lẻ.
- Bƣớc 2: Từ các từ ở trong bƣớc thứ nhất sẽ đƣợc thực hiện đối sánh
xấp xỉ với từ điển dữ liệu của hệ thống. Nhằm các mục đích:
+ Xác định đƣợc từ đúng hoặc sai dựa trên đối sánh xấp xỉ.
+ Nếu từ là đúng: Hệ thống tìm từ trùng khớp với từ đƣợc cung cấp từ
câu truy vấn. Hệ thống sẽ không thay thế từ này nữa.
+ Nếu từ là sai: Hệ thống đối sánh xấp xỉ chỉ ra khoảng cách d
(Levenshtein). Nếu d0, hệ thống sẽ thực hiện việc cung cấp từ sát nhất để
tiến hành sửa đổi từ sao cho đúng nhất. Để thực hiện việc này, em đã xây
dựng chức năng sửa từ sai và thực hiện tìm ra từ gần nhất của từ sai theo thuật
toán xấp xỉ và thuật toán Similar Text. Với các từ (các từ này đã đƣợc rút gọn
không gian đối sánh thực hiện) có độ dài nhỏ nhất trong các từ của hệ thống
và từ này thỏa mãn yêu cầu là độ tƣơng đồng (similar) nhất với từ sai này thể
hiện trong thuật toán Similar Text.

+ Thực hiện lặp lại cho các từ tiếp theo trong các từ của chuỗi truy vấn.
Qua các bƣớc trên việc xử lý các từ trong chuỗi truy vấn đƣợc thực hiện.
Kết quả của chức năng này đƣợc thực nghiệm trong chƣơng 3.
1.1.2.2 Tự động gợi ý truy vấn tìm kiếm
Trong kỹ thuật này, sẽ xây dựng giải thuật gợi ý một số truy vấn q‘ dựa
trên truy vấn đầu vào q. Với q giải thuật sẽ đƣa ra một số câu truy vấn q‘ gần


9
với q nhất dựa trên phƣơng pháp sánh chuỗi xấp xỉ áp dụng thuật toán độ đo
Levenshtein. Bằng cách đối sánh q với các q‘ có trong cơ sở dữ liệu để đƣa ra
các q‘ có độ đo Levenshtein không vƣợt quá độ đo cho trƣớc d. Việc cài đặt
hệ thống đƣợc thực nghiệm cụ thể trong chƣơng 3 của luận văn này.
Mục đích của kỹ thuật gợi ý tìm kiếm và việc dựa trên câu truy vấn thì
hệ thống sẽ đƣa ra các chuỗi truy vấn có nội dung xấp xỉ (tƣơng đồng) với
truy vấn gốc. Thực hiện đƣợc điều này sẽ cung cấp cho ngƣời dùng một trải
nghiệm khá tốt, việc cung cấp này còn giúp ngƣời dùng định hình đƣợc các
chuỗi truy vấn về sau, hỗ trợ ngƣời dùng ở nhiều mức độ và hiểu biết khác
nhau [4]. Nhằm mục đích lâu dài đó là hiểu đƣợc tính cách ngƣời dùng sử
dụng hệ thống tìm kiềm, đáp ứng dữ liệu của ngƣời dùng một cách hữu dụng
và bổ ích. Hệ thống sẽ biết chính xác dữ liệu ngƣời dùng muốn cung cấp là gì.
Kỹ thuật này đƣợc thực hiện nhƣ sau:
- Tổ hợp các chuỗi truy vấn tƣơng tự nhau.
- Cung cấp các chuỗi truy vấn tƣơng tự với chuỗi truy vấn mà ngƣời
dùng cung cấp.
Trong kỹ thuật gợi ý truy vấn, em sẽ sử dụng thuật toán đối sánh
xấp xỉ dựa trên giải thuật của Levenshtein [8]. Trình tự đƣợc thực hiện
theo các bƣớc sau:
Bƣớc 1: Nhận dữ liệu là chuỗi truy vấn từ phía ngƣời dùng cung cấp.
Bƣớc 2: Lựa chọn các chuỗi thích hợp tham gia đối sánh. Trong bƣớc

này thực hiện việc lựa chọn các chuỗi tham gia đối sánh thích hợp nhằm giảm
không gian đối sánh, cụ thể đƣợc trình bày trong phần thu hẹp không gian đối
sánh. Các chuỗi phải có một số điều kiện sau đây để có thể đƣợc lựa chọn (dĩ
nhiên không hề lựa chọn hết các chuỗi):
- Phù hợp về độ dài: Các chuỗi đƣợc lựa chọn có độ dài phải tƣơng
đƣơng với độ dài chuỗi truy vấn. Ở đây do hệ thống sẽ cung cấp. Trong phần
này, sẽ thực nghiệm với khoảng cách chênh lệch của chuỗi trong hệ thống dữ


10
liệu để so sánh với chuỗi truy vấn với hằng số k. Để loại bỏ các chuỗi quá
ngắn và quá dài với chuỗi truy vấn. Ví dụ nếu chuỗi gõ vào là ―Máy tìm
kiếm‖ nhƣ vậy hệ thống sẽ chỉ lấy ra các chuỗi có độ dài nhƣ các chuỗi ―máy
tìm‖ hoặc ―máy tìm kiếm xấp xỉ‖ để làm các ứng viên tham gia đối sánh. Hệ
thống sẽ không đƣa ra các chuỗi dạng ―máy‖, ―máy tìm kiếm theo độ đo xấp
xỉ‖[15]. Vì lý do nó quá ngắn và quá dài dẫn tới thuật toán độ xấp xỉ trả ra là sẽ
lớn hơn.
- Phù hợp về nội dung: Các chuỗi đƣợc tổ hợp đối sánh nhằm khống
chế trƣớc về khoảng cách đối sánh. Một phần nội dung của chuỗi làm ứng
viên tham gia đối sánh phải có một phần nội dung của chuỗi truy vấn. Ví dụ
nếu với chuỗi truy vấn ―Tìm kiếm xấp xỉ‖ thì một phần của chuỗi ứng viên
nên chứa ít nhất là các từ ―Tìm‖, ―kiếm‖, ―xấp‖, ―xỉ‖, dĩ nhiên chứa càng
nhiều phần thì càng tốt.
- Phù hợp về khoảng cách xấp xỉ: Các chuỗi đƣợc tham gia đối sánh có
khoảng cách xấp xỉ phù hợp thể hiện ở chỗ: để một chuỗi là ứng cử viên thì
khoảng cách độ đo xấp xỉ càng nhỏ thì độ ứng viên càng cao, phải tính tới
trƣờng hợp độ xấp xỉ là 0 (đối sánh trùng khớp). Vậy hệ thống thực hiện
khống chế độ đo xấp xỉ sao cho phù hợp. Nếu độ đo quá dài hoặc quá ngắn sẽ
ảnh hƣờng trực tiếp tới kết quả của hệ thống cần gợi ý.
- Phù hợp về tiền tố: Các chuỗi đƣợc lấy nếu có tiền tố (chuỗi con trƣớc),

đƣợc làm ứng cử viên cho các trƣờng hợp nếu các chuỗi đã thỏa mãn tiêu trí
nhƣng cần phải lựa chọn thêm các chuỗi ứng viên để có các chuỗi thật sự phù hợp.
Chuỗi nào có độ dài chuỗi con trùng với chuỗi truy vấn nhiều nhất thì đƣợc chọn.
Bƣớc 3: Cung cấp một vài chuỗi tƣơng đồng nhất.
Sau khi thực hiện đƣợc các bƣớc, lấy về các chuỗi phù hợp gợi ý, hệ
thống tiến hành xử lý các chuỗi và lấy ra một số chuỗi phù hợp nhất. Hệ
thống có thể cài đặt tùy chọn cung cấp số chuỗi gợi ý cụ thể.
1.1.3 Hỗ trợ truy vấn tìm kiếm xấp xỉ bằng Tiếng Việt


11
Hiện nay có nhiều máy tìm kiếm đƣợc xây dựng đã hỗ trợ ngôn ngữ
tìm kiếm bằng Tiếng Việt nhƣ Google, Yahoo, Bing. Tại Việt Nam, vài năm
trở lại đây, một trang web dạng máy tìm kiếm cũng đƣợc xây dựng và hỗ trợ
Tiếng Việt. Nhƣng hầu hết chƣa có công cụ xử lý các câu truy vấn trƣớc khi
cung cấp cho máy tìm kiếm, làm ảnh hƣởng tới các kết quả trả về của bộ máy
tìm kiếm. Việc cung cấp một giải pháp nhằm nâng cao hiệu quả tìm kiếm,
bằng cách xây dựng kỹ thuật xử lý các câu truy vấn tìm kiếm, dựa trên
phƣơng pháp xấp xỉ đƣợc lựa chọn trong luận văn này làm tiền đề cho việc
xây dựng ứng dụng cho ngƣời Việt sau này.
Với đặc thù của ngôn ngữ Tiếng Việt, chính vì vậy luận văn không đi
sâu vào đặc tả ngôn ngữ Tiếng Việt, mà chỉ nêu ra một số đặc điểm khác biệt
để thấy rằng các công cụ tìm kiếm xử lý tốt trên tiếng Latin (Anh, Pháp, Đức
...), nhƣng chƣa chắc đã xử lý tốt Tiếng Việt. Tiếng Việt với sự phức tạp vốn
có của nó, và có một số đặc điểm riêng nhƣ sau:
- Kí tự chữ cái trong bảng kí tự Việt: Ngƣời Việt sử dụng bộ chữ cái và chữ
số, kí tự có dấu. Nhƣ vậy đây là một điểm khác biệt cho xử lý chữ viết, văn bản.
- Từ thể hiện sự ghép của các kí tự chữ cái và kí tự có dấu và mũ dẫn
tới độ phức tạp lại đƣợc thay đổi và có độ phức tạp khó. Ngoài ra, còn có các
quy định về văn phạm các từ đi với nhau, các vần đi với nhau, từ láy và các

sắc thái riêng, ...
- Câu đƣợc thành lập theo ý nghĩa và các luật. Các câu cũng có sự biến
chuyển theo văn cảnh và ý nghĩa cụ thể.
Với các đặc điểm trên, nếu các máy tìm kiếm không có công cụ hỗ trợ
với đặc điểm này thì việc hỗ trợ tìm kiếm theo ngôn ngữ Tiếng Việt chắc chắn
sẽ đƣa ra kết quả không hoàn toàn nhƣ mong muốn.
1.2 Các cách tiếp cận giải quyết bài toán
1.2.1 Cách tiếp cận thông thường


12
Với bài toán ―tự động sửa đổi và gợi ý truy vấn tìm kiếm‖, đƣợc thực
hiện với thuật toán đối sánh xấp xỉ dựa trên thuật toán của Levenshtein với
một số công việc chính cần phải thực hiện.
1.2.1.1 Thu thập các từ và các chuỗi, tổ chức trong hệ thống
Trong quá trình làm luận văn em đã tiến hành thu thập và xây dựng ngân
hàng các từ để tiến hành giai đọan thử nghiệm cho chức năng tìm từ và sửa
đổi từ sai.
Tiến hành thu thập và tạo dựng thƣ viện các câu, nhằm mục đích thực
nghiệm bài toán gợi ý truy vấn cho chuỗi truy vấn. Hệ thống sẽ tiến hành đối
sánh để tìm ra các chuỗi đối sánh sao cho phù hợp đối với chuỗi cung cấp.
1.2.1.2 Thực hiện cài đặt thuật toán
Các từ và chuỗi đƣợc cung cấp, hệ thống sẽ tiến hành đối sánh với thƣ
viện các từ và các câu dựa trên thuật toán đối sánh xấp xỉ với độ đo
Levenshtein.
Khi thực hiện thuật toán, hệ thống lần lƣợt đối sánh các từ, các chuỗi
với câu truy vấn đƣợc cung cấp từ giao diện. Hệ thống sẽ chỉ ra đƣợc khoảng
cách giữa chuỗi truy vấn và dữ liệu hệ thống. Với độ đo xấp xỉ thu đƣợc, hệ
thống sẽ tiến hành xử lý và lấy ra các chuỗi có độ đo nhỏ nhất làm các kết quả
cho việc gợi ý. Hệ thống lấy ra một kết quả với độ đo nhỏ nhất làm kết quả

cho việc sửa đổi từ.
1.2.1.3 Tổ chức thực nghiệm bài toán
Qua quá trình thực nghiệm sẽ có nhận xét thêm về độ đo. Độ đo chỉ ra số
bƣớc ngắn nhất để chuyển từ chuỗi T sang chuỗi P. Với vấn đề bài toán nếu độ
đo là 0 thì hai chuỗi trùng nhau. Điều này dẫn đến kết quả tốt cho bài toán sửa
đổi từ và xác minh từ có phải sửa đổi hay không (từ cần phải sửa là độ đo khác
0, một từ làm từ điển để đối sánh). Thêm vào đó nếu khoảng cách khác không,
nhƣ vậy sẽ có nhiều kết quả có cùng độ đo, số lƣợng kết quả phụ thuộc vào các
dữ liệu thu thập đƣợc. Việc lựa chọn là khó khăn khi có các kết quả tƣơng tự


13
nhau cùng độ đo, trong khi đó hệ thống chỉ cần một vài chuỗi gợi ý tốt.
Với việc lựa chọn một từ để sửa đổi thì việc lấy ra từ nào đó càng khó
khăn hơn. Nhƣ vậy, cách tiếp cận này chƣa thỏa đáng và cần phải tiến
hành các cách tiếp cận khác nhau.
1.2.2 Cách tiếp cận theo thuật toán chuỗi con chung có độ dài lớn nhất
Dựa trên các thuật toán về chuỗi con chung, để tiến hành xem xét yếu tố với
các chuỗi nào có bắt đầu từ chuỗi con chung dài nhất đƣợc tìm thấy trong hệ
thống, sẽ đƣợc thêm vào làm ứng viên cho việc sửa đổi hoặc gợi ý.
Chuỗi con chung lớn nhất là chuỗi mà nó xuất hiện nhiều nhất có thể
trong hai chuỗi T và P [2]. Dẫn tới một số nhận xét sau đây:
- Nếu chuỗi con chung S trùng với chuỗi T và chuỗi P, chứng tỏ T và P là
trùng nhau.
- Nếu chuỗi con chung S không trùng với T và P, thì S có độ dài nhỏ
hơn T và độ dài đƣơng nhiên nhỏ hơn P. Vị trí của S có thể nằm ở đầu, nằm ở
giữa hoặc ở cuối, tùy thuộc vào giá trị của P và T. Nhƣ vậy trong trƣờng hợp
này cũng dẫn ra trƣờng hợp tƣơng đƣơng ở trên.
Kết quả nếu cho T là chuỗi truy vấn và tìm trong hệ thống các từ và các
chuỗi, với T có thể lựa chọn ra đƣợc nhiều chuỗi P tƣơng ứng và làm ứng

viên sáng giá. Nhƣ vậy, việc lựa chọn lúc này sẽ khó khăn, vì chƣa có thêm
thông tin đánh giá các chuỗi này để đƣa vào lựa chọn các chuỗi phù hợp cho
chức năng gợi ý, đặc biệt là cho chức năng sửa đổi. Đƣơng nhiên với trƣờng hợp
tốt nhất là mỗi T chỉ chọn đƣợc một P khác nhau phù hợp thì kết quả sẽ chính
xác hơn rất nhiều.
Trong nội dung luận văn, sẽ cung cấp thêm hƣớng tiếp cận đó là các
chuỗi văn bản có tính chất tƣơng tự nhau (giống nhau đƣợc lƣợng hóa).


14
1.2.3 Cách cách tiếp cận theo các thuật toán Similar Text
Các thuật toán cung cấp cho thao tác tính toán độ tƣơng đồng chuỗi T
và chuỗi P. Thuật toán chỉ ra đƣợc hai chuỗi bất kỳ có độ tƣơng đồng k (là
một số dƣơng), k có giá trị nằm trong đoạn [1..100], k thể hiện số phần trăm
tƣơng đồng. Nếu k càng tăng thì chuỗi T và chuỗi P đƣợc cho là càng tƣơng
đồng. Nếu k = 100 thì T và P là trùng khớp nhau. Nếu k = 0 thì hai chuỗi T và
P không tƣơng đồng. Hệ thống có thể dựa vào thuật toán này để đƣa ra đánh
giá cho các chuỗi trong dữ liệu, để lựa chọn chuỗi ứng viên cho các chức
năng sửa đổi và gợi ý truy vấn phục vụ bài toán [16]. Tuy nhiên, hệ thống sẽ
gặp phải một vài vấn đề với cách tiếp cận này. Thƣ viện các chuỗi xây dựng
đƣợc cần phải có sự sàng lọc kỹ. Các chuỗi tham gia đối sánh phải đƣợc chọn
lọc không thể lựa chọn toàn bộ các chuỗi tham gia. Nếu việc chọn toàn bộ dữ
liệu tham gia sẽ dẫn tới việc tìm kiếm trên không gian lớn, và hiệu quả tìm
kiếm trên hệ thống sẽ giảm. Kế đến là việc phải chỉ ra chuỗi cho việc gợi ý
cũng là vấn đề cần tính tới. Việc chỉ ra một chuỗi để sửa đổi lại gặp khó khăn
khi cần phải quyết định giữa hai chuỗi có độ tƣơng đồng là nhƣ nhau. Trong
một số trƣờng hợp không nhất thiết độ tƣơng đồng cao đã đƣa ra đƣợc kết quả
chính xác. Vì vậy, luận văn này chủ động nghiên cứu phƣơng pháp đối sánh
chuỗi xấp xỉ làm trung tâm, và kết hợp với các thuật toán thu gọn không gian
với phƣơng pháp chỉ ra văn bản tƣơng đồng để có sự lựa chọn tốt nhất cho các

chức năng mà hệ thống cần phải đáp ứng.
1.3 Cách tiếp cận đối sánh chuỗi xấp xỉ
1.3.1 Bài toán đối sánh chuỗi xấp xỉ
Đối sánh (so sánh) chuỗi đƣợc chia thành hai loại hình đối sánh khác
nhau đó là đối sánh chính xác và đối sánh xấp xỉ. Các giải thuật về đối sánh
chính xác thực hiện nhiệm vụ tìm kiếm chính xác của từ khóa k trong văn bản
T và trả về vị trí của k trong T. Trong khuôn khổ luận văn này, em đề cập tới


15
phƣơng pháp đối sánh xấp xỉ sử dụng thuật toán của Levenshtein. Khái niệm
xấp xỉ đƣợc thể hiện gần đúng, gần chính xác [4].
Bài toán đối sánh chuỗi xấp xỉ có nhiều cách phát biểu. Sau đây là một
cách phát biểu: Tìm sự xuất hiện chuỗi T hoặc chuỗi T‘ là chuỗi con của T,
xuất hiện trong chuỗi P, sao cho khoảng cách (sự sai khác) của T‘ và T là nhỏ
nhất. Chuỗi T đƣợc coi là xấp xỉ với T‘, thể hiện T‘ gần đúng với T và chỉ sai
khác một số kí tự. Ví dụ: Cho chuỗi T =‖xap xi‖ với các chuỗi T‘ xấp xỉ bao
gồm {―ap xi‖,‖Xap x‖, ―xbp xi‖, ‗dap xi‘, ...} [1].
Khoảng cách nhỏ nhất giữa T‘ và T là số thao tác nhỏ nhất để chuyển
chuỗi T‘ thành chuỗi T. Có nhiều thuật toán xác định khoảng cách của T và
T‘. Trong luận văn này, em giới thiệu một số giải thuật xác định khoảng cách
nhƣ Hamming, Levenshtein Episde, Longest Command Sequense...
Nhìn chung các giải thuật đều dựa trên việc xác định khoảng cách
giữa T và T‘. Để chuyển T‘ thành T thì cần phải thực hiện các thao tác
cơ bản sau đây:
- Thao tác chèn thêm kí tự: ―Xap x‖ thành ―Xap xi‖ cần thêm kí tự ‗i‘.
- Thao tác xóa kí tự: ―Xap xii‖ chuyển thành ―Xap xi‖ cần xóa kí tự ‗i‘.
- Thao tác thay thế kí tự: Ví dụ ―Xbp xi‖ thành ―Xap xi‖ cần phải thay
thế ‗b‘ thành ‗a‘.
- Thao tác hoán chuyển kí tự: Ví dụ ―iap xx‖ thành ―xap xi‖ cần phải

đổi ‗i‘ cho ‗x‘ (kí tự x cuối).
Khoảng cách d của T và T‘ thể hiện số bƣớc chuyển nhỏ nhất để T‘
thành T, d là tổng số bƣớc chuyển (Chèn, Xóa, Thay thế, hoán đổi [3].
Nếu cho chuỗi T và T‘ thì hoàn toàn có thể tính đƣợc khoảng cách d
của hai chuỗi. Ví dụ nếu cho T = ―Chao cac ban‖ và T‘ = ―Chao can bai‖ có
d(T, T‘) = 2; nhƣ vậy độ xấp xỉ của T và T‘ lúc này là 2. Trong trƣờng hợp
khác T = ―Chao cac ban‖ và T‘ = ―Chao cac bai‖ lúc này d(T, T‘) = 1. Có thể


16
nói độ xấp xỉ trong trƣờng hợp thứ hai nhỏ hơn trƣờng hợp thứ nhất. Độ xấp
xỉ d càng nhỏ thì T‘ gần T hơn.
Trong phƣơng pháp đối sánh chuỗi xấp xỉ, các thuật toán đƣợc phân về
hai loại theo trình tự xử lý chuỗi dữ liệu T. Nhóm thuật toán On-line và nhóm
thuật toán Off-line [2]:
- Nhóm các thuật toán On-line: Nhóm này thực hiện tiền xử lý chuỗi T
trƣớc sau đó mới sử dụng thuật toán đối sánh xấp xỉ. Việc tiền xử lý dữ liệu đầu
vào làm cho hiệu quả của thuật toán đối sánh trở nên hiệu quả rất nhiều. Hầu hết
thuật toán sẽ xây dựng lại chuỗi T thành các chuỗi dạng tiền tố hoặc hậu tố, dựa
vào cấu trúc cây hậu tố, đánh giá các hậu tố tốt (phù hợp nhất). Dựa vào việc đƣa
ra các hậu tố tốt của T làm cho việc xử lý tìm kiếm sẽ hiệu quả hơn, giải thuật
tìm kiếm sẽ đơn giản hơn, làm đẩy nhanh tốc độ tìm kiếm. Các giải thuật đƣa ra
hậu tố phần nào quyết định tới chất lƣợng và hiệu quả của giải thuật tìm kiếm.
Các giải thuật ở trong nhóm này có thể kể đến Boyer-More[15], UkkonenWood [15].
- Nhóm các thuật toán Off-line: Nhóm này khác biệt hoàn toàn với
nhóm On-line. Các thuật toán sẽ đƣợc thực hiện giải thuật đối sánh xấp xỉ mà
không xử lý chuỗi dữ liệu T.
1.3.2 Ứng dụng của đối sánh chuỗi xấp xỉ
Sánh chuỗi xấp xỉ đƣợc ứng dụng trong nhiều bài toán khoa học cũng
nhƣ thực tế. Trong khoa học, bài toán xấp xỉ có thể tìm kiếm ra các chuỗi

tƣơng tự chuỗi mẫu T trong văn bản P [5].
- Ứng dụng cụ thể nhƣ: Có thể tìm ra các virus trong file đƣợc cho là có
virus dựa trên mẫu virus cụ thể đƣa vào.
- Ứng dụng trong Y học: Tìm kiếm các đoạn ADN trong chuỗi Protein.
Cho phép tìm ra các GEN gây bệnh hoặc GEN cho là tốt cho giới Y học.


17
- Ứng dụng trong tìm kiếm văn bản: Tìm ra các văn bản có xuất hiện
các văn bản tƣơng tự văn bản cho trong máy tìm kiếm.
- Ứng dụng trong kiểm tra chính tả và sửa lỗi chính tả trong văn bản.
- Ứng dụng trong nhận dạng mẫu trong dữ liệu dạng đa phƣơng tiện
nhƣ Music, Picture, Videos ...
Trong thực tiễn, các máy tìm kiếm trên nền Internet dựa vào các dữ liệu
đầu vào để tìm kiếm các dữ liệu có trong hệ thống. Việc cung cấp dữ liệu đầu
vào cho hệ thống tìm kiếm phụ thuộc vào trình độ của ngƣời cung cấp. Nếu
dữ liệu đƣợc cung cấp hỗ trợ tốt cho máy tìm kiếm và dữ liệu trả về đúng với
mong đợi của ngƣời dùng thì việc tìm kiếm là thành công. Có rất nhiều
trƣờng hợp ngƣời cung cấp chỉ đƣa ra đƣợc chuỗi tìm kiếm gần sát với yêu
cầu thật sự, và không thể cung cấp chính xác thông tin tìm kiếm làm cho công
việc tìm kiếm sẽ khó cung cấp dữ liệu theo mong muốn của ngƣời dùng. Nội
dung của luận văn với mong muốn xây dựng giải pháp hỗ trợ tốt hơn cho
ngƣời dùng khi cung cấp thông tin tìm kiếm. Bằng một số kỹ thuật hỗ trợ ngƣời
dùng, sửa các từ sai trong chuỗi tìm kiếm, gợi ý các chuỗi tìm kiếm gần sát với
chuỗi tìm kiếm của ngƣời dùng, để ngƣời dùng có thể lựa chọn các chuỗi tìm
kiếm với mong muốn của mình.
Kết luận chƣơng 1:
Qua quá trình tìm hiểu, nghiên cứu xây dựng dƣới sự hƣớng dẫn của
giáo viên hƣớng dẫn em đã tiếp thu và xây dựng đƣợc một số kết quả sau:
- Về lý thuyết: tiến hành nghiên cứu mô hình máy tìm kiếm, nghiên cứu

các giải thuật về đối sánh chuỗi xấp xỉ (Levenshtein, Hamming, Boyer-More,
Ukooren-Wood, Gallin, n-Gram, q-Gram, ...). Tập trung chủ đạo vào giải
thuật Levenshtein để tiến hành thực nghiệm cho thuật toán.
- Về kết quả ứng dụng thực tế: Dựa trên các vấn đề lý thuyết, em xây
dựng đƣợc hai ứng dụng (hệ thống sửa lỗi chính tả, hệ thống gợi ý truy vấn
tìm kiếm) áp dụng thuật toán đối sánh chuỗi xấp xỉ. Hệ thống này, em đã trực


18
tiếp xây dựng và tiến hành trải nghiệm thực tế với ngôn ngữ Tiếng Việt. Dựa
trên từ điển Tiếng Việt cho phép sửa từ nếu từ nào đó gõ sai. Dựa trên tập các
câu hệ thống thu thập đƣợc, cho phép gợi ý dựa vào các câu trong hệ thống.
Các câu đƣợc lựa chọn để gợi ý là các câu có độ xấp xỉ với câu đƣợc cung cấp
bởi giao diện ngƣời dùng.


×