ĐẠI HỌC QUỐC GIA TP. HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
---------o0o----------
LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
VN-KIM SEARCH TIẾNG ANH VỚI TRUY VẤN
CÓ LIÊN TỪ LUẬN LÝ, TÍNH TỪ VÀ LƯỢNG TỪ
Hội Đồng: Khoa Học Máy Tính 1
GVHD
: Pgs.Ts. Cao Hoàng Trụ
GVPB
: Ks. Châu Kim Cường
-----o0o-----
SVTH 1 : Nguyễn Trần Đăng Khoa
(50601130)
SVTH 2 : Tạ Tất Tài
(50602084)
TP. Hồ Chí Minh, tháng 12 – 2010
i
CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học : PGS.TS. CAO HOÀNG TRỤ
Cán bộ chấm nhận xét 1 :..........................................................................................
Cán bộ chấm nhận xét 2 :..........................................................................................
Luận văn đại học được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN ĐẠI HỌC
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày . . . . . tháng . . . . năm . . . . .
LỜI CAM ĐOAN
Chúng tôi cam đoan rằng ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi rõ
trong luận văn, các công việc trình bày trong luận văn này là do chính chúng tôi thực hiện và
chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường đại học nào
khác.
Ngày ........ Tháng....... Năm.........
Ký tên
ii
LỜI CẢM ƠN
Trước hết, chúng tôi xin gởi lời cảm ơn chân thành và sâu sắc đến Pgs.Ts. Cao Hoàng Trụ, và
kỹ sư Châu Kim Cường, những người đã trực tiếp hướng dẫn chúng tôi trong quá trình làm luận
văn này. Sự hướng dẫn chu đáo, tận tình, cùng với những tài liệu và lời khuyên quý giá của thầy
và anh trong hơn 3 tháng qua là nhân tố không thể thiếu để chúng tôi có thể hoàn thành nhiệm vụ.
Chúng tôi xin gửi lời cảm ơn đến gia đình và bạn bè, những người luôn sát cánh, động viên, và
tạo mọi điều kiện tốt nhất để chúng tôi có thể học tập và hoàn tất được luận văn tốt nghiệp này.
Chúng tôi chân thành biết ơn sự tận tình dạy dỗ và sự giúp đỡ của tất cả quý thầy cô khoa
Khoa học và Kỹ thuật Máy tính trường Đại học Bách khoa.
Luận văn này khó tránh khỏi còn thiếu sót do tầm nhìn của chúng tôi còn hạn hẹp, rất mong
nhận được sự góp ý của quý thầy cô cùng các bạn.
iii
TÓM TẮT
Luận văn này xây dựng một hệ thống tìm kiếm dựa trên ngữ nghĩa. Hệ thống có thể “hiểu”
được câu truy vấn đầu vào bằng tiếng Anh. Câu truy vấn không chỉ chứa thực thể và từ quan hệ,
mà còn chứa tính từ, lượng từ, và liên từ luận lý.
Để biên dịch câu truy vấn ngôn ngữ tự nhiên, luận văn này dựa trên nền tảng web ngữ
nghĩa, kết hợp với phương pháp dịch ít phụ thuộc vào cú pháp của nhóm VN-KIM. Để thể hiện
nội dung biên dịch được, luận văn biểu diễn bằng đồ thị ý niệm. Cuối cùng, câu truy vấn SeRQL
được dùng để tìm kiếm kết quả. Hướng tiếp cận này đã giúp đề tài xây dựng được một hệ thống
trực quan với người sử dụng, và tráng kiện với lỗi cú pháp.
Hiệu quả của hệ thống được đánh giá trên tập câu truy vấn mẫu “TREC 2002”. Tỉ lệ số câu
hệ thống biên dịch thành công là 85.91%.
iv
MỤC LỤC
LỜI CAM ĐOAN .......................................................................................................................... ii
LỜI CẢM ƠN .............................................................................................................................. iii
TÓM TẮT ..................................................................................................................................iv
MỤC LỤC ................................................................................................................................... v
DANH MỤC HÌNH.................................................................................................................... viii
DANH MỤC BẢNG ......................................................................................................................ix
CHƯƠNG 1 TỔNG QUAN ........................................................................................................... 1
1.1
Giới thiệu ....................................................................................................................... 1
1.2
Mục tiêu phạm vi ............................................................................................................ 3
1.3
Kết quả đạt được............................................................................................................. 5
1.4
Cấu trúc luận văn ............................................................................................................ 6
CHƯƠNG 2 KIẾN THỨC NỀN TẢNG ....................................................................................... 7
2.1
Chú thích ngữ nghĩa và tìm kiếm ngữ nghĩa .................................................................... 7
2.1.1
Các khái niệm ........................................................................................................... 7
2.1.2
Các phần mềm, công cụ sử dụng ............................................................................... 8
2.2
Đồ thị ý niệm ................................................................................................................ 10
2.2.1
Sơ lược về đồ thị ý niệm ......................................................................................... 10
2.2.2
Đồ thị ý niệm mở rộng ............................................................................................ 12
2.3
Tìm kiếm thực thể và tài liệu ........................................................................................ 13
2.3.1
Câu truy vấn SeRQL [8] ......................................................................................... 13
2.3.2
Semantic Lucene ..................................................................................................... 14
CHƯƠNG 3 PHÂN TÍCH VẤN ĐỀ VÀ PHƯƠNG PHÁP GIẢI QUYẾT ............................... 16
3.1
Phương pháp chuyển đổi câu truy vấn sang đồ thị ý niệm ............................................. 16
3.2
Xử lý câu truy vấn thông thường ................................................................................... 17
3.3
Xử lý câu truy vấn có từ để hỏi là “How many” ............................................................ 19
v
3.4
Xử lý câu truy vấn có liên từ luận lý ............................................................................. 21
3.5
Xử lý câu truy vấn có tính từ......................................................................................... 22
3.6
Xử lý câu truy vấn có tính từ so sánh nhất ..................................................................... 24
3.7
Xử lý câu truy vấn có tính từ định lượng so sánh hơn.................................................... 25
CHƯƠNG 4 THIẾT KẾ .............................................................................................................. 27
4.1
Kiến trúc toàn bộ hệ thống ............................................................................................ 27
4.2
Chi tiết các bước của giải thuật ..................................................................................... 29
4.2.1
Nhận biết các thành phần của câu truy vấn .............................................................. 29
4.2.2
Phân tách câu truy vấn ............................................................................................ 30
4.2.3
Xác định lớp của thực thể........................................................................................ 30
4.2.4
Gom các thực thể .................................................................................................... 31
4.2.5
Xác định quan hệ ẩn................................................................................................ 31
4.2.6
Xác định loại quan hệ giữa các thực thể .................................................................. 32
4.2.7
Xoá bỏ quan hệ không phù hợp ............................................................................... 35
4.2.8
Xác định quan hệ giữa tính từ và thực thể ............................................................... 36
4.2.9
Xây dựng đồ thị ý niệm........................................................................................... 39
4.2.10
Xây dựng câu truy vấn SeRQL................................................................................ 39
CHƯƠNG 5 HIỆN THỰC........................................................................................................... 40
5.1
Các khối xử lý và giao diện các lớp quan trọng ............................................................. 40
5.1.1
Ứng dụng web phía Client ...................................................................................... 40
5.1.2
Hệ thống xử lý trên server ....................................................................................... 40
5.2
Hệ thống luật ................................................................................................................ 44
5.2.1
Cấu trúc của hệ thống luật ....................................................................................... 45
5.2.2
Cấu trúc thành phần điều kiện của luật .................................................................... 45
5.2.3
Cấu trúc thành phần hành động của luật .................................................................. 46
vi
5.2.4
Xây dựng một số luật đặc biệt ................................................................................. 47
5.3
Lưu trữ và hiển thị đồ thị .............................................................................................. 47
5.4
Xây dựng câu truy vấn SeRQL ..................................................................................... 49
CHƯƠNG 6 THỬ NGHIỆM ....................................................................................................... 53
6.1
Môi trường thử nghiệm ................................................................................................. 53
6.2
Kết quả thực nghiệm ..................................................................................................... 54
CHƯƠNG 7 KẾT LUẬN ............................................................................................................. 57
7.1
Kết quả đạt được........................................................................................................... 57
7.2
Các vấn đề còn tồn tại................................................................................................... 58
7.3
Hướng phát triển ........................................................................................................... 58
TÀI LIỆU THAM KHẢO ........................................................................................................... 59
PHỤ LỤC A: TẬP CÂU MẪU TREC 2002.......................................................................................... 60
vii
DANH MỤC HÌNH
Hình 1-1 Đồ thị có đề xuất quan hệ không tồn tại trong cơ sở tri thức .............................................. 5
Hình 2-1 Ba module của Proton [5] .................................................................................................. 9
Hình 2-2 Cơ sở tri thức của KIM (30/09/2006) [6] ......................................................................... 10
Hình 2-3 Đồ thị ý niệm ví dụ.......................................................................................................... 11
Hình 2-4 Đồ thị ý niệm có đỉnh truy vấn con .................................................................................. 12
Hình 3-1 Đồ thị ý niệm cho mỗi bộ ba ........................................................................................... 18
Hình 3-2 Đỉnh truy vấn con ............................................................................................................ 19
Hình 3-3 Đồ thị ý niệm cho câu truy vấn có "how many" ............................................................... 20
Hình 3-4 Đồ thị ý niệm ví dụ cho câu truy vấn có "how many" [3] ................................................. 20
Hình 3-5 Đồ thị ý niệm ví dụ cho câu truy vấn có "how many" [3] ................................................. 20
Hình 3-6 Đồ thị ý niệm cho câu truy vấn có liên từ luận lý ............................................................. 22
Hình 3-7 Đồ thị ý niệm ví dụ, cho câu truy vấn có tính từ so sánh nhất .......................................... 24
Hình 3-8 Đồ thị ý niệm ví dụ, cho câu truy vấn có tính từ định tính so sánh nhất ............................ 24
Hình 3-9 Đồ thị ý niệm ví dụ, cho câu truy vấn có tính từ định lượng so sánh nhất ......................... 25
Hình 4-1 Kiến trúc tổng quan ......................................................................................................... 27
Hình 4-2 Các bước xử lý ................................................................................................................ 28
Hình 4-3 Lược đồ ánh xạ kiểu quan hệ của bộ ba truy vấn [3] ........................................................ 33
Hình 4-4 Xác định loại quan hệ giữa hai thực thể ei và ej [2] .......................................................... 34
Hình 4-5 Lược đồ ánh xạ kiểu quan hệ giữa tính từ và thực thể [3]................................................. 37
Hình 4-6 Xác định loại quan hệ giữa tính từ adj và thực thể [3] ...................................................... 38
Hình 5-1 Cấu trúc tập phần tử TransformRules và rule ................................................................... 45
Hình 5-2 Cấu trúc phần tử điều kiện luật ........................................................................................ 46
Hình 5-3 Cấu trúc phần tử hành động ............................................................................................. 46
Hình 5-4 Một luật hoàn chỉnh ........................................................................................................ 47
Hình 5-5 Cấu trúc dữ liệu lưu trữ đồ thị ý niệm .............................................................................. 47
Hình 5-6 Dạng tổng quát của đồ thị ý niệm .................................................................................... 48
Hình 5-7 Tên hình .......................................................................................................................... 49
viii
DANH MỤC BẢNG
Bảng 5-1 Giao diện các dịch vụ ...................................................................................................... 40
Bảng 5-2 Bản tóm tắt các phương thức lớp ENSearch .................................................................... 41
Bảng 5-3 Bản tóm tắt các phương thức lớp QuerytoCG .................................................................. 41
Bảng 5-4 Bản tóm tắt các phương thức lớp QuerytoCG (2) ............................................................ 42
Bảng 5-5 Bản tóm tắt các phương thức lớp Processing XML.......................................................... 42
Bảng 5-6 Bản tóm tắt các phương thức lớp ProcessingQuery ......................................................... 43
Bảng 5-7 Bản tóm tắt các phương thức lớp ProcessingQuery (2) .................................................... 43
Bảng 5-8 Bản tóm tắt các phương thức lớp QueryOutput ............................................................... 43
Bảng 5-9 Bản tóm tắt các phương thức lớp SeRQLMapping .......................................................... 44
Bảng 5-10 Các thuộc tính của phần tử điều kiện ............................................................................. 46
Bảng 6-1 Kết quả thực nghiệm trên TREC 2002 trước khi làm giàu Ontology................................ 54
Bảng 6-2 Kết quả thực nghiệm trên TREC 2002 sau khi làm giàu Ontology ................................... 55
Bảng 6-3 Kết quả thực nghiệm trên TREC 2002 sau khi làm giàu Ontology phân theo dạng câu .... 55
ix
CHƯƠNG 1
TỔNG QUAN
1.1 Giới thiệu
Kể từ khi ra đời đến nay, World Wide Web (WWW) đã làm thay đổi rất nhiều cách con
người trao đổi và tiếp cận với thông tin, tri thức. Và đối với nền kinh tế tri thức hiện nay, tầm
quan trọng của WWW càng lớn hơn. Điều đó đặt ra yêu cầu là: phải làm sao để quá trình khai
thác tri thức từ WWW đạt được hiệu suất tối ưu. Muốn vậy, một giải pháp là phải tự động hóa
được quá trình đó; nói cách khác, máy móc phải có khả năng khai thác thông tin trên WWW với
một độ chính xác cao.
Hiện nay, đã có những công cụ phần mềm nhắm đến mục tiêu đó. Nổi bật nhất có lẽ là các
động cơ tìm kiếm dựa trên từ khóa (keyword – based search engine), như động cơ tìm kiếm của
Google, Yahoo,... Tuy đã đạt được những thành công nhất định, nhưng các hệ thống này còn có
những khuyết điểm làm cho người sử dụng chưa được hài lòng. Có thể nêu ra như:
Kết quả trả về cho một truy vấn là nhiều, nhưng độ chính xác lại thấp. Người dùng phải
tốn nhiều thời gian với những kết quả không thích hợp.
Kết quả trả về hoàn toàn phụ thuộc vào từ khóa được cung cấp. Trong khi, theo mong
muốn của con người, thì các truy vấn tương tự nhau về mặt ngữ nghĩa phải dẫn đến
những kết quả như nhau.
Do công cụ tìm kiếm chủ yếu chỉ so trùng, mà chưa “hiểu” được nội dung của thông tin chứa
trên WWW và nội dung của câu truy vấn, nên dẫn đến những hạn chế trên.
Như vậy, để làm tăng hiệu quả của quá trình tìm kiếm tự động, một hướng tiếp cận là làm
cho máy tính “hiểu” được nội dung của thông tin: thông tin được lưu trữ trên WWW và thông tin
trong câu truy vấn của người dùng.
Đề tài này quan tâm đến khía cạnh giúp cho máy tính hiểu được nội dung của câu truy vấn
dùng ngôn ngữ tự nhiên là tiếng Anh. Nhìn chung, việc hướng dẫn cho máy tính xử lý 1 câu truy
1
vấn bằng ngôn ngữ tự nhiên (bất kỳ) nhằm hiểu được ý nghĩa là khá phức tạp, có thể liệt kê ra
một số khó khăn:
Ngữ pháp của ngôn ngữ tự nhiên rất đa dạng, cách sử dụng rất linh hoạt. Và một câu có
thể có nhiều ngữ pháp phù hợp (mặc dù đối với con người sẽ không có nghĩa). Dẫn đến
không thể chỉ dựa vào cấu trúc của câu để xác định ngữ nghĩa.
Cùng một từ nhưng có thể ứng với nhiều từ loại (danh từ, động từ, ...). Muốn hiểu đúng
phải xác định đúng loại từ. Lấy ví dụ: “Time flies like an arrow”. “Time” và “flies” có ít
nhất 2 cách hiểu có ý nghĩa: “Time” làm danh từ và “flies” làm động từ, hay “Time” làm
động từ và “flies” làm danh từ.
Phải giải quyết sự đa hình của từ (morphology) nếu muốn nhận biết đầy đủ các thành
phần của câu. Ví dụ như động từ “fly” có thể có dạng “flies”, “flying”, “flew”.
Việc xác định quan hệ ngữ nghĩa giữa các đối tượng trong câu đòi hỏi phải có tri thức về
các mối quan hệ phù hợp giữa các đối tượng. Và phải xem xét ngữ cảnh của câu để chọn
ra quan hệ phù hợp nhất.
Câu có thể hàm chứa những mối quan hệ ngầm giữa các đối tượng, mà không được biểu
hiện ra bằng các từ ngữ biểu diễn quan hệ, vì các mối liên hệ này được con người ngầm
thỏa thuận trên một nền tảng kiến thức chung.
Một cách thường xuyên, câu truy vấn bằng ngôn ngữ tự nhiên không chặt về ngữ pháp,
mà thường được dùng ở dạng thông dụng không “chuẩn” ngữ pháp.
Tuy có nhiều khó khăn như đã kể trên, nhưng hiện nay các nhóm nghiên cứu về lĩnh vực
web ngữ nghĩa đã đạt được những tiến bộ đáng kể. Và việc xây dựng một động cơ tìm kiếm theo
ngữ nghĩa là khả thi, có thể thành công với những câu truy vấn không quá phức tạp. Vì vậy, đề tài
này sẽ ứng dụng các thành tựu đó để xây dựng một động cơ tìm kiếm cho phép người dùng truy
vấn bằng ngôn ngữ tự nhiên, và trả về tài liệu chứa nội dung cần tìm.
2
1.2 Mục tiêu phạm vi
Liên quan đến mục tiêu tạo ra một công cụ tìm kiếm dựa trên nền tảng Web ngữ nghĩa, đã có
nhiều nghiên cứu được biết đến. Các nghiên cứu này sử dụng nhiều hình thức khác nhau cho câu
truy vấn đầu vào [2], như:
Hình thức đồ thị: người sử dụng thao tác trực tiếp trên đồ thị để thực hiện truy vấn.
Hình thức mẫu câu được dựng sẵn: người sử dụng sẽ lựa chọn trong số những mẫu câu
truy vấn được xây dựng sẵn, lưu trong hệ thống, để thực hiện truy vấn.
Từ khóa bằng ngôn ngữ tự nhiên.
Hình thức câu đầy đủ: người sử dụng đưa và một câu ngôn ngữ tự nhiên bất kỳ để thực
hiện truy vấn.
Các hình thức biểu diễn này, nếu càng gần với ngôn ngữ tự nhiên thì lại càng khó xử lý đối
với máy tính. Tuy nhiên, nếu càng gần với ngôn ngữ tự nhiên thì càng dễ tiếp cận đối với người
sử dụng. Hiển nhiên, người sử dụng mong muốn nhất là cho phép nhập vào một câu truy vấn
dùng ngôn ngữ tự nhiên.
Về phương pháp biên dịch câu truy vấn ngôn ngữ tự nhiên, toát lên từ các nghiên cứu là 2
hướng tiếp cận:
Phân tích cú pháp: cách này dựa vào việc phân tích cú pháp của câu truy vấn để dịch ra
ngôn ngữ khác mà máy tính hiểu được. Vì vậy phụ thuộc rất chặt vào cú pháp, bất kỳ lỗi
cú pháp nào cũng dẫn đến biên dịch thất bại. Ngoài ra, sẽ khó khăn khi chuyển đổi, sử
dụng ngôn ngữ đầu vào khác [2].
Dịch theo cách ít phụ thuộc vào cú pháp: linh động hơn khi có lỗi cú pháp hoặc khi phải
chuyển đổi ngôn ngữ đầu vào. Ngoài ra, rút ngắn được thời gian xử lý [2].
Từ cái nhìn trên, hệ thống tìm kiếm mà đề tài này xây dựng sẽ nhận dữ liệu đầu vào là một
câu truy vấn bằng tiếng Anh, là ngôn ngữ sử dụng bởi quốc tế. Hệ thống, sau khi xử lý bằng
phương pháp ít phụ thuộc vào cú pháp, sẽ trả về tài liệu chứa thông tin được tìm kiếm hoặc trả về
3
số liệu được yêu cầu (lúc này không sử dụng chức năng tìm kiếm mà chỉ đưa ra số liệu trả lời).
Đồng thời, để giúp người dùng kiểm tra liệu cách “hiểu” câu truy vấn của hệ thống có đúng hay
không, hệ thống cũng vẽ ra đồ thị ý niệm tương ứng với câu truy vấn đã nhận vào.
Một hệ thống như vậy nếu xây dựng mới hoàn toàn sẽ đòi hỏi rất nhiều thời gian và công
sức. Vì vậy, đề tài sẽ dựa trên hệ thống tìm kiếm ngữ nghĩa cho tiếng Việt (VN-KIM Search) có
sẵn [1], tái sử dụng nhiều mô-đun không phụ thuộc vào ngôn ngữ, như mô-đun chú giải, đánh chỉ
mục, gom cụm, truy xuất tài liệu, chỉ tập trung làm mới mô-đun xử lý câu truy vấn.
Hệ thống sẽ bảo đảm được khả năng xử lý những câu truy vấn tiếng Anh đơn giản, chỉ bao
gồm danh từ, động từ, từ để hỏi và giới từ. Ví dụ như câu truy vấn: “What actress starred in ‘The
Lion in Winter’ ?”. Đây là khả năng mà hiện nay VN-KIM Search đã làm được cho tiếng Việt.
Luận văn không chỉ dừng lại ở những câu truy vấn đơn giản như ví dụ trên, mà còn nhắm
đến mục tiêu trả lời được những câu truy vấn phức tạp hơn. Đó là câu truy vấn có liên từ luận lý,
tính từ định tính, tính từ định lượng, tính từ so sánh nhất, và lượng từ. Lấy ví dụ như các câu truy
vấn sau:
“Who was biographer and Samuel Johnsons's friend?” chứa liên từ luận lý.
“What famous model was married to Billy Joel?” chứa tính từ định tính.
“What are the old university in the US?” chứa tính từ định lượng.
“What is the highest dam in the U.S.?” chứa tính từ so sánh nhất.
“How many films did Ingmar Bergman make?” chứa lượng từ.
Hiện đã có nghiên cứu của nhóm VN-KIM để biên dịch những câu truy vấn dạng này từ
ngôn ngữ tự nhiên sang đồ thị ý niệm. Luận văn này sẽ ứng dụng thành quả nghiên cứu đó.
Hiện nay, mô-đun nhận biết thực thể của VN-KIM Search không thể dùng cho tiếng Anh.
Nên, ở bước nhận biết thực thể, đề tài sẽ sử dụng công cụ sẵn có, và giả sử là quá trình này hoàn
toàn chính xác. Đề tài cũng không giải quyết vấn đề về quan hệ 3 ngôi trong [3], vì việc đó liên
quan tới việc mở rộng, “làm mịn” Ontology, là một bài toán khác.
4
1.3 Kết quả đạt được
Đề tài đã xây dựng được 1 hệ thống tìm kiếm dựa trên ngữ nghĩa cho tiếng Anh, với các
dạng câu truy vấn như đã trình bày ở trên.
Đồng thời, mở rộng thêm một số khả năng khi xử lý những câu truy vấn dạng phức tạp. Đầu
tiên là khả năng đề xuất đồ thị ý niệm khả áp dụng ngay cả khi quan hệ với tính từ trong câu truy
vấn không có trong cơ sơ tri thức. Mục đích là làm ta có thể đánh giá tính chính xác của quá trình
“hiểu” câu truy vấn của hệ thống mà không bị quá lệ thuộc vào cơ sơ tri thức. Ví dụ như sau:
“What is the longest dam in the U.S.?” Mặc dù quan hệ giữa “dam” và “long” không có
trong cơ sơ tri thức, nhưng ta vẫn có thể cung cấp đồ thị ý niệm cho người dùng (với quan hệ
“ảo” được vẽ màu xanh lá).
Hình 1-1 Đồ thị có đề xuất quan hệ không tồn tại trong cơ sở tri thức
Ngoài ra, để truy xuất được tài liệu, thì chỉ ngừng lại ở đồ thị là chưa đủ, cần phải chuyển đồ
thị đó sang ngôn ngữ SeRQL, là ngôn ngữ dùng để truy xuất cơ sở tri thức ngữ nghĩa. Luận văn
này đã đề xuất và hiện thực cách thức chuyển từ đồ thị ý niệm của những câu truy vấn dạng này
sang truy vấn SeRQL để lấy về thực thể (entity) cần tìm.
Luận văn cũng đề xuất và hiện thực cách xử lý câu truy vấn có chứa dạng so sánh hơn của
tính từ định lượng. Các câu truy vấn có so sánh hơn với một hằng số, hoặc so sánh hơn với một
thực thể, như “What dam in the U.S. is higher than 1200 meters?”, “What dam is higher than
Dworshak in the U.S.?” cũng đã được chuyển sang đồ thị ý niệm, rồi chuyển sang câu truy vấn
SeRQL tương ứng.
5
1.4 Cấu trúc luận văn
Chương 1 đã trình bày khái quát động cơ, mục đích, phạm vi và kết quả thực hiện đề tài.
Tiếp theo sau Chương 1 là phần trình bày chi tiết về ý tưởng và phương pháp để đạt được mục
đích đã đề ra.
Chương 2 trình bày những nghiêu cứu, hệ thống, công cụ liên quan, được sử dụng trong đề
tài.
Chương 3 trình bày ý tưởng về cách giải quyết các loại câu truy vấn đã nêu ở chương 1. Các
mục trong chương này tập trung giải quyết từng loại câu truy vấn riêng biệt
Chương 4 trình bày sơ đồ tổng quan hệ tống. Cũng như trình tự các bước xử lý câu truy vấn,
giải thuật cụ thể từng bước
Chương 5 trình bày giao diện các lớp chính của hệ thống, phương pháp lưu trữ và hiển thị đồ
thị ý niệm, cấu trúc tập luật, và giải thuật xây dựng câu truy vấn SeRQL
Chương 6 đánh giá hiệu suất hệ thống trên tập câu hỏi mẫu TREC 2002
Chương 7 là các kết luận, và hướng phát triển đề nghị của hệ thống.
Phụ Lục là các câu hỏi trong tập TREC 2002, một vài CG sinh ra, và kế hoạch thực hiện
luận văn này.
6
CHƯƠNG 2
KIẾN THỨC NỀN TẢNG
2.1 Chú thích ngữ nghĩa và tìm kiếm ngữ nghĩa
2.1.1 Các khái niệm
Ontology và cơ sở tri thức
Ontology: Trong khoa học và kỹ thuật máy tính, ontology là một biểu diễn hình thức của tri
thức, dưới dạng một tập các khái niệm (concept) và mối liên hệ giữa các khái niệm đó. Một số
ontology hiện có: SUMO, PROTON, KIMO.
Cơ sở tri thức (knowledge base, kb): Là một dạng đặc biệt của cơ sở dữ liệu dùng để quản lý
tri thức, cung cấp các cách thức để lưu trữ, tổ chức và truy hồi tri thức. Một số cơ sở tri thức hiện
có: TAP KB, KIM WKB, WordNet (WordNet không hẳn là một cơ sở tri thức mà là một cơ sở
dữ liệu từ vựng, tuy nhiên cũng được sử dụng trong web ngữ nghĩa).
Chú thích ngữ nghĩa
Chú thích (annotation, tagging): là gắn tên, thuộc tính, bình luận, mô tả… vào một tài liệu
hay một đoạn văn bản. Nó cung cấp các thông tin thêm (metadata) về một mẫu dữ liệu đã có. Chú
thích làm tăng tốc độ tìm kiếm và giúp tìm thông tin chính xác hơn.
Chú thích ngữ nghĩa (semantic annotation): đi sâu hơn chú thích thông thường. Nó làm giàu
các dữ liệu phi cấu trúc (unstructured), bán cấu trúc (semistructured) bằng cách kết nối chúng với
tri thức có cấu trúc của một lĩnh vực nào đó.
Chú thích ngữ nghĩa nhận diện các khái niệm và mối quan hệ giữa các khái niệm đó trong
văn bản, qua đó cung cấp một đường liên kết giữa thông tin trong văn bản với ontology.
Bằng cách nói cho máy tính biết quan hệ giữa các mẫu dữ liệu (data item) và làm thế nào để
xử lý các quan hệ đó một cách tự động, máy tính sẽ có thể thực hiện các tác vụ sàng lọc và tìm
kiếm phức tạp.
Tìm kiếm ngữ nghĩa
7
Tìm kiếm ngữ nghĩa (semantic search): là tìm kiếm thông tin không dựa trên sự hiện diện
của từ khóa hay cụm từ, mà dựa vào nghĩa của từ. Vấn đề của các động cơ tìm kiếm dựa trên từ
khóa đó là, nếu thông tin được cung cấp bởi nhiều nguồn khác nhau, thì các thuật ngữ sẽ không
được sử dụng một cách thống nhất, cùng một thuật ngữ có thể được dùng với nhiều nghĩa khác
nhau, và cũng có khi nhiều thuật ngữ khác nhau lại dùng để chỉ các khái niệm có cùng nghĩa.
Động cơ tìm kiếm ngữ nghĩa cố gắng vượt qua lỗ hổng trên bằng cách sử dụng ngữ nghĩa
học (semantics), và nhờ đó, cung cấp cho người dùng các kết quả chính xác, thích đáng. Nó còn
cho phép trả về các kết quả không liên quan một cách tường minh đến câu truy vấn nguyên mẫu.
Ví dụ: trong cơ sở tri thức cho biết “Saigon is a city in Vietnam”, và “University of
Technology in Hochiminh city”, khi người dùng muốn hỏi “University in Vietnam” thì động cơ
tìm kiếm ngữ nghĩa có thể trả về các tài liệu liên quan đến “University of Technology”, mặc dù
trong câu truy vấn không hề chứa các từ “Saigon”, “Hochiminh city” hay “University of
Technology”.
Tìm kiếm ngữ nghĩa hữu dụng trong việc:
Xử lý các thông tin phức tạp từ nhiều nguồn khác nhau.
Truy hồi tài liệu dựa trên một tập các mối quan hệ bên ngoài các tài liệu đó.
Cung cấp nhiều lựa chọn cho việc nghiên cứu sâu hơn.
Xác định và sàng lọc kết quả hiệu quả hơn.
Sử dụng thông tin từ nguồn có thẩm quyền hiệu quả hơn để định hướng tìm kiếm.
Đề tài này sử dụng GATE cùng với PROTON và KIM WKB để chú thích các thực thể và từ
quan hệ. Phần tiếp theo sẽ nói kỹ hơn về các phần mềm và công cụ này.
2.1.2 Các phần mềm, công cụ sử dụng
PROTON và KIM WKB
PROTON (PROTo Ontology): Là một ontology mô tả một cách tổng quát các khái niệm
thuộc tất cả các miền (domain) tri thức. PROTON ra mắt lần đầu vào năm 2005 [5], ban đầu được
phát triển trong dự án SEKT, hiện tại được duy trì bởi Ontotext.
8
Nguyên tắc thiết kế của PROTON có thể được tóm tắt như sau:
Không phụ thuộc vào miền ứng dụng
Các định nghĩa hợp logic
Đúng với các chuẩn phổ biến
Bao phủ tốt các thực thể có tên và các miền cụ thể.
Ontology của PROTON bao gồm 3 module: “System”, “Top” và “Upper” module, với tổng
cộng khoảng 250 lớp và 100 quan hệ , thuộc tính thuộc nhiều lĩnh vực khác nhau được định
nghĩa.
Hình 2-1 Ba module của Proton [5]
KIM WKB [6] (KIM World Knowledge Base (WKB)): Là một cơ sở tri thức về thế giới.
KIM WKB dựa trên ontology PROTON, nhưng chỉ phụ thuộc vào System module, và mở rộng
module này bằng KIMSO (KIM System Ontology), các module còn lại có thể được thay thế.
Ngoài ra, KIM sử dụng thêm KIMLO (KIM Lexical Ontology) giúp cho nó có khả năng nhận
diện các thực thể và quan hệ chưa có trong KB, đó là nhờ các ngữ liệu được định nghĩa bởi thành
phần ontology này và có trong KB, ví dụ như: các hậu tố của các tổ chức (Ltd., ...) , các tên người
thông dụng, các chức danh... KIM có cơ sở tri thức lên đến hàng chục ngàn thực thể, sau đây là
bản thống kê vào tháng 9/2006:
9
Hình 2-2 Cơ sở tri thức của KIM (30/09/2006) [6]
GATE và ANNIE
GATE [7] (General Architecture for Text Engineering): được phát triển bởi đại học Sheffield
từ năm 1995. GATE là một cơ sở hạ tầng để xây dựng và phát triển các thành phần của phần
mềm xử lý ngôn ngữ tự nhiên. Dựa trên cơ sở hạ tầng này, người dùng có thể xây dựng các tài
nguyên ngôn ngữ, xây dựng hoặc sử dụng lại các tài nguyên xử lý cho phù hợp với mục đích.
ANNIE (A Nearly New Information Extraction): là một công cụ chú thích ngữ nghĩa trong
GATE. ANNIE bao gồm nhiều bước xử lý theo dạng ống (đầu ra của bước này là đầu vào của
bước kia), hầu hết các bước này độc lập với ngôn ngữ và miền ứng dụng, nhờ vậy ANNIE có ưu
điểm đó là không cần sửa đổi khi chuyển đổi qua những ứng dụng khác nhau. ANNIE dựa trên
giải thuật trạng thái hữu hạn và JAPE.
JAPE (Java Annotation Patterns Engine): một thành phần của GATE. JAPE là một bộ
chuyển đổi trạng thái hữu hạn, thao tác trên các chú giải dựa vào biểu thức chính quy (regular
expressions). Nó hữu dụng trong việc so trùng mẫu, rút trích ngữ nghĩa, và nhiều tác vụ trên cây
cú pháp.
2.2 Đồ thị ý niệm
2.2.1 Sơ lược về đồ thị ý niệm
Đồ thị ý niệm là một hình thức biểu diễn logic (logical formalism) vừa có tính trực quan,
vừa có sự chính xác. Về hình thức, đây là một đồ thị tạo ra bởi các đỉnh và các cạnh (có thể có
hướng hoặc không có hướng). Nhờ sử dụng cách biểu diễn đồ họa trực quan đó, đồ thị cho phép
10
con người nhanh chóng có được một cái nhìn tổng quan, dễ nắm bắt ý nghĩa. Về nội dung, đồ thị
ý niệm có thể được ánh xạ trực tiếp sang logic vị từ (predicate logic). Nhờ đó, có thể biểu diễn
ngữ nghĩa một cách chính xác, giữ được tính chính xác về mặt logic. Với những đặc điểm đó, đồ
thị ý niệm vừa dễ tiếp cận đối với con người, vừa khả xử lý đối với máy tính.
Và đồ thị ý niệm đã được dùng như là một hình thức biểu diễn tri thức, là một ngôn ngữ
trung gian cho việc chuyển đổi qua lại giữa hình thức biểu diễn hướng máy tính và ngôn ngữ tự
nhiên. “Tim Berners Lee, người phát minh của WWW, kết luận rằng các CG có thể dễ dàng tích
hợp với Semantic Web. Nó cũng được chỉ ra là có một ánh xạ chặt với ngôn ngữ RDF.” [3]
Sowa đã định nghĩa đồ thị ý niệm trong một bài báo của mình như sau: “Đồ thị ý niệm là một
đồ thị hữu hạn, liên thông, không có hướng, lưỡng phân với những nút thuộc một loại được gọi là
ý niệm (hoặc khái niệm – concepts) và những nút thuộc loại còn lại được gọi là quan hệ khái
niệm (conceptual relations).” [3]
Như vậy, đồ thị ý niệm thuộc loại đồ thị phân đôi, và bao gồm 2 loại đỉnh: các đỉnh khái
niệm và các đỉnh quan hệ. Trong đó, các đỉnh khái niệm chỉ liên kết với các đỉnh quan hệ bởi các
cạnh và ngược lại.
Đỉnh khái niệm được biểu diễn bằng hình chữ nhật có nhãn là kiểu khái niệm kết hợp với
tham chiếu. Đỉnh quan hệ có hình oval với nhãn chính là kiểu quan hệ của nó. Mỗi đỉnh quan hệ
có thể liên kết với nhiều đỉnh khái niệm bằng các cạnh có hướng. Để ngắn gọn, chúng ta sẽ gọi
đỉnh quan hệ, đỉnh khái niệm lần lượt là quan hệ, khái niệm.
Hình 2-3 Đồ thị ý niệm ví dụ
Hình trên là đồ thị ý niệm cho câu “John is a student. There is a subject. CS is a field of
study. The subject is in CS. John studies the subject”. Hoặc ngắn gọn hơn “John studies a subject
in CS”.
Trong định dạng văn bản, các khái niệm và các quan hệ có thể được biết trong dấu ngoặc
vuông và ngoặc tròn như sau:
[STUDENT: John]→(STUDY)→[SUBJECT: *]→(IN)→[FIELD: CS]
11
Trong ví dụ này, [STUDENT: John], [SUBJECT:*], [FIELD: CS] là các khái niệm với
STUDENT, SUBJECT và FIELD trở thành kiểu khái niệm, trong khi đó (STUDY) và (IN) là các
quan hệ với STUDY và IN là các kiểu quan hệ. Các tham khảo John và CS là các tham chiếu xác
định. Tham chiếu “*” là tham chiếu tổng quát ám chỉ tới một thực thể không xác định.
Đồ thị ý niệm được sử dụng để kiểm tra tính chính xác của quá trình dịch câu truy vấn trong
đề tài. Bên cạnh các tham chiếu xác định và tham chiếu tổng quát, được bổ sung thêm tham chiếu
nghi vấn. Tham chiếu nghi vấn biểu diễn cho thực thể được truy vấn trong câu. Một đồ thị ý niệm
truy vấn là một đồ thị ý niệm mà các tham chiếu có thể là tham chiếu xác định, tham chiếu tổng
quát hoặc là tham chiếu nghi vấn được biểu diễn bằng dấu “?”.
2.2.2 Đồ thị ý niệm mở rộng
Đồ thị ý niệm mở rộng [3] là đồ thị ý niệm có sử dụng thêm một khái niệm đặc biệt, gọi là
đỉnh truy vấn con. Đó là một đỉnh khái niệm, nhưng có kiểu khái niệm riêng, và tham chiếu đến
thực thể của nó là một đồ thị ý niệm khác. Tức là, bên trong đỉnh truy vấn con là nội dung một đồ
thị ý niệm truy vấn tri thức. Đỉnh truy vấn con sẽ được biểu diễn bằng hình chữ nhật vát góc. Ta
xét một ví dụ minh họa: ta có câu truy vấn lồng nhau như sau: “Find names of lecturers whose
names are identical to those of lectures teaching at Bach Khoa University”. Câu truy vấn này sẽ
được biểu diễn như sau:
Hình 2-4 Đồ thị ý niệm có đỉnh truy vấn con
Trong đề tài [3], đỉnh truy vấn con được sử dụng trong phần lớn các phương pháp sẽ đề xuất
ở những phần tiếp theo.
12
2.3 Tìm kiếm thực thể và tài liệu
Đề tài này biến đổi từ đồ thị ý niệm sang ngôn ngữ truy vấn SeRQL để truy vấn thực thể
trong cơ sở tri thức. Thực thể tìm được sẽ dùng để tìm tài liệu trên Semantic Lucene.
2.3.1 Câu truy vấn SeRQL [8]
SeRQL (Sesame RDF Query Language) là một ngôn ngữ truy vấn cơ sở tri thức. Tương tự
như SQL được sử dụng làm ngôn ngữ truy vấn trên các cơ sở dữ liệu quan hệ, SeRQL được sử
dụng trên các cơ sở dữ liệu viết bằng ngôn ngữ RDF.
Trong SeRQL, có 2 loại câu truy vấn: một loại sẽ trả về một bảng các giá trị (một tập các
ràng buộc (binding) giữa biến với giá trị, tương tự như khi truy vấn với SQL), loại còn lại sẽ trả
về một đồ thị RDF (RDF graph). Trong đề tài này chỉ sử dụng loại thứ nhất, gọi là select queries
(phiên bản 2.3.2), sẽ được trình bày sau đây.
Đối với 1 câu truy vấn thuộc loại select queries , sẽ có 8 mệnh đề có thể được sử dụng, đó là:
SELECT, FROM, FROM CONTEXT, WHERE, ORDER BY, LIMIT, OFFSET và USING
NAMESPACE. Chỉ có mệnh đề SELECT là bắt buộc, các mệnh đề còn lại có thể không có mặt
trong câu truy vấn. Các mệnh đề SELECT, FROM, WHERE và ORDER BY là những mệnh đề
sẽ được sử dụng để truy vấn trong đề tài này.
Mệnh đề SELECT ở SeRQL cũng tương tự như trong SQL, sẽ chỉ ra các biến mà ta cần trả
về giá trị. Nếu truy vấn thành công, tập kết quả trả về sẽ là các giá trị được ràng buộc với các biến
liệt kê trong mệnh đề SELECT. Ví dụ [8]:
SELECT O, S
FROM {S} rdfs:label {O}
Mệnh đề FROM ở SeRQL cũng tương tự như trong SQL, nhưng, thay vì chỉ ra các bảng
(table) có chứa dữ liệu, người sẽ phải chỉ ra các biểu thức đường đi (path expression) có chứa dữ
liệu trong cơ sở tri thức RDF. Trong ví dụ trên, biểu thức đường đi là “{S} rdfs:label {O}”
.
Mệnh đề WHERE, cũng tương tư như SQL, là nơi để người dùng đặc tả các ràng buộc mà
các biến phải thỏa mãn. Nếu có nhiều ràng buộc, chúng có thể được liên kết bằng các từ khóa
AND, OR, NOT, là các toán tử của đại số Bool. Trong mệnh đề WHERE, ta cũng có thể sử dụng
13
câu truy vấn lòng nhau (nested query) và sử dụng từ khóa ALL để biểu diễn ràng buộc đối với
một tập giá trị. Ví dụ [8]:
SELECT highestValue
FROM {node} ex:value {highestValue}
WHERE highestValue >= ALL ( SELECT value
FROM {} ex:value {value}
)
Để sắp xếp kết quả trả về theo một thứ tự nhất định, người dùng có thể sử dụng mệnh đề
ORDER BY, kết hợp các từ khóa DESC (giảm dần) và ASC (tăng dần – mặc định). Có thể kết
hợp sắp xếp trên nhiều biến trả về, cách nhau bởi dấu “,”. Ví dụ [8]:
SELECT Countr, Population
FROM {Country} ex:population {Population}
ORDER BY Population DESC
Ngoài ra, SeRQL cũng hỗ trợ 3 toán tử UNION, INTERSECT và MINUS để thực hiện kết
hợp, giao và loại trừ các tập kết quả. Ví dụ [8]:
SELECT title
FROM {book} dc10:title {title}
UNION
SELECT title
FROM {book} dc11:title {title}
Đề tài sẽ sử dụng các toán tử tập hợp này vào việc giải quyết các câu truy vấn có liên từ luận
lý.
2.3.2 Semantic Lucene
Lucene: là một thư viện mã nguồn mở viết bằng Java, dùng để phân tích, hỗ trợ đánh chỉ
mục và tìm kiếm thông tin với hiệu suất cao. Lucene được phát triển đầu tiên bởi Doug Cutting,
và ra mắt vào tháng 3/2000. Hiện tại Lucene đang được Apache phát triển và duy trì. Lucene
không phải một ứng dụng, mà chỉ là một công cụ đặc tả API cần thiết cho một search engine.
Ngoài phiên bản ban đầu bằng Java, hiện nay còn có Lucene cho các ngôn ngữ khác: .NET, C++,
Perl…
14
VN-KIM Semantic Lucene (S-Lucene): là hiện thực mở rộng của Lucene cho tìm kiếm ngữ
nghĩa. VN-KIM S-Lucene là một thư viện phần mềm trong hệ thống VN-KIM, có vai trò quan
trọng trong việc quản lý, truy hồi các thực thể hay các tài liệu đã được chú giải.
Khác biệt chủ yếu giữa Lucene và S-Lucene đó là Lucene đánh chỉ mục và tìm kiếm trên từ
khóa, trong khi đó S-Lucene mở rộng cho đánh chỉ mục và tìm kiếm theo thực thể.
Đầu vào của S-Lucene là các bộ ba (name/class/ID) nhận được từ quá trình tìm kiếm thực
thể. S-Lucene trả về các tài liệu tương ứng với các bộ ba đó.
15