Tài liệu Khóa luận Phương pháp xây dựng hệ thống hỏi đáp tiếng việt dựa trên ontology: ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
--------
Nguyễn Quốc Đại
PHƢƠNG PHÁP XÂY DỰNG
HỆ THỐNG HỎI ĐÁP TIẾNG VIỆT
DỰA TRÊN ONTOLOGY
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI – 2009
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
--------
Nguyễn Quốc Đại
PHƢƠNG PHÁP XÂY DỰNG
HỆ THỐNG HỎI ĐÁP TIẾNG VIỆT
DỰA TRÊN ONTOLOGY
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Giảng viên hƣớng dẫn: TS. Phạm Bảo Sơn
HÀ NỘI – 2009
To My Family
Phương pháp xây dựng hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
i
Lời cảm ơn
Đầu tiên, em xin gửi lời cám ơn chân thành nhất tới TS. Phạm Bảo Sơn. Thầy đã
hướng dẫn, chỉ bảo và truyền đạt những kinh nghiệm giúp em hoàn thành khóa luận.
Em cũng xin gửi lời cám ơn tới TS. Bùi Thế Duy. Thầy đã tạo điều kiện thuận lợi
và có những ý kiến đóng góp cho em.
Tôi xin cám ơn các bạn Nguyễn Quốc Đạt, Nguyễn Bá Đạt, Trần Bìn...
83 trang |
Chia sẻ: haohao | Lượt xem: 1085 | Lượt tải: 1
Bạn đang xem trước 20 trang mẫu tài liệu Khóa luận Phương pháp xây dựng hệ thống hỏi đáp tiếng việt dựa trên ontology, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
--------
Nguyễn Quốc Đại
PHƢƠNG PHÁP XÂY DỰNG
HỆ THỐNG HỎI ĐÁP TIẾNG VIỆT
DỰA TRÊN ONTOLOGY
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI – 2009
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
--------
Nguyễn Quốc Đại
PHƢƠNG PHÁP XÂY DỰNG
HỆ THỐNG HỎI ĐÁP TIẾNG VIỆT
DỰA TRÊN ONTOLOGY
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Giảng viên hƣớng dẫn: TS. Phạm Bảo Sơn
HÀ NỘI – 2009
To My Family
Phương pháp xây dựng hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
i
Lời cảm ơn
Đầu tiên, em xin gửi lời cám ơn chân thành nhất tới TS. Phạm Bảo Sơn. Thầy đã
hướng dẫn, chỉ bảo và truyền đạt những kinh nghiệm giúp em hoàn thành khóa luận.
Em cũng xin gửi lời cám ơn tới TS. Bùi Thế Duy. Thầy đã tạo điều kiện thuận lợi
và có những ý kiến đóng góp cho em.
Tôi xin cám ơn các bạn Nguyễn Quốc Đạt, Nguyễn Bá Đạt, Trần Bình Giang,
Phạm Đức Đăng. Các bạn đã giúp đỡ, cũng như chia sẻ những nghiên cứu để tôi có thể
áp dụng trong khóa luận.
Tôi cũng xin cám ơn các bạn Ngô Thị Thảo, Tạ Thị Bích Hiền, Nguyễn Hà
Phương đã giúp đỡ tôi khi khó khăn.
Cuối cùng, con xin gửi lời cám ơn sâu sắc nhất tới bố mẹ. Bố mẹ đã sinh thành,
nuôi dưỡng, quan tâm và chăm sóc cho con. Con xin cám ơn bố mẹ!
Hà Nội, 24-5-2009
Nguyễn Quốc Đại
Phương pháp xây dựng hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
ii
Tóm tắt
Hỏi đáp (question answering) là nhiệm vụ tự động trả lời câu hỏi dưới dạng ngôn
ngữ tự nhiên. Nghiên cứu các hệ thống hỏi đáp đang nhận được nhiều quan tâm trên
thế giới. Các nghiên cứu hiện nay sử dụng nhiều phương pháp xử lý ngôn ngữ tự nhiên
cùng với Ontology được sử dụng làm cơ sở tri thức. Nhu cầu tìm kiếm thông tin tiếng
Việt dưới dạng hỏi đáp là rất lớn nhưng các hệ thống hỏi đáp cho tiếng Việt còn chưa
có nhiều nghiên cứu ứng dụng cụ thể.
Chúng tôi giới thiệu một hệ thống hỏi đáp tiếng Việt dựa trên Ontology. Hệ thống
này có thể áp dụng đối với nhiều miền ứng dụng cụ thể. Chúng tôi thiết kế một
Ontology thử nghiệm. Sử dụng Ontology này, chúng tôi đưa ra cách trích rút câu trả
lời cho hệ thống hỏi đáp này. Các đánh giá cho thấy hệ thống làm việc tốt khi trả lời
các câu hỏi được đưa ra.
Keywords: hỏi đáp, ánh xạ Ontology, trích chọn câu trả lời.
Phương pháp xây dựng hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
iii
Mục lục
Lời cảm ơn ................................................................................................................................i
Tóm tắt ..................................................................................................................................... ii
Mục lục ................................................................................................................................... iii
Danh sách từ viết tắt .............................................................................................................vi
Danh sách hình vẽ ............................................................................................................... vii
Danh sách bảng ......................................................................................................................ix
Chƣơng 1. Giới thiệu ............................................................................................................1
Chƣơng 2. Tổng quan về hỏi đáp.......................................................................................3
2.1 Tổng quan về hệ thống hỏi đáp dựa trên Ontology ...................................................3
2.2 Khái niệm về hỏi đáp (Question Answering – QA) ...................................................6
2.2.1 Khái niệm hỏi đáp ..................................................................................................6
2.2.2 Kiến trúc hỏi đáp ....................................................................................................6
2.2.3 Các phương pháp hỏi đáp ......................................................................................7
2.3 Giao diện ngôn ngữ tự nhiên miền đóng ....................................................................9
2.4 Các hệ thống QA miền mở ..........................................................................................10
2.5 Ontologies trong QA....................................................................................................12
Chƣơng 3. Ontology – Sesame..........................................................................................14
3.1 Khái niệm về Ontology ................................................................................................14
3.1.1 Khái niệm ..............................................................................................................14
3.1.2 Tổng quan về Ontology .......................................................................................14
3.1.2.1 Các thành phần của Ontology ......................................................................15
3.1.2.2 Các thực thể....................................................................................................15
3.1.2.3 Các lớp ............................................................................................................16
3.1.2.4 Thuộc tính ......................................................................................................17
Phương pháp xây dựng hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
iv
3.1.2.5 Các mối quan hệ ............................................................................................17
3.2 Ngôn ngữ Web Ontology (Web Ontology Language) ............................................19
3.2.1 OWL Ontology .....................................................................................................19
3.2.2 Mối quan hệ logic mô tả (Description logics – DLs).......................................20
3.2.3 Các dạng OWL .....................................................................................................20
3.3 Sesame ...........................................................................................................................21
3.3.1 Khái niệm về Sesame ...........................................................................................21
3.3.1.1 Sesame Server................................................................................................21
3.3.1.2 Kho dữ liệu và suy luận (Repositories and Inferencing) ..........................22
3.3.1.3 Tổng quan kiến trúc Sesame ........................................................................22
3.3.2 Cài đặt Sesame ......................................................................................................23
3.3.2.1 Cài đặt thư viện Sesame ...............................................................................23
3.3.2.2 Cài đặt máy chủ Sesame ...............................................................................24
3.3.2.3 Quản trị máy chủ ...........................................................................................25
3.3.3 Giao diện web của Sesame ..................................................................................27
3.3.3.1 Đăng nhập ......................................................................................................27
3.3.3.2 Thêm dữ liệu vào một kho dữ ......................................................................28
Chƣơng 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology.......................................29
4.1 Kiến trúc tổng quan của hệ thống..............................................................................29
4.2 Xử lý câu hỏi ngôn ngữ tự nhiên ................................................................................32
4.3 Thiết kế Ontology bằng Protege ................................................................................34
4.3.1 Thiết kế các lớp trong Ontology .........................................................................35
4.3.2 Thiết kế thuộc tính trong Ontology ....................................................................36
4.4 Ánh xạ Ontology ..........................................................................................................38
4.4.1 Ánh xạ Ontology cho câu hỏi đơn giản .............................................................39
4.4.1.1 Ánh xạ Ontology đối với loại câu hỏi NORMAL .....................................42
4.4.1.2 Ánh xạ Ontology đối với loại câu hỏi UNKN_REL .................................43
4.4.1.3 Ánh xạ Ontology đối với loại câu hỏi UNKN_TERM .............................44
4.4.1.4 Ánh xạ Ontology đối với loại câu hỏi AFFIRM_NEG ............................46
4.4.2 Ánh xạ Ontology đối với loại câu hỏi ―THREETERM‖ .................................47
4.5 Trích chọn câu trả lời..................................................................................................51
Phương pháp xây dựng hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
v
4.5.1 Trích chọn câu trả lời cho loại câu hỏi ―NORMAL‖, ―UNKN_REL‖ ..........52
4.5.2 Trích chọn câu trả lời cho loại câu hỏi ―UNKN_TERM‖ ...............................54
4.5.3 Trích chọn câu trả lời cho loại câu hỏi ―AFFIRM_NEG‖ ..............................56
4.5.4 Trích chọn câu trả lời cho loại câu hỏi ―THREETERM‖ ................................57
Chƣơng 5. Kết quả thực nghiệm và thảo luận ...............................................................59
5.1 Kết quả thực nghiệm....................................................................................................59
5.2 Thảo luận ......................................................................................................................61
Chƣơng 6. Kết luận ..............................................................................................................62
Phụ lục A ................................................................................................................................63
Tài liệu tham khảo ...............................................................................................................66
Phương pháp xây dựng hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
vi
Danh sách từ viết tắt
STT Kí hiệu Từ tiếng Anh Ngữ nghĩa
1 NLP Natural Language Processing Xử lý ngôn ngữ tự nhiên
2 QA Question Answering Hỏi đáp
3 API Application program interface Giao diện chương trình ứng dụng
Phương pháp xây dựng hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
vii
Danh sách hình vẽ
Hình 2.1. Tổng quan về hệ thống hỏi đáp dựa trên Ontologies [2] ...................................4
Hình 3.1. Ví dụ về lớp trong Ontology [58] ......................................................................16
Hình 3.2. Ví dụ về lớp ô tô ....................................................................................................18
Hình 3.3. Sesame server [59] ................................................................................................21
Hình 3.4. Kiến trúc của Sesame [59] ...................................................................................22
Hình 3.5. Cấu hình Sesame ...................................................................................................25
Hình 3.6. Cấu hình kho dữ liệu có sẵn trong Sesame ........................................................26
Hình 3.7. Giao diện web của Sesame ..................................................................................28
Hình 4.1. Kiến trúc tổng quan của hệ thống hỏi đáp tiếng Việt dựa trên Ontology ......29
Hình 4.2. Kiến trúc của thành phần tìm kiếm câu trả lời ..................................................30
Hình 4.3. Các lớp trong Ontology về trường đại học ........................................................36
Hình 4.4. Các thuộc tính trong Ontology về trường đại học ............................................37
Hình 4.5. Tổng quan về ánh xạ Ontology đối với câu hỏi đơn giản ................................40
Hình 4.6. Ví dụ hỏi đáp đối với loại câu hỏi ―NORMAL‖ ...............................................42
Hình 4.7. Ánh xạ Ontology tương tác với người dùng đối với loại câu hỏi
―UNKN_REL‖........................................................................................................................43
Hình 4.8. Ví dụ hỏi đáp đối với loại câu hỏi ―UNKN_TERM‖ .......................................44
Hình 4.9. Ví dụ hỏi đáp đối với loại câu hỏi ―UNKN_TERM‖ .......................................45
Hình 4.10. Ví dụ hỏi đáp đối với loại câu hỏi AFFIRM_NEG ........................................46
Hình 4.11. Tổng quan ánh xạ Ontology với loại câu hỏi ―THREETERM‖ ...................47
Hình 4.12. Ví dụ hỏi đáp đối với câu hỏi về số lượng.......................................................51
Hình 4.13. Trích chọn câu trả lời đối với loại câu hỏi ―NORMAL‖, ―UNKN_REL‖ ..52
Hình 4.14. Ví dụ hỏi đáp đối với loại câu hỏi ―NORMAL‖, ―UNKN_REL‖ ................53
Hình 4.15. Thành phần trích chọn câu trả lời đối với loại câu hỏi ―UNKN_TERM‖ ...54
Hình 4.16. Ví dụ hỏi đáp đối với loại câu hỏi ―UNKN_TERM‖ .....................................55
Hình 4.17. Ví dụ hỏi đáp đối với loại câu hỏi ―UNKN_TERM‖ .....................................55
Hình 4.18. Thành phần trích chọn câu trả lời đối với loại câu hỏi ―AFFIRM_NEG‖ ..56
Phương pháp xây dựng hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
viii
Hình 4.19. Ví dụ hỏi đáp đối với loại câu hỏi ―AFFIRM_NEG‖ ....................................56
Hình 4.20. Thành phần trích chọn câu trả lời đối với loại câu hỏi ―THREETERM‖ ....57
Hình 4.21. Ví dụ hỏi đáp đối với loại câu hỏi ―THREETERM‖ ......................................58
Phương pháp xây dựng hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
ix
Danh sách bảng
Bảng 5.1. Đánh giá hệ thống đối với các câu hỏi trả lời được .........................................59
Bảng 5.2. Đánh giá hệ thống đối với các câu hỏi lỗi .........................................................60
Chương 1. Giới thiệu Nguyễn Quốc Đại
1
Chƣơng 1.
Giới thiệu
Trong tìm kiếm thông tin, hỏi đáp (Question Answering – QA) là nhiệm vụ tự
động trả lời câu hỏi dưới dạng ngôn ngữ tự nhiên. Các câu hỏi trong một miền ứng
dụng cụ thể có thể được trả lời thông qua các kỹ thuật xử lý ngôn ngữ tự nhiên. Nhưng
các hệ thống gặp phải vấn đề: làm thế nào mô tả được tri thức trong miền ứng dụng.
Các nghiên cứu hiện nay tập trung vào sử dụng Ontology làm cơ sở tri thức, do
Ontology có khả năng mô tả một tập các khái niệm trong miền cụ thể và các mối quan
hệ giữa các khái niệm. Hiện nay, nhu cầu tìm kiếm thông tin tiếng Việt dưới dạng hỏi
đáp là rất lớn nhưng các hệ thống hỏi đáp cho tiếng Việt còn chưa có nhiều nghiên cứu
ứng dụng cụ thể.
Trong khóa luận này, chúng tôi đề xuất ―Phƣơng pháp xây dựng hệ thống hỏi
đáp tiếng Việt dựa trên Ontology‖. Phương pháp của chúng tôi có thể áp dụng cho
nhiều miền tri thức. Dựa vào phương pháp của mình, chúng tôi xây dựng một hệ thống
thử nghiệm trên miền tri thức trường đại học, mà cụ thể là miền tri thức về Đại học
Công Nghệ. Chúng tôi thiết kế một Ontology thử nghiệm cho miền tri thức này. Các
câu hỏi liên quan đến miền này sau khi đã phân tích [1], được ánh xạ vào trong
Ontology đã thiết kế. Rồi từ đó, chúng tôi hình thành nên các bộ mô tả tương ứng với
Ontology. Tiếp đến, chúng tôi trích chọn ra câu trả lời ngữ nghĩa tốt nhất có thể cho
câu hỏi của người dùng. Những kết luận và đánh giá về hệ thống hỏi đáp tiếng Việt
cho thấy hệ thống hoạt động tốt với các câu hỏi được hỏi.
Phần còn lại của khóa luận được chia thành:
Chƣơng 2: Chúng tôi giới thiệu tổng quan về hệ t hống hỏi đáp dựa trên
Ontology, và những khái niệm liên quan. Ngoài ra, chúng tôi đưa ra một vài tìm hiểu
đối với các hệ thống hỏi đáp hiện nay.
Chương 1. Giới thiệu Nguyễn Quốc Đại
2
Chƣơng 3: Chúng tôi giới thiệu các khái niệm cơ bản về Ontology, ngôn ngữ
Web Ontology (Web Ontology Language – OWL). Đồng thời, chúng tôi cũng giới
thiệu về Sesame, được sử dụng để lưu trữ các Ontology OWL cho miền ứng dụng cụ
thể.
Chƣơng 4: Chúng tôi đưa ra kiến trúc của hệ thống, các thành phần xử lý cho hệ
thống. Tiếp đến, chúng tôi giới thiệu cách thiết kế một Ontology OWL cho một miền
tri thức trường Đại học Công Nghệ. Dựa vào Ontology này, chúng tôi mô tả chi tiết để
trích rút câu trả lời ngữ nghĩa tốt nhất có thể cho một câu hỏi.
Chƣơng 5: Chúng tôi đưa ra những đánh giá thực nghiệm của hệ thống.
Chƣơng 6: Kết luận lại nội dung khóa luận, và những kết quả mà hệ thống hỏi
đáp tiếng Việt dựa trên Ontology đã đạt được.
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
3
Chƣơng 2.
Tổng quan về hỏi đáp
2.1 Tổng quan về hệ thống hỏi đáp dựa trên Ontology
Trong tìm kiếm thông tin, hỏi đáp (Question Answering – QA) là nhiệm vụ tự
động trả lời câu hỏi dưới dạng ngôn ngữ tự nhiên. Để tìm câu trả lời cho một câu hỏi,
một chương trình máy tính có thể sử dụng một cơ sở dữ liệu tiền cấu trúc hoặc sử dụng
một tập các văn bản ngôn ngữ tự nhiên.
Trong khoa học máy tính, Ontology là biểu diễn hình thức của một tập các khái
niệm trong miền cụ thể và các mối quan hệ giữa các khái niệm. Ontology được dùng
để suy luận các thuộc tính trong miền, có thể được dùng để định nghĩa miền [56].
Đa số các phương pháp phổ biến trong việc xác định thông tin cần thiết là sử
dụng công cụ tìm kiếm. Với câu hỏi đầu vào, các công cụ này đưa ra câu trả lời đơn
giản với việc so khớp các từ khóa. Xử lý ngôn ngữ tự nhiên (Natural Language
Processing – NLP) được sử dụng để nhận ra cấu trúc cú pháp và ngữ nghĩa của câu
hỏi, và các tài liệu thích hợp chứa đựng các câu trả lời cho câu hỏi sẽ được trả lại. Đấy
là đối với các câu hỏi đơn giản, nhưng các công cụ này sẽ khó có thể thực hiện được
với các câu hỏi phức tạp gồm các câu hỏi how, why hoặc what .
Vấn đề chính ở đây là các ứng dụng hỏi đáp duy trì việc hoàn thiện công cụ tìm
kiếm dựa vào từ khóa cho đến khi đòi hỏi NLP hiểu cấu trúc ngữ nghĩa cũng như cấu
trúc cú pháp của câu hỏi. Việc biểu diễn rõ ràng các ngữ nghĩa của dữ liệu trong miền
ứng dụng cụ thể tạo khả năng cung cấp một dịch vụ ở mức độ mới.
Phân tích và nghiên cứu những suy luận trong Ontology cho hệ thống hỏi đáp tạo
khả năng mô tả ngữ nghĩa cho miền ứng dụng. Trong Ontology, các thuật ngữ cùng
với quan hệ được định nghĩa rõ ràng trong miền cụ thể đã cho phép chia sẻ và sử dụng
lại tri thức. Với ưu điểm được đưa ra, Ontology được sử dụng để miêu tả một miền
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
4
ứng dụng cụ thể. Các khái niệm và các mối quan hệ được định nghĩa trong miền cùng
với ý nghĩa của chúng được sử dụng một cách nhất quán trong miền cụ thể đó.
Hình 2.1. Tổng quan về hệ thống hỏi đáp dựa trên Ontologies [2]
Dựa vào kiến trúc trong hình 2.1, Ontology xác định các khái niệm có liên quan,
bằng phương pháp tiếp cận lai, hoặc kết hợp các phương pháp cú pháp và các phương
pháp thống kê được sử dụng để trích ra các khái niệm từ các tài liệu.
Phương pháp dựa vào cú pháp phát hiện mẫu các danh từ ghép và miền cấu trúc
cụ thể. Phát hiện mẫu phù hợp với các phương pháp trích chọn khái niệm khác. Các
cách tiếp cận thống kê cho việc trích chọn khái niệm thường nhận biết sự xuất hiện của
các từ vựng trong một hoặc nhiều tập các tài liệu xác định. Một khái niệm xuất hiện
nhiều trong một tài liệu, thì khái niệm này có ý nghĩa và được trích chọn.
Gán nhãn từ loại được dùng để cải tiến việc nhận dạng các khái niệm. Các từ
được gán nhãn luôn dựa vào độ ưu tiên được trích chọn. Các từ loại khác chẳng hạn
như giới từ liên kết, giới từ nhận dạng sẽ bị loại trừ vì chúng không mang thông tin về
miền khái niệm. Các khái niệm được hình thức hóa sẽ thích hợp để dễ dàng cấu trúc
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
5
nên Ontology. Tuy nhiên, các khái niệm được tách riêng là vô nghĩa do không thể
truyền đạt nội dung quan trọng. Do đó, việc trích chọn quan hệ giữa các khái niệm
dưới dạng quan hệ chủ thể -quan hệ - đối tượng.
Mối quan hệ ngữ nghĩa có thể được nhận biết với sự hỗ trợ của WordNet.
WordNet là một cơ sở dữ liệu từ vựng trực tuyến cùng với một tập các nghĩa. Wordnet
được sử dụng để tìm kiếm quan hệ (liên kết is-a và part-of) giữa các khái niệm đối với
các từ đồng âm, các từ đồng nghĩa để giảm sự dư thừa về nhãn. Quan hệ thường biểu
diễn dưới dạng các động từ, và có thể được trích ra bởi so khớp động từ và các khái
niệm trong câu.
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
6
2.2 Khái niệm về hỏi đáp (Question Answering – QA)
2.2.1 Khái niệm hỏi đáp
Trong tìm kiếm thông tin, hỏi đáp (Question Answering – QA) là nhiệm vụ tự
động trả lời câu hỏi dưới dạng ngôn ngữ tự nhiên. Để tìm câu trả lời cho một câu hỏi,
một chương trình máy tính có thể sử dụng một cơ sở dữ liệu tiền cấu trúc hoặc sử dụng
một tập các văn bản ngôn ngữ tự nhiên.
Nghiên cứu QA nhằm mục đích xử lý các loại câu hỏi: sự kiện, danh sách, định
nghĩa, các câu hỏi như thế nào, tại sao, các câu hỏi mang tính giả thuyết, các câu hỏi
hạn chế về ngữ nghĩa và câu hỏi sử dụng đa ngôn ngữ. Có hai khái niệm trong hỏi đáp
là hỏi đáp miền đóng và hỏi đáp miền mở.
Hỏi đáp miền đóng (closed-domain) xử lý các câu hỏi trong một miền cụ thể, và
có thể xem như một nhiệm vụ đơn giản vì các hệ thống xử lý ngôn ngữ tự nhiên
(Natural Language Processing – NLP) có khả năng khai thác tri thức miền cụ thể được
biểu diễn bởi Ontologies.
Hỏi đáp miền mở (open-domain) xử lý các câu hỏi có nội dung về mọi thứ và chỉ
có thể dựa trên các Ontology tổng quát và tri thức tổng hợp từ khắp nơi trên thế giới.
Nói cách khác, các hệ thống này thường lưu trữ một lượng lớn dữ diệu có sẵn để từ đó
trích chọn ra đáp án cho câu hỏi tìm kiếm.
Hỏi đáp (Question Answering – QA) cần sử dụng nhiều phương pháp NLP phức
tạp hơn các tìm kiếm thông tin phục hồi tài liệu. Do đó, các công cụ tìm kiếm ngôn
ngữ tự nhiên được đánh giá vượt xa các công cụ tìm kiếm hiện nay.
Trong mục 2.3, chúng tôi đưa ra tổng quan một số hệ thống hỏi đáp được phân
loại dựa trên miền đóng và miền mở.
2.2.2 Kiến trúc hỏi đáp
Hệ thống QA đầu tiên phát triển vào những năm 1960 [64]. Các hệ thống này về
cơ bản là các giao diện ngôn ngữ tự nhiên đối với các hệ chuyên gia - những hệ thống
được xây dựng riêng cho từng miền ứng dụng cụ thể. Nguợc lại, các hệ thống QA
ngày nay lại sử dụng các tài liệu văn bản làm nguồn tri thức cơ bản và kết hợp với
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
7
nhiều kỹ thuật NLP khác nhau để tìm ra các câu trả lời. Các hệ thống QA hiện nay
thường bao gồm một module phân loại câu hỏi, giúp xác định loại câu hỏi và loại câu
trả lời tương ứng. Sau khi phân tích câu hỏi, hệ thống sẽ sử dụng một số module áp
dụng các kỹ thuật NLP phức tạp lên một lượng văn bản đã được giảm bớt nhờ module
phân tích câu hỏi. Tiếp theo, một module phục hồi tài liệu sử dụng các công cụ tìm
kiếm, module này dùng để nhận dạng tài liệu hoặc đoạn văn bản trong tập tài liệu có
khả năng chứa câu trả lời trong đó. Sau đó, một bộ lọc sẽ chọn sẵn một đoạn văn bản
ngắn có chứa chuỗi kí tự cùng kiểu với câu trả lời được chờ đợi. Ví dụ, nếu câu hỏi là:
“Who invented Penicillin?”
Bộ lọc trả lại văn bản có chứa tên người. Cuối cùng, một module trích chọn câu
trả lời tìm kiếm thêm các liên kết trong văn bản để quyết định xem trong số các đáp án
đã đuợc lọc ra thì đâu là đáp án thực sự.
2.2.3 Các phƣơng pháp hỏi đáp
Hỏi đáp (Question Answering – QA) phụ thuộc rất nhiều vào tập tài liệu tìm kiếm
có tốt hay không. Nếu hệ thống không tìm ra được các tài liệu có chứa câu trả lời thì
gần như không có hệ thống QA nào thực hiện được. Vì vậy, quy mô tập tài liệu càng
lớn thì càng có ích cho quá trình trả lời câu hỏi, trừ trường hợp lĩnh vực mà câu hỏi đề
cập đến khác hoàn toàn so với tài liệu sẵn có.
Trong các tập dữ liệu lớn, khái niệm về dư thừa dữ liệu là số lượng lớn thông tin
có khả năng được diễn đạt theo nhiều cách khác nhau trong các tài liệu và ngữ cảnh
khác nhau. Điều này dẫn đến 2 lợi ích sau:
(1) Thông tin thích hợp xuất hiện duới nhiều hình thức khác nhau sẽ giúp hệ
thống QA thực hiện các kỹ thuật NLP phức tạp một cách dễ dàng hơn.
(2) Các câu trả lời đúng có thể được lọc ra bởi câu trả lời thích hợp sẽ xuất hiện
nhiều lần hơn trong các tài liệu so với các trường hợp trả lời không chính xác.
Phân tích bề nổi : Một vài phương pháp trả lời câu hỏi sử dụng các kỹ thuật dựa
vào từ khóa để xác định vị trí của các đoạn văn bản hay câu đáng chú ý trong các tài
liệu đuợc tìm kiếm. Sau đó, hệ thống tìm kiếm dựa trên sự có mặt của đáp án cần tìm
đang nằm trong những đoạn văn bản hay câu đó. Việc sắp xếp các đáp án được thực
hiện ngay sau đó dựa vào các đặc điểm cú pháp của câu hay đoạn văn bản, chẳng hạn
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
8
dựa vào trật tự từ, vị trí của câu hay đoạn, và những điểm tương đồng khác của các câu
hay đoạn này so với câu hỏi tìm kiếm.
Khi sử dụng những tập dữ liệu lớn với sự dư thừa dữ liệu tốt, nhiều hệ thống
dùng các mẫu để tìm ra đáp án cuối. Nếu đặt ra câu hỏi:
“What is a cat?”
Hệ thống sẽ tìm ra chuỗi con “What is a X?” và rồi thực hiện quá trình tìm kiếm
các tài liệu bắt đầu với “X is a Y”. Phương pháp này thường làm việc tốt đối với các
câu hỏi đơn giản nhằm tìm kiếm các thông tin thực tế như tên, ngày tháng, địa điểm và
số luợng.
Phân tích chiều sâu: Những trường hợp phương pháp dựa vào từ khóa không
đáp ứng được , thì hệ thống dùng các xử lý phức tạp như phân tích cú pháp, phân tích
ngữ nghĩa và ngữ cảnh của câu hỏi. Dựa vào đó, hệ thống tách ra hoặc cấu tạo nên câu
trả lời. Những kỹ thuật này có thể bao gồm kỹ thuật nhận dạng thực thể có tên, phương
pháp nhận biết mối quan hệ, phân tích từ đồng nghĩa, các kỹ thuật biến đổi cú pháp,
phương pháp loại bỏ nhập nhằng về nghĩa của từ, phương pháp biến đổi hình thái
logic,… Những hệ thống này cũng sử dụng tri thức trong các Ontology để suy luận
thông qua các khái niệm và các liên kết ngữ nghĩa.
Nhiều dạng câu hỏi khó như dạng câu hỏi why, how, các câu hỏi giả định, câu hỏi
giới hạn về không gian và thời gian, các câu hỏi hội thoại, các câu hỏi nhập nhằng cần
tất cả những phương pháp phân tích chiều sâu như trên để hệ thống nhận biết câu hỏi.
Tương tự như vậy, những đoạn văn bản phức tạp hoặc nhập nhằng cũng cần được áp
dụng nhiều phương pháp NLP để nhận ra được nội dung văn bản.
Hỏi đáp (QA) thống kê giới thiệu các module xử lý câu hỏi dựa vào thống kê và
trích chọn ra câu trả lời. Nhiều công cụ NLP như kỹ thuật nhận dạng thực thể có tên,
phân tích cú pháp, gán nhãn từ loại, nhận dạng ranh giới câu và phục hồi tài liệu có thể
sử dụng như là các ứng dụng thống kê.
Mục dưới đây, chúng tôi tìm hiểu một số hệ thống hỏi đáp dựa vào phân loại
miền đóng, miền mở, giới thiệu vài hệ thống hỏi đáp có sử dụng Ontology. Chúng tôi
mô tả qua một số ưu nhược điểm của các hệ thống đó, đồng thời cũng giới thiệu qua
các phương pháp mà các hệ thống này sử dụng để tìm kiếm câu trả lời cho câu hỏi.
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
9
2.3 Giao diện ngôn ngữ tự nhiên miền đóng
Giao diện ngôn tự nhiên (Natural Language Interface) miền đóng là các hệ thống
hỏi đáp dựa trên cơ sở dữ liệu. Các câu hỏi được đặt ra dưới dạng ngôn ngữ tự nhiên,
từ đó truy vấn vào cơ sở dữ liệu. Phần lớn các hệ thống NLIDB (Natural Language
Interface to Database) đầu tiên được tạo ra với một cơ sở dữ liệu đặc biệt. Do vậy, các
thống hỏi đáp này không thể sửa đổi dễ dàng để sử dụng kèm với các cơ sở dữ liệu
khác, và cũng khó áp dụng đối với các miền ứng dụng khác. Một vài hệ thống NLIDB
sử dụng kỹ thuật so khớp mẫu, Androutsopoulos [6] đưa ra ví dụ câu hỏi có chứa từ
―capital‖ theo sau tên nước, thì hệ thống này đưa ra tên thủ đô tương ứng với tên nước
đó, và từ đó tìm câu trả lời cho câu hỏi:
“what is the capital of Italy?”,
―print the capital of Italy”, hoặc
“Could you please tell me the capital of Italy”.
Các phương pháp thường sử dụng trong các hệ thống khác thường dựa vào tính
tương đồng về ngữ nghĩa hoặc dựa vào thống kê. Ví dụ, FAQ Finder [12] là một hệ
thống trả lời câu hỏi ngôn ngữ tự nhiên, trong đó nó sẽ sử dụng các file có sẵn của
FAQ để làm cơ sở tri thức (Knowledge Base – KB). Hệ thống này cũng sử dụng
WordNet để nâng cao khả năng tìm kiếm câu trả lời thích hợp cho các câu hỏi được
đưa ra. FAQ Finder [12] sử dụng hai phương pháp đo: sự tương đồng về ngữ nghĩa và
sự tương đồng dựa vào thống kê. Tuy nhiên, phương pháp thống kê có vẻ không hữu
ích vì phương pháp này thuờng chỉ có ích đối với các tài liệu dài với lượng dữ liệu lớn,
có đủ các từ cho so sánh thống kê [12]. Còn phương pháp đo tương đồng về ngữ nghĩa
lại dựa vào các mối liên hệ giữa câu hỏi của người dùng và câu trả lời. Mối quan hệ
ngữ nghĩa có thể được nhận biết với sự hỗ trợ của WordNet. WordNet là một cơ sở dữ
liệu từ vựng trực tuyến cùng với một tập các nghĩa. Wordnet được sử dụng để tìm
kiếm quan hệ (liên kết is-a và part-of) giữa các khái niệm đối với các từ đồng âm, các
từ đồng nghĩa. Vấn đề chính trong phương pháp đo tương đồng về ngữ nghĩa không
thể xử lý được các từ vốn không có trong KB.
Các thế hệ NLIDB tiếp theo sử dụng ngôn ngữ biểu diễn trung gian. Ngôn ngữ
này phản ánh được nghĩa của câu hỏi người dùng dựa theo ngôn ngữ bậc cao và độc
lập với cấu trúc cơ sở dữ liệu [6]. Chẳng hạn, hệ thống ngôn ngữ tự nhiên đối với cơ
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
10
sở dữ liệu dựa trên ngữ nghĩa học hình thức [19], đã tạo ra phân biệt rõ ràng giữa thao
tác đầu và thao tác cuối trong quá trình xử lý ngôn ngữ tự nhiên (Natural Language –
NL). Thao tác đầu cung cấp một ánh xạ giữa các câu tiếng Anh tới các biểu thức ngữ
nghĩa học, và thao tác cuối ánh xạ các biểu thức này vào trong các biểu thức ý nghĩa
đối với miền câu hỏi. TEAM [41] là một hệ thống NLIDB thí nghiệm, linh hoạt được
phát triển vào những năm 1980. Hệ thống hỏi đáp TEAM, bao gồm hai thành phần
chính: (1) thành phần ánh xạ các biểu thức NL thành các biểu diễn hình thức, (2) thành
phần chuyển đổi những biểu diễn này thành các câu lệnh đối với cơ sở dữ liệu. TEAM
[41] tạo ra sự phân tách giữa quá trình ngôn ngữ và quá trình ánh xạ lên KB.
PRECISE [47] là chương trình ánh xạ các câu hỏi tới truy vấn SQL tương ứng
bởi việc nhận dạng các lớp câu hỏi đơn giản. Các câu hỏi là một tập các cặp thuộc tính
– giá trị và cùng với một quan hệ. Mỗi thuộc tính trong cơ sở dữ liệu được liên kết với
một wh-value (what, when, where,…). Trong chương trình PRECISE, một bộ từ vựng
được sử dụng để tìm các từ đồng nghĩa. Tuy nhiên, trong chương trình PRECISE, việc
tìm một ánh xạ dựa theo từ vựng cho cơ sở dữ liệu đòi hỏi mọi từ vựng phải riêng biệt
với nhau. Hệ thống này không thể phân tích được ngữ nghĩa các câu hỏi có chứa các từ
mà hệ thống chưa biết, vì thế chương trình không thể xử lý được câu hỏi này. Nói cách
khác, chương trình PRECISE sẽ không trả lời các câu hỏi mà chứa những từ không có
sẵn trong từ điển của nó.
2.4 Các hệ thống QA miền mở
Các ứng dụng QA dành cho văn bản thường gồm 2 bước, được trích dẫn bởi
Hirschman [26]: (1) Nhận dạng các kiểu ngữ nghĩa của đối tượng được tìm kiếm bởi
câu hỏi, (2) Xác định các ràng buộc bổ sung cho đối tượng trả lời. Các ràng có thể là
các từ khóa (số lượng từ khóa có thể được khuếch đại do việc sử dụng các từ đồng
nghĩa hoặc các biến thể hình thái) dùng để so khớp đối với các câu trả lời. Các ràng
buộc cũng có thể là các mối quan hệ cú pháp hoặc ngữ nghĩa giữa một đối tượng trả
lời và các đối tượng khác trong câu hỏi. Do vậy, nhiều hệ thống khác đã hình thành
phân cấp loại câu hỏi dựa vào dạng câu trả lời tìm kiếm.
Trong chương trình LASSO [45], phân cấp loại câu hỏi được hình thành từ việc
phân tích dữ liệu huấn luyện TREC-8 (Text Retrieval Conference – 8). Khi nhận được
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
11
một câu hỏi, LASSO tự động tìm kiếm: (a) loại câu hỏi (what, why, who, how, where),
(b) loại câu trả lời (person, location…), (c) trọng tâm câu hỏi, là thông tin chính được
yêu cầu bởi câu hỏi. Ngoài ra, phân cấp loại câu hỏi còn giúp nhận dạng từ khóa trong
câu hỏi. Đôi khi, nhiều từ có trong câu hỏi sẽ không xuất hiện lại trong câu trả lời. Các
hệ thống miền mở cố gắng tìm kiếm các từ đồng nghĩa, cùng với các biến thể hình thái
của từ đồng nghĩa đó cho các thuật ngữ hoặc các từ khóa.
Trong TREC-9 [18], hệ thống FALCON được mô tả bởi Harabagiu et al. [25] cho
câu trả lời ngữ nghĩa được ánh xạ bởi công cụ nhận dạng thực thể có tên. Nếu khái
niệm trong câu hỏi cho biết loại câu trả lời, hệ thống FALCON sẽ được ánh xạ câu hỏi
vào trong phân loại câu trả lời. Tất cả các danh từ (và các biến đổi hình thái từ vựng)
có liên quan tới các khái niệm xác định loại câu trả lời thì đều được nhận biết thông
qua các từ khóa. FALCON đưa ra câu trả lời được lưu trữ nếu có một câu hỏi tương tự
đã được hỏi trước đó.
START [33] chú trọng vào các câu hỏi về địa lý và thông tin phòng thí nghiệm
của MIT. START sử dụng gọi bộ ba là ―đối tượng – thuộc tính – giá trị‖. Đây là một
hệ thống lớn được đánh giá cao trong các hệ thống hỏi đáp (Question Ansering – QA)
bởi khả năng phân tích và tổng hợp câu hỏi. Với một câu hỏi ở dạng phức tạp, START
có cơ chế chia câu hỏi này ra thành những câu hỏi nhỏ, mỗi câu hỏi nhỏ sẽ tìm được
câu trả lời trực tiếp trong cơ sở dữ liệu. Sau đó START tổng hợp kết quả từ những câu
trả lời của các câu hỏi nhỏ đó. Ngoài ra START còn đặc biệt hữu dụng trong việc tìm
ra câu trả lời bởi khả năng phân tích ngữ nghĩa rất tốt của nó.
Litkowski [38] đưa ra hệ thống DIMAP, hệ thống này trích chọn các bộ ba quan
hệ ngữ nghĩa sau khi tài liệu được phân tích cú pháp và cây cú pháp được kiểm tra.
Các bộ ba trong DIMAP sẽ được lưu lại trong một cơ sở dữ liệu với mục đích dùng để
trả lời các câu hỏi. Bộ ba quan hệ ngữ nghĩa được đề cập ở trên bao gồm các đối tượng
(SUBJ, OBJ, TIME, NUM, ADJMOD), có một quan hệ ngữ nghĩa mô tả lại vai trò của
đối tượng, và một từ trong câu có liên quan tới đối tượng này. Một bộ ba thường tương
đương với một hình thái logic. Các đối tượng là thành phần chủ chốt của các bộ ba
trong DIMAP, các thành phần quan trọng (các danh từ chính, động từ chính và bất cứ
tính từ hoặc danh từ bổ nghĩa nào) đuợc xác định cho mỗi loại câu hỏi. Hệ thống phân
các câu hỏi ra làm sáu loại câu hỏi: thời gian, địa điểm, ai, cái gì, kích cỡ và số lượng.
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
12
PiQASso [8] sử dụng một phép phân loại câu hỏi để phân loại các câu hỏi về:
người, tổ chức, thời gian, số lượng và vị trí (là các loại cơ bản). Ngoài ra, PiQASso
còn có thêm 23 loại danh từ trong WordNet. Loại câu trả lời có thể được kết hợp với
các loại danh từ này. Ví dụ, trong câu hỏi có chứa ―who‖, ―where‖ thì loại câu trả lời
sẽ là về ―person‖ hoặc ―organization‖. Các loại câu hỏi có thể được xác định trực tiếp
từ các từ để hỏi: ―who‖, ―when‖, ―where‖. Có nhiều trường hợp cần thêm các thông tin
bổ sung khác. Ví dụ, với các câu hỏi ―how‖ thì loại câu hỏi được tìm thấy từ tính từ
theo sau từ ―how‖ (―how many‖ hoặc ―how much‖) để chỉ số luợng, hoặc ―how long‖,
―how old‖ để chỉ thời gian, v.v… Loại câu hỏi ―what (noun)‖ thường là ngữ nghĩa của
danh từ đã được xác định bởi WNSense. WNSense là một công cụ dùng cho việc phân
loại nghĩa của từ. Các câu hỏi thuộc dạng ―what (verb)‖ có cùng loại câu trả lời với đối
tượng của động từ. Các câu hỏi ―what is‖ cũng dựa vào việc xác định ngữ nghĩa của từ
để hỏi. Tuy nhiên, PiQASso nhận định không phải lúc nào cũng có thể chỉ cần tìm ra
ngữ nghĩa của từ, bởi vì tình trạng thiếu ngữ cảnh không cho phép xác định nghĩa
chính xác của từ. Vì vậy, mọi đối tượng cũng có thể được chấp nhận như là các câu trả
lời cho các câu hỏi mang tính định nghĩa, miễn là chúng xuất hiện như là một chủ thể
trong một câu dạng ―is-a‖. Nếu xác định được loại câu trả lời cho một câu hỏi thì nó sẽ
được chuyển qua bộ lọc để so khớp quan hệ trong quá trình phân tích.
2.5 Ontologies trong QA
Nhiều hệ thống đơn giản dùng một Ontology như một cơ chế hỗ trợ cho việc mở
rộng câu hỏi tìm kiếm trong quá trình tìm kiếm thông tin. Basili et al. [9] có đề cập đến
tính khả thi của việc xây dựng một hệ trống QA dựa vào Ontology trong ngữ cảnh của
một web ngữ nghĩa. Các tác giả đã nghiên cứu phương pháp này trên ngữ cảnh một dự
án mang tên MOSES, với mục tiêu phát triển một phuơng pháp luận dựa vào Ontology
để tìm kiếm, tổ chức, bảo trì và thích hợp với những nội dung Web có cấu trúc về ngữ
nghĩa. Basili et al. [9] nghiên cứu xem phương pháp dựa trên Ontology này có thể hỗ
trợ cho hỏi đáp không và nếu có thì bằng cách nào. Basili et al. [9] cũng đưa ra một
cách phân loại các câu hỏi, từ đó hệ thống được trợ giúp và xem xét nội dung câu hỏi ở
mức độ lớn đối với các khái niệm và các mối quan hệ suy ra từ Ontology.
Phương pháp dựa vào tri thức [14] bổ sung các văn bản trực tuyến với một thành
phần QA dựa vào tri thức. Hệ thống suy ra câu trả lời tương ứng với những câu hỏi
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
13
của người dùng mà những câu hỏi đó ở bên ngoài phạm vi của văn bản được ghi từ
trước trong hệ thống. Tri thức được lưu trữ trong một cơ sở tri thức và được cấu trúc
như là một Ontology của miền. Giống như nhiều hệ thống hỏi đáp, [14] cũng có một
tập nhỏ gồm các loại câu hỏi chung để biết làm thế nào để trả lời. Các loại câu hỏi
được liên kết với các khái niệm trong KB. Khi một khái niện đưa ra, các loại câu hỏi
thích hợp hoặc tương ứng chính là loại câu hỏi gắn liền với khái niệm của chính câu
hỏi đó. Các câu hỏi cung cấp ngữ cảnh để hệ thống dựa vào đó tìm ra đáp án cho câu
hỏi tìm kiếm.
Các hệ thống hỏi đáp (Question Answering – QA) cho phép người dùng đưa ra
một câu hỏi dưới dạng ngôn ngữ tự nhiên và nhận được câu trả lời ngắn gọn, trong
nhiều trường hợp còn có kèm theo ngữ cảnh cụ thể. AquaLog [3] là một hệ thống QA
ngôn ngữ tự nhiên dựa trên Ontology, và dựa vào tri thức đã được mã hóa trong
Ontology. Hệ thống này cũng dựa vào chức năng ngữ nghĩa học để loại bỏ nhập nhằng
về nghĩa của các câu hỏi và đưa ra các câu trả lời. AquaLog sử dụng biểu diễn trung
gian trong suốt quá trình xử lý, từ việc biểu diễn câu hỏi người dùng đến việc biểu
diễn thành một bộ mô tả tương ứng với Ontology. Trong AquaLog, sự nhập nhằng của
NL được tính đến, vì thế, nếu giai đoạn phân tích câu hỏi không có khả năng loại bỏ
tính nhập nhằng này thì nó vẫn sẽ xuất hiện trong giai đoạn tiếp theo . AquaLog có khả
năng lập luận về cấu trúc Ontology để tạo ý nghĩa c ho các lớp hoặc các mối quan hệ.
AquaLog phân loại câu hỏi căn cứ trên loại bộ ba là biểu diễn ngữ nghĩa của câu hỏi.
Trong khi đó, hầu hết các hệ thống QA miền mở lại phân loại các câu hỏi theo mục
tiêu trả lời. Aqualog tìm kiếm các mối quan hệ giữa các thuật ngữ, hoặc giữa một thuật
ngữ với giá trị của nó. AquaLog dùng một bộ ba cho một mối quan hệ giữa các thuật
ngữ, cho dù mối quan hệ này không rõ ràng.
Chúng tôi tin tưởng vào các ưu điểm chính của một hệ thống hỏi đáp dựa trên
Ontology trong Web ngữ nghĩa. Khi đã so sánh các loại hệ thống hỏi đáp khác nhau,
hệ thống hỏi đáp dựa trên Ontology có thể sử dụng miền tri thức được cung cấp bởi
Ontology để xử lý các từ không được tìm thấy trong cơ sở tri thức và loại bỏ nhập
nhằng về nghĩa của từ. Do vậy, chúng tôi đưa ra hệ thống hỏi đáp cho tiếng Việt dựa
trên Ontology (chương 4). Trong chương 3, chúng tôi giới thiệu các khái niệm liên
quan tới Ontology, các khái niệm về Sesame, cấu hình Sesame server để lưu trữ
Ontology cho hệ thống của chúng tôi.
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
14
Chƣơng 3.
Ontology – Sesame
Chúng tôi sẽ đưa ra các khái niệm cơ bản liên quan tới Ontology (mục 3.1), ngôn ngữ
Web Ontology (mục 3.2). Sau đó, chúng tôi giới thiệu các khái niệm liên quan tới
Sesam, cấu hình Sesame server để lưu trữ các Ontology cho hệ thống (mục 3.3).
3.1 Khái niệm về Ontology
3.1.1 Khái niệm
Trong khoa học máy tính, Ontology là biểu diễn hình thức của một tập các khái
niệm trong miền cụ thể và các mối quan hệ giữa các khái niệm. Ontology được dùng
để suy luận về các thuộc tính của miền, có thể được dùng để định nghĩa miền [56].
Theo lý thuyết, Ontology là một đặc tả hình thức, rõ ràng của một khái niệm
được dùng chung [56]. Một Ontology cung cấp một bảng từ vựng dùng chung, bảng từ
vựng này có thể được sử dụng để mô hình hóa một miền, cung cấp các đối tượng và
(hoặc) các khái niệm đang có, và các thuộc tính cùng với các mối quan hệ của chúng.
Ontologies được sử dụng trong trí tuệ nhân tạo, Web ngữ nghĩa, công nghệ phần
mềm, trong tin sinh, thư viện học, và kiến trúc thông tin như một dạng biểu diễn tri
thức về thế giới hoặc một về một miền ứng dụng cụ thể.
3.1.2 Tổng quan về Ontology
Ontology là mô hình mô tả tri thức về miền ứng dụng cụ thể, biểu diễn các đối
tượng, các khái niệm, cùng với các thuộc tính và các mối quan hệ.
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
15
3.1.2.1 Các thành phần của Ontology
Ontologies hiện nay có chung các cấu trúc giống nhau và không quan tâm tới
ngôn ngữ mà chúng được thể hiện. Hầu hết các Ontology miêu tả các thực thể (các đối
tượng), các lớp (các khái niệm), các thuộc tính và các mối quan hệ.
Các thành phần phổ biến của các Ontologies bao gồm :
- Các thực thể: các đối tượng (các đối tượng cơ bản).
- Các lớp: các khái niệm về các đối tượng, hoặc các loại vật chất.
- Các thuộc tính: các đặc tính, đặc trưng, các đặc điểm hoặc các tham số mà
các đối tượng (và các lớp) có thể có.
- Các mối quan hệ: các cách để các lớp, các thực thể có thể được liên kết tới
các lớp (hoặc thực thể) khác.
- Các thuật ngữ chức năng: các cấu trúc phức tạp được hình thành từ các
quan hệ đã biết, sử dụng thuật ngữ thích hợp trong một phát biểu.
- Các giới hạn: các mô tả được phát biểu phải chính xác và hợp lệ.
- Các quy tắc: các phát biểu dưới dạng mệnh đề if – then (điều kiện – kết
quả) miêu tả suy luận logic.
- Các tiền đề: các khẳng định (bao gồm các quy tắc) trong một hình thức
logic và đồng thời bao gồm toàn bộ lý thuyết mà Ontology miêu tả trong
miền ứng dụng của nó.
- Các sự kiện: các thay đổi của các thuộc tính hoặc các mối quan hệ.
Các Ontology thường được mã hóa bởi các ngôn ngữ Ontology.
3.1.2.2 Các thực thể
Các thực thể (các đối tượng) là các thành phần cơ bản, mức cơ sở của một
Ontology. Các thực thể trong một Ontology bao gồm các đối tượng cụ thể như người,
động vật, bàn ghế, xe ô tô, … cũng như các đối tượng trừu tượng chẳng hạn như các
số, các từ. Một Ontology có thể không cần bất kỳ thực thể nào, nhưng mục đích của
Ontology là đưa ra phương pháp phân loại các thực thể, ngay cả khi những thực thể
này không là thành phần trong Ontology.
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
16
3.1.2.3 Các lớp
Các lớp có thể được định nghĩa như là một sự mở rộng (extension) hoặc như một
độ tăng cường (intension) [58]. Theo như định nghĩa mở rộng, các lớp là các nhóm,
các bộ hoặc các tập hợp các đối tượng trừu tượng. Theo định nghĩa độ tăng cường, các
lớp là các đối tượng trừu tượng được định nghĩa bởi các dạng giá trị, các dạng giá trị
này là các ràng buộc cho phần tử của lớp. Trong định nghĩa mở rộng cho thấy một lớp
là một tập các lớp con. Còn định nghĩa theo độ tăng cường, giữa các tập hợp và các lớp
có nhiều khác nhau cơ bản. Các lớp có thể phân loại các thực thể, phân loại các lớp
khác, hoặc kết hợp cả hai phân loại. Ví dụ về lớp:
- Người, lớp toàn bộ con người, hoặc đối tượng trừu tượng có thể được mô
tả bởi các tiêu chuẩn cho một người.
Một lớp là mở rộng khi và chỉ khi lớp đó được mô tả bởi mọi phần tử của lớp.
Nếu một lớp không thỏa mãn điều kiện này, khi ấy nó là độ tăng cường. Các lớp mở
rộng hoạt động tốt hơn và xử lý tính toán tốt hơn, và cũng ít nhập nhằng, thì lại không
cho phép phân biệt rõ ràng giữa các lớp. Trong khi đó, các lớp được định nghĩa cường
độ thường có các điều kiện cần để liên kết với các phần tử trong mỗi lớp. Một vài lớp
cũng có thể có các điều kiện đủ, và trong các trường hợp này sự kết hợp các điều kiện
cần và đủ làm cho lớp được định nghĩa đầy đủ.
Một lớp có thể là lớp con (hoặc kiểu con) của một lớp nào đó (lớp cha) , và tạo ra
một hệ phân cấp các lớp. Lớp con được thừa kế thuộc tính từ lớp cha. Vì vậy, bất cứ
điều gì đúng đối với lớp cha thì cũng đúng với tất cả các lớp con của nó.
Hình 3.1. Ví dụ về lớp trong Ontology [58]
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
17
Một phân vùng là một tập các lớp có liên quan cùng với các quy tắc được liên
kết. Các quy tắc được liên kết cho phép các phân chia các đối tượng bởi các lớp con
thích hợp. Chẳng hạn, hình 3.1 hiện thị một phần của một Ontology có một phân vùng
của lớp ―Car‖ với các lớp con ―2-Wheel Drive Car‖ và ―4-Wheel Drive Car‖. Các quy
tắc phân vùng xác định nếu có một Car cụ thể thì được phân loại bởi lớp ―2-Wheel
Drive Car‖ hoặc bởi lớp ―4-Wheel Drive Car‖.
Các quy tắc phân vùng bảo đảm rằng một Car cụ thể không thể được tồn tại trong
cả hai lớp, khi ấy, phân vùng đó được gọi là một phân vùng rời. Nếu quy tắc phân
vùng đảm bảo mọi đối tượng cụ thể trong lớp cha là một đối tượng thuộc ít nhất một
trong các lớp con, thì phân vùng đó được gọi là một phân vùng đầy đủ.
3.1.2.4 Thuộc tính
Các đối tượng trong Ontology có thể được mô tả bởi liên kết của chúng với
những đối tượng khác, những liên kết này thường được gọi là các thuộc tính, mặc dù
có thể là những liên kết độc lập. Loại đối tượng và loại thuộc tính xác định loại quan
hệ giữa chúng. Một đối tượng dựa vào thuộc tính để liên kết tới đối tượng khác. Ví dụ:
đối tượng Nguyễn_Quốc_Đại có các thuộc tính chẳng hạn như:
- Nguyễn_Quốc_Đại
- Hà_Nội
- k50_khoa_học_máy_tính
Giá trị của một thuộc tính có thể có một kiểu dữ liệu phức tạp.
3.1.2.5 Các mối quan hệ
Các mối quan hệ giữa các đối tượng trong Ontology chỉ ra các đối tượng đó có
liên quan như thế nào đến những đối tượng khác. Và quan hệ giữa các lớp cụ thể dẫn
đến quan hệ giữa các đối tượng trong các lớp đó.
Các quan hệ trong Ontology xuất phát từ khả năng muốn miêu tả các liên kết giữa
các khái niệm. Tập hợp các loại quan hệ được sử dụng để thể hiện ngôn ngữ biểu diễn
Ontology.
Loại quan hệ quan trọng nhất là quan hệ is-a-superclass-of, quan hệ này là nghịch
đảo is-a-subtype-of. Các quan hệ này xác định các đối tượng được phân loại do các lớp
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
18
trong Ontology . Với thí dụ trong hình 3.2, lớp Ford Explorer is-a-subclass-of 4-Wheel
Drive Car, 4-Wheel Drive Car is-a-subclass-of Car và Car is-a-superclass-of 4-Wheel
Drive Car.
Hình 3.2. Ví dụ về lớp ô tô
Các quan hệ is-a-subclass-of tạo ra một cấu trúc dạng cây miêu tả các đối tượng
liên quan đến một đối tượng khác như thế nào.
Quan hệ phổ biến khác là quan hệ được part-of, mô tả các đối tượng kết hợp lại
với nhau như thế nào để hình thành các đối tượng ghép. Thí dụ, nếu Ontology về lớp ô
tô (hình 3.2) được mở rộng bao gồm khái niệm Steering Wheel, thì có quan hệ dạng
―Steering Wheel is-by-definition-a-part-of-a Ford Explorer‖. Khi Ontology thêm vào
các quan hệ part-of thì cấu trúc cây trở nên phức tạp và gặp nhiều khó khăn để biên
dịch bằng tay. Tương tự quan hệ is-a-subclass-of và is-by-definition-a-part-of-a, các
Ontology thường bao gồm các quan hệ bổ sung để mô tả ngữ nghĩa cho miền ứng
dụng cụ thể. Chẳng hạn như các quan hệ:
- Các quan hệ giữa các lớp.
- Các quan hệ giữa các đối tượng.
- Các quan hệ giữa một đối tượng và một lớp.
- Các quan hệ giữa một đối tượng riêng lẻ và một tập đối tượng.
- Các mối quan hệ giữa các tập đối tượng.
Các quan hệ trong một miền cụ thể được dùng để lưu trữ các kiểu dữ liệu cụ thể
hoặc trả lời các câu hỏi đặc biệt.
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
19
3.2 Ngôn ngữ Web Ontology (Web Ontology Language)
Ngôn ngữ Web Ontology – OWL (Web Ontology Language) là một họ ngôn ngữ
biểu diễn tri thức cho các Ontology, và được xác nhận bởi W3C (World Wide Web
Consortium). Họ các ngôn ngữ này phần lớn dựa trên hai ngữ nghĩa: ngữ nghĩa OWL
DL và OWL Lite. Trong khi đó OWL Full sử dụng một mô hình ngữ nghĩa mới nhằm
cung cấp tính tương thích với RDF Schema. Các Ontology OWL đa số thường sử dụng
cú pháp RDF/XML, và OWL là một trong các công nghệ nền tảng hỗ trợ Web ngữ
nghĩa (Semantic Web).
Khung mô tả tài nguyên – RDF (Resource Description Framework) là một hệ
thống các đặc điểm kỹ thuật của W3C (World Wide Web Consortium) được thiết kế
độc đáo như một mô hình siêu dữ liệu. RDF được dùng để mô tả khái niệm hoặc mô
hình hóa thông tin [61].
RDF Schema (viết tắt khác như RDFS, RDF (S), RDF-S, hoặc RDF/S) là một
ngôn ngữ biểu diễn tri thức mở rộng, cung cấp các thành phần cơ bản để mô tả
Ontology. RDF Schema còn được gọi là từ vựng RDF, dùng để cấu trúc các tài nguyên
RDF [62].
3.2.1 OWL Ontology
Trong OWL Ontology, dữ liệu được mô tả như một tập các đối tượng và một tập
các thuộc tính liên kết các đối tượng với nhau. OWL Ontology có một tập các ràng
buộc giữa các lớp và các quan hệ giữa các lớp đó. Các ràng buộc này cung cấp ngữ
nghĩa cho Ontology, vì có thể cho phép hệ thống tìm các thông tin bổ sung dựa vào dữ
liệu đã biết.
Ví dụ, Ontology có ràng buộc thuộc tính ―hasMother‖ chỉ được liên kết giữa hai
đối tượng khi thuộc tính ―hasParent‖ cũng liên kết giữa hai đối tượng đó. Các đối
tượng của lớp ―HastypeOBlodd‖ không liên quan đến các đối tượng của lớp
―HasTypeABBlood‖ thông qua thuộc tính ―hasParent‖. Nếu có phát biểu Harriet liên
kết tới đối tượng Sue qua quan hệ ―hasMother‖ và Harriet là một đối tượng của lớp
―HastypeOBlodd‖. Từ đó, có thể được suy luận rằng Sue không là đối tượng của lớp
―HasTypeABBlood‖.
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
20
3.2.2 Mối quan hệ logic mô tả (Description logics – DLs)
Việc xây dựng Ontology quy mô lớn thường có sai sót trong các định nghĩa về
lớp, thuộc tính. Chẳng hạn, với quan hệ ―is-a‖ thì có 18 cách sử dụng khác nhau. Do
vậy, OWL xử lý sai sót dựa vào logic mô tả. Logic mô tả (Description logics – DLs)
là một hệ thống các quy tắc, và Ontology sử dụng DLs để xây dựng lên ngữ nghĩa.
3.2.3 Các dạng OWL
W3C (World Wide Web Consortium) đưa ra định nghĩa về ba dạng khác nhau
của OWL, với các mức độ mô tả khác nhau là OWL Lite, OWL DL và OWL Full.
OWL Lite hỗ trợ cho những người dùng cần một phân loại phân cấp và các ràng
buộc đơn giản. Chẳng hạn, OWL Lite hỗ trợ các ràng buộc về số lượng thì chỉ cho
phép số lượng đó có giá trị là 0 hoặc 1. OWL Lite cung cấp các công cụ hỗ trợ nhằm
làm đơn giản các quan hệ nhiều ý nghĩa. Tuy nhiên trong thực tiễn, các đặc trưng
OWL Lite được kết hợp để hình thành nên cấu trúc có sẵn trong OWL DL.
OWL DL được thiết kế để cung cấp khả năng mô tả tối đa nhất, trong khi giữ lại
tính đầy đủ, tính quyết định và tính sẵn dùng của những thuật toán suy luận mang tính
thực tế. OWL DL bao gồm tất cả các cấu trúc ngôn ngữ OWL, nhưng chỉ có thể được
sử dụng trong các giới hạn đã biết.
OWL Full được hình thành dựa trên các ngữ nghĩa khác nhau từ OWL Lite và
OWL DL. OWL Full được thiết kế để đảm bảo tính tương thích với RDF Schema.
Trong OWL Full một lớp có thể được xử lý đồng thời như một tập các đối tượng, điều
này không được cho phép trong OWL DL. OWL Full cho phép một Ontology bổ sung
nghĩa của các từ vựng được định nghĩa từ trước. Những thiết lập dưới đây mô tả quan
hệ giữa các dạng OWL, nhưng điều ngược lại không đúng:
- Mỗi Ontology OWL Lite hợp lệ là một Ontology OWL DL hợp lệ .
- Mỗi Ontology OWL DL hợp lệ là một Ontology OWL Full hợp lệ .
- Mỗi kết luận OWL Lite hợp lệ là một kết luận OWL DL hợp lệ .
- Mỗi kết luận OWL DL hợp lệ là một kết luận OWL Full hợp lệ.
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
21
3.3 Sesame
3.3.1 Khái niệm về Sesame
Chúng tôi giới thiệu trong phần 3.2, khung mô tả tài nguyên – RDF (Resource
Description Framework) là một hệ thống các đặc điểm kỹ thuật của W3C (World Wide
Web Consortium) được thiết kế độc đáo như một mô hình siêu dữ liệu. RDF được
dùng để mô tả khái niệm hoặc mô hình hóa thông tin.
RDF Schema (viết tắt khác như RDFS, RDF (S), RDF-S, RDF/S) là một ngôn
ngữ biểu diễn tri thức mở rộng, cung cấp các thành phần cơ bản để mô tả Ontology.
RDF Schema còn được gọi là từ vựng RDF, dùng để cấu trúc các tài nguyên RDF.
Sesame là một Java framework mã nguồn mở để lưu trữ, truy vấn và suy luận đối
với RDF và RDF schema [59]. Sesame có thể được sử dụng như là một cơ sở dữ liệu
cho RDF và RDF Schema, hoặc là một thư viện Java cho các ứng dụng cần tìm kiếm
thông tin bên trong RDF.
Nếu một ứng dụng cần đọc một file RDF lớn, tìm thông tin thích hợp, và sử dụng
thông tin đó. Sesame cung cấp những công cụ cần thiết để phân tích, biên dịch, truy
vấn và lưu trữ tất cả các thông tin này, nhúng vào trong ứng dụng đó. Ngoài ra,
Sesame cung cấp một công cụ chứa đựng các tính năng hữu ích đối với RDF.
3.3.1.1 Sesame Server
Sesame có thể được sử dụng như là một máy chủ với các ứng dụng khách có thể
giao tiếp thông qua HTTP. Sesame có thể được triển khai như là một ứng dụng Java
Servlet trong Apache Tomcat – một webserver hỗ trợ Java Servlets và ngôn ngữ JSP.
Hình 3.3. Sesame server [59]
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
22
3.3.1.2 Kho dữ liệu và suy luận (Repositories and Inferencing)
Sesame framework có khái niệm về kho dữ liệu (repository). Một kho dữ liệu là
một bộ lưu trữ cho RDF hoặc là một cơ sở dữ liệu quan hệ. Hầu hết các tương tác của
Sesame đều liên quan tới kho dữ liệu, khi thêm dữ liệu RDF thì bổ sung vào một kho
dữ liệu nào đó, và thực hiện truy vấn đối với một kho dữ liệu cụ thể.
Với một tập RDF và (hoặc) RDF schema, Sesame hỗ trợ suy luận RDF Schema
(RDF Schema inferencing). Sesame có thể tìm thấy thông tin ẩn trong kho dữ liệu do
dễ dàng thêm các thông tin ẩn đó vào kho dữ liệu.
3.3.1.3 Tổng quan kiến trúc Sesame
Hình 3.4. Kiến trúc của Sesame [59]
Tầng lưu trữ và suy luận (the Storage And Inference Layer – SAIL API) là giao
diện chương trình ứng dụng bên trong Sesame (internal Sesame API - Application
program interface) cung cấp hỗ trợ suy luận (hình 3.4). Các xử lý của SAIL cung cấp
chức năng như bộ nhớ đệm hoặc xử lý truy cập đồng thời. Mỗi kho dữ liệu Sesame có
đối tượng SAIL riêng để biểu diễn cho kho dữ liệu đó.
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
23
Trong kiến trúc của Sesame (hình 3.4), phía trên SAIL, là các module chức năng
của Sesame, chẳng hạn như các công cụ truy vấn SeRQL, RQL và RDQL, module
quản trị, và module trích xuất file RDF. Truy cập vào các module chức năng có sẵn
thông qua các giao diện chương trình ứng dụng truy cập của Sesame (Sesame's Access
APIs), bao gồm hai phần riêng biệt: Repository API và Graph API. Repository API
cung cấp quyền truy cập bậc cao vào các kho dữ liệu Sesame, chẳng hạn như truy vấn,
lưu trữ các file RDF, trích xuất file RDF,… Graph API cung cấp nhiều hỗ trợ bổ sung
cho xử lý RDF, chẳng hạn như các câu lệnh thêm và loại bỏ thực thể, và tạo ra các mô
hình RDF nhỏ trực tiếp từ code. Hai API này bổ sung chức năng cho nhau, và thường
được sử dụng cùng nhau trong các ứng dụng.
Access APIs cung cấp truy cập trực tiếp vào các module chức năng của Sesame,
hoặc truy cập vào một chương trình khách (ví dụ, một ứng dụng văn phòng sử dụng
thư viện Sesame), hoặc truy cập trực tiếp vào thành phần tiếp theo là Sesame server.
Sesame server một thành phần cung cấp các truy cập dựa vào HTTP tới các API của
Sesame. Sau đó, trên phía máy khách HTTP ở xa, tìm Access APIs, sử dụng cho các
giao tiếp với Sesame.
3.3.2 Cài đặt Sesame
Sesame có thể triển khai theo một vài cách. Hai phương pháp phổ biến nhất bao
gồm việc triển khai như là một thư viện java, hoặc triển khai như là một máy chủ.
3.3.2.1 Cài đặt thƣ viện Sesame
Thư viện Sesame gồm tập các file:
- Sesame.jar
- Rio.jar: Rio (RDF I/O) là một tập các bộ phân tích và bộ ghi cho các định
dạng RDF (RDF/XML, Turtle, N-Triples).
- Openrdf-model.jar: Các lớp được sử dụng chung cho các mô hình RDF.
- Openrdf-util.jar: Các lớp dịch vụ được sử dụng chung.
Những lưu trữ (nằm trong thư mục lib/) chứa các lớp Java có sẵn để sử dụng
trong các ứng dụng riêng.
Sesame yêu cầu Java 2, phiên bản 1.4 (hoặc mới hơn) để hoạt động đúng.
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
24
Nếu cài đặt Sesame sử dụng mô hình máy khách – máy chủ qua giao thức HTTP,
thì cần thêm các thư viện: Jakarta Commons File Upload, Jakarta Commons IO. Các
thư viện này có thể được tìm thấy trong thư mục ext/ của mã nguồn Sesame.
3.3.2.2 Cài đặt máy chủ Sesame
Phần mềm đƣợc yêu cầu
Máy chủ Sesame yêu cầu các phần mềm: Sesame, và Java servlet container để
chạy các Sesame servlets.
Sesame sẽ có thể chạy trên bất kỳ Java servlet container để hỗ trợ các đặc điểm
kỹ thuật Servlet 2.2 và JSP 1.1, hoặc mới hơn. Sesame đã được thử nghiệm với
Tomcat, và trong Oracle, với OC4J.
Sesame có một số lựa chọn để lưu trữ dữ liệu RDF, Sesame có thể lưu trữ dữ liệu
trong bộ nhớ, hoặc có thể lưu trữ dữ liệu trên đĩa trong một cấu trúc file chuyên dụng,
hoặc nó có thể lưu trữ dữ liệu trong một cơ sở dữ liệu quan hệ.
Cài đặt Sesame trên Tomcat
Các bước mô tả quy trình cài đặt Sesame trên Tomcat:
- Cài đặt Tomcat theo mặc định.
- Tới thư mục các ứng dụng web ([TOMCAT_DIR]/webapps/) và tạo một
thư mục tên là sesame.
- Giải nén file sesame.war (có thể tìm được file này trong thư mục lib/) vào
trong thư mục sesame vừa được tạo mới trong thư mục các ứng dụng web
của Tomcat.
- Sao chép file [SESAME_DIR]/WEB-INF/system.conf.example thành
[SESAME_DIR]/WEB-INF/system.conf.
- Khởi động lài Tomcat server và Sesame sẽ bắt đầu hoạt động. Truy cập
vào giao diện web Sesame tại .
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
25
3.3.2.3 Quản trị máy chủ
Thay đổi cấu hình hệ thống
Cấu hình của Sesame được thiết lập trong file [SESAME_DIR]/WEB-
INF/system.conf. Để thay đổi file cấu hình sử dụng công cụ Configure Sesame! có sẵn
trong [SESAME_DIR]/WEB-INF/bin/. Để bắt đầu thay đổi cấu hình, sử dụng
configSesame.bat (trên Windows) hoặc configSesame.sh (trên UNIX) (hình 3.5).
Nạp cấu hình hệ thống
Hình 3.5. Cấu hình Sesame
Khi bắt đầu Configure Sesame!, nạp file system.conf. Nếu muốn cấu hình
Sesame server đang chạy, thì có thể nạp file trực tiếp từ server ([File] → [Load from
server...]), và nhập mật khẩu quản trị là ―admin‖.
Lƣu trữ một cấu hình hệ thống
Khi thay đổi cấu hình, cấu hình có thể lưu trữ trên đĩa ([File] → [Save file as...]),
hoặc có thể gửi trực tiếp tới Sesame server đang chạy ( [File] → [Send to server...]).
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
26
Thiết lập mật khẩu quản trị
Nếu cấu hình hệ thống không thay đổi mật khẩu quản trị từ trước, để thiết lập mật
khẩu, chọn tab Server và thay thế mật khẩu quản trị.
Thêm và loại bỏ tài khoản ngƣời sử dụng
Để thêm hoặc loại bỏ tài khoản người dùng, thực hiện theo bước sau:
- Mở tab Users.
- Click vào biểu tượng ―Add user‖.
- Để loại bỏ tài khoản người dùng thì click vào nút ―Remove user‖.
Cấu hình các kho dữ liệu
Cấu hình các kho dữ liệu có sẵn, hoặc thêm mới, hoặc loại bỏ kho dữ liệu bởi
việc thiết lập cấu hình sử dụng Configure Sesame! (hình 3.5).
Chỉnh sửa cấu hình một kho dữ liệu có sẵn
Mở tab ―Repositories‖ và lựa chọn kho dữ liệu sẽ thay đổi cấu hình, click nút
―Repository details‖ (hình 3.6).
Hình 3.6. Cấu hình kho dữ liệu có sẵn trong Sesame
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
27
Trong cửa sổ Repository (hình 3.6) có thể chỉnh sửa một số thông số của kho dữ
liệu. Phần phía trên cửa sổ hiển thị ngăn xếp SAIL, phần phía dưới hiển thị các thông
số SAIL được lựa chọn trong ngăn xếp. Trong hầu hết trường hợp, cấu hình chỉ cần
chỉnh sửa các thông số phía dưới SAIL trong ngăn xếp.
Cửa sổ thông tin chi tiết Repository cũng cho phép cấu hình thay đổi các quyền
truy cập của người sử dụng đối với một kho dữ liệu. Để thay đổi quyền truy cập, sử
dụng tab ―Access rights‖, và chỉnh sửa các quyền của người sử dụng hiện hành hoặc
thêm người dùng mới.
Thêm các kho dữ liệu mới
Để thêm một kho dữ liệu mới thì cấu hình chỉ cần sinh bản sao của kho dữ liệu có
sẵn. Sử dụng nút ―Clone‖ trên tab Repository để thực hiện việc này. Việc này tạo một
bản sao của cấu hình kho dữ liệu hiện thời được lựa chọn, và sau đó có thể chỉnh sửa.
Loại bỏ các kho dữ liệu
Để loại bỏ một kho dữ liệu, lựa chọn tab Repository, lựa chọn một kho dữ liệu và
click vào nút ―Remove‖.
3.3.3 Giao diện web của Sesame
Sesame đi kèm với một giao diện Web cho phép truy cập tới các kho dữ liệu
thông qua trình duyệt Web thông thường.
3.3.3.1 Đăng nhập
Trang đầu vào của Sesame được đặt tại Màn hiển
thị cung cấp cho lựa chọn các kho dữ liệu để thao tác trên đó. Để đăng nhập vào
Sesame, click liên kết ―log in‖ và cung cấp tên người dùng và mật khẩu.Sau khi đăng
nhập, lựa chọn kho dữ liệu muốn thực hiện các xử lý.
Sau khi lựa chọn kho dữ liệu, màn hình hiển thị giao diện chức năng của Sesame
(hình 3.7).
Chương 3. Ontology – Sesame Nguyễn Quốc Đại
28
Hình 3.7. Giao diện web của Sesame
Các công cụ trên đỉnh của màn hình hiển thị thông tin người dùng và thông tin
kho dữ liệu, và cho phép lựa chọn các thao tác khác nhau trên kho dữ liệu này. Các
thao tác này được phân loại trong các thao tác đọc (chẳng hạn như các truy vấn) và
trong các thao tác ghi (thêm và loại bỏ dữ liệu).
3.3.3.2 Thêm dữ liệu vào một kho dữ
Giao diện web cung cấp ba lựa chọn để thêm dữ liệu vào một kho dữ liệu
Sesame: Add file, Add (www) và Add (copy-paste).
Các lựa chọn Add file và Add (www) không phức tạp, lựa chọn đầu tiên cho
phép lựa chọn một tài liệu RDF trên đĩa để thêm vào kho dữ liệu Sesame, và lựa chọn
thứ hai cho phép thêm các tài liệu RDF qua một URL tới kho dữ liệu.
Tùy chọn Add (copy-paste) cho phép tải dữ liệu tới Sesame bằng cách gõ (hoặc
sao chép và dán) trong vùng văn bản. Văn bản được gõ là tài liệu RDF/XML hợp lệ.
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
29
Chƣơng 4.
Hệ thống hỏi đáp tiếng Việt dựa trên Ontology
Mục 4.1 chúng tôi giới thiệu kiến trúc tổng quan về hệ thống, các thành phần của hệ
thống. Mục 4.2, chúng tôi giới thiệu cách xử lý câu hỏi đầu vào của hệ thống [1]. Mục
4.3, chúng tôi đưa ra cách thiết kế Ontology, và chúng tôi thiết kế một Ontology thử
nghiệm cho tổ chức, cụ thể là trường Đại học Công Nghệ. Mục 4.4 và 4.5, chúng tôi
mô tả hệ thống trích rút câu trả lời bởi thành phần ánh xạ Ontology và thành phần trích
chọn câu trả lời. Các câu hỏi được đưa ra trong miền ứng dụng cụ thể dựa trên
Ontology đã thiết kế trong mục 4.3, từ đó chúng tôi đưa ra câu trả lời ngữ nghĩa tốt
nhất có thể tới người dùng.
4.1 Kiến trúc tổng quan của hệ thống
Kiến trúc của hệ thống (hình 4.1) sẽ gồm hai thành phần chính, thành phần xử lý
câu hỏi ngôn ngữ tự nhiên, và thành phần tìm kiếm câu trả lời. Trong khóa luận này,
chúng tôi sẽ tập trung vào thành phần tìm kiếm câu trả lời. Thành phần xử lý câu hỏi
ngôn ngữ tự nhiên mà chúng tôi sử dụng được đưa ra bởi Nguyễn Quốc Đạt [1].
Hình 4.1. Kiến trúc tổng quan của hệ thống hỏi đáp tiếng Việt dựa trên Ontology
Thành phần xử lý
câu hỏi
ngôn ngữ tự nhiên
Bộ biểu diễn
trung gian
Thành phần
tìm kiếm
câu trả lời
Câu hỏi
ngôn ngữ tự nhiên
Câu trả lời
ngữ nghĩa
Sesame
server
ONTOLOGY
OWL
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
30
Thành phần tìm kiếm câu trả lời được chia làm hai thành phần chính là thành
phần ánh xạ Ontology và thành phần trích chọn câu trả lời. Chúng tôi sẽ giới thiệu về
hai thành phần này đối với từng loại câu hỏi cụ thể trong mục 4.4, 4.5. Chúng tôi sử
dụng thành phần ánh xạ Ontology để tạo bộ mô tả tương ứng với Ontology, và dùng
thành phần trích chọn câu trả lời để đưa ra câu trả lời ngữ nghĩa nhất có thể tới người
dùng.
Hình 4.2. Kiến trúc của thành phần tìm kiếm câu trả lời
Hình 4.2 mô tả kiến trúc của thành phần tìm kiếm câu trả lời. Bộ biểu diễn trung
gian cho câu hỏi sau khi được tiền xử lý, là đầu vào cho ánh xạ Ontology. Ánh xạ
Ontoloyg kết hợp với dữ liệu từ Ontology lưu trên Sesame server, sử dụng thuật toán
khoảng cách xâu. Thuật toán khoảng cách xâu được sử dụng để tìm các thuật ngữ
tương ứng thích hợp trong Ontology và ánh xạ Ontology cũng có thể tương tác với
người dùng để có thuật ngữ phù hợp với Ontology. Ánh xạ Ontology hình thành bộ mô
tả tương ứng với Ontology. Và thành phần trích chọn câu trả lời sử dụng bộ mô tả này
để đưa ra câu trả lời ngữ nghĩa nhất tới người sử dụng.
Thuật toán
khoảng cách xâu
Bộ biểu diễn
trung gian
Câu trả lời
ngữ nghĩa
Ngƣời
sử dụng
Tƣơng tác
Sesame server ONTOLOGY
OWL
Thành phần tìm kiếm câu trả lời
Tiền xử lý
Pre-processing
Trích chọn
câu trả lời
Ánh xạ
Ontology
Bộ ba mô tả tƣơng
ứng với Ontology
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
31
Câu hỏi được xử lý bởi thành phần xử lý ngôn ngữ tự nhiên được Nguyễn Quốc
Đạt đưa ra [1], và hình thành nên bộ biểu diễn trung gian. Bộ biểu diễn trung gian này
mô tả thông tin cho câu hỏi đầu vào. Tùy vào câu hỏi đơn giản hay phức tạp mà bộ
biểu diễn trung gian được cho dưới dạng quan hệ bậc hai giữa hai thuật ngữ hoặc quan
hệ bậc ba giữa ba thuật ngữ. Bộ biểu diễn trung gian quan hệ bậc hai có dạng (thuật
ngữ 1, quan hệ, thuật ngữ 2). Trong đó, ―thuật ngữ 1‖ và ―thuật ngữ 2‖ là các cụm từ
trong câu mang thông tin về đối tượng cũng như khái niệm muốn hỏi, và ―quan hệ‖ là
cụm từ trong câu thể hiện quan hệ giữa hai thuật ngữ đó. Chẳng hạn, với câu hỏi:
―Nguyễn Quốc Đại học lớp nào?‖ → (lớp, học, Nguyễn Quốc Đại).
Trong trường hợp này bộ biểu diễn trung gian gọi là bộ ba biểu diễn quan hệ bậc
hai. Tương tự như vậy, bộ biểu diễn trung gian quan hệ bậc ba có dạng (thuật ngữ 1,
quan hệ, thuật ngữ 2, thuật ngữ 3), còn được gọi là bộ ba biểu diễn quan hệ bậc ba.
Tùy thuộc vào từng câu hỏi cụ thể mà bộ ba biểu diễn cho câu hỏi đó có thể thiếu
―thuật ngữ 1‖ hoặc ―quan hệ‖. Ví dụ:
―học sinh của lớp khoa học máy tính của trường đại học công nghệ là ai?‖ →
(?, học sinh, lớp khoa học máy tính, trường đại học công nghệ).
Ánh xạ Ontology dựa vào bộ ba biểu diễn câu hỏi này để hình thành nên các bộ
mô tả các khái niệm, đối tượng và quan hệ tương ứng với Ontology. Các bộ mô tả này
cũng được biểu diễn dưới dạng bộ ba quan hệ như trên, nên chúng tôi gọi là bộ ba mô
tả tương ứng với Ontology. Sau đó, thành phần trích chọn câu trả lời sử dụng các bộ ba
mô tả này để đưa ra câu trả lời ngữ nghĩa tốt nhất tới người dùng. Tổng quan chi tiết
về xử lý của thành phần ánh xạ Ontology và trích chọn câu trả lời đối với các câu hỏi
sẽ được chúng tôi đưa ra trong 4.4 và 4.5.
Mục dưới đây, chúng tôi giới thiệu về thành phần xử lý ngôn ngữ tự nhiên [1].
Thành phần xử lý ngôn ngữ tự nhiên phân loại câu hỏi đầu vào để hình thành nên các
bộ ba biểu diễn trung gian cho câu hỏi.
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
32
4.2 Xử lý câu hỏi ngôn ngữ tự nhiên
Thành phần xử lý ngôn ngữ tự nhiên [1], phân các câu hỏi vào các loại cụ thể.
Phân loại câu hỏi cung cấp những ràng buộc ngữ nghĩa cho câu trả lời mong muốn, và
cung cấp thông tin để ánh xạ Ontology dựa vào đó hình thành nên các bộ ba mô tả,
cũng như để hệ thống tạo câu trả lời ngữ nghĩa tốt nhất có thể cho câu hỏi. Các câu hỏi
được phân loại như sau:
NORMAL: câu hỏi có bộ ba biểu diễn trung gian là quan hệ bậc hai giữa hai khái
niệm và đủ cả ba thành phần. Ví dụ:
―sinh viên nào học lớp k50 khoa học máy tính?‖ → (sinh viên, học, lớp k50 khoa
học máy tính).
UNKN_TERM: câu hỏi có bộ ba biểu diễn trung gian là quan hệ bậc hai giữa hai
khái niệm, nhưng thiếu thuật ngữ đầu. Ví dụ:
―mã sinh viên của Nguyễn Quốc Đại là gì?‖ → (?, mã sinh viên, Nguyễn Quốc
Đại).
UNKN_REL: câu hỏi có bộ ba biểu diễn trung gian là quan hệ bậc hai nhưng thiếu
quan hệ giữa hai thuật ngữ. Ví dụ:
―lớp khoa học máy tính có những sinh viên nào?‖ → (lớp khoa học máy tính, ?,
sinh viên).
AFFIRM_NEG: đây là các câu hỏi dạng đúng – sai. Ví dụ:
―Nguyễn Quốc Đại có quê là Hà Nội phải không?‖ → (Nguyễn Quốc Đạt, có
quê, Hà Nội)
THREETERM: đây là loại câu hỏi phức tạp, câu hỏi có biểu diễn bộ ba quan hệ
bậc ba giữa ba thuật ngữ (thuật ngữ 1, quan hệ, thuật ngữ 2, thuật ngữ 3). Tùy vào
từng câu hỏi, bộ ba này có thể đầy đủ thành phần, hoặc thiếu quan hệ, hoặc thiếu
thuật ngữ thứ nhất.
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
33
Ví dụ:
―sinh viên nào học ở lớp khoa học máy tính của trường đại học công nghệ?‖ →
(sinh viên, học, lớp khoa học máy tính, trường đại học công nghệ)
―trường của Nguyễn Quốc Đại của Nguyễn Quốc Đạt là gì?‖ → (?, trường,
Nguyễn Quốc Đại, Nguyễn quốc Đạt).
Trên đây là các loại câu hỏi mà chúng tôi đưa ra để hỏi hệ thống này. Sau khi
chúng tôi thiết kế xong Ontology (phần 4.3), chúng tôi đưa ra tổng quan về thành phần
ánh xạ Ontology và trích chọn câu trả lời (mục 4.4, 4.5) dựa trên các loại câu hỏi nêu
trên. Từ đó, chúng tôi đánh giá hệ thống cho các câu hỏi được hỏi.
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
34
4.3 Thiết kế Ontology bằng Protege
Như đã đề cập ở chương 3, trong khoa học máy tính, Ontology lưu trữ thông tin
về miền ứng dụng cụ thể. Ontology là biểu diễn hình thức của một tập các khái niệm
về một miền cụ thể và các mối quan hệ giữa các khái niệm. Trong Ontology, lớp là tập
hợp các đối tượng, các thuộc tính là các đặc trưng mà các đối tượng (và các lớp) có thể
có, còn mối quan hệ là cách mà các lớp, các đối tượng thể hiện sự liên kết tới các lớp
hoặc các đối tượng khác.
Hai quan hệ phổ biến trong Ontology là is-a-superclass-of và is-a-subclass-of. Ví
dụ, trường is-a-superclass-of khoa, khoa is-a-subclass-of trường. Ngoài hai quan hệ
trên, Ontology được sử dụng để thể hiện các quan hệ trong miền và phân loại các quan
hệ, chẳng hạn như:
- Các quan hệ giữa các lớp.
- Các quan hệ giữa các các đối tượng.
- Các quan hệ giữa các một đối tượng và một lớp.
Do vậy, việc thiết kế Ontology là cực kỳ quan trọng để thể hiện tri thức về miền
ứng dụng cụ thể.
Hệ thống hỏi đáp tiếng Việt dựa trên Ontology của chúng tôi có thể áp dụng đối
với nhiều miền ứng dụng. Tuy nhiên, trong khóa luận này, chúng tôi thiết kế một
Ontology thử nghiệm về một tổ chức, cụ thể là trường Đại học Công Nghệ. Từ đó,
dựa vào Ontology được thiết kế, chúng tôi sử dụng Sesame server để lưu trữ và căn cứ
vào đó, chúng tôi sẽ mô tả chi tiết thành phần ánh xạ Ontology và trích chọn câu trả lời
(trong mục 4.4 và 4.5).
Chúng tôi thiết kế thử nghiệm Ontology cho trường đại học Công Nghệ bằng
công cụ Protege 3.3.1 [68]. Việc phát triển một Ontology, bao gồm các bước sau:
- Định nghĩa các lớp trong Ontology.
- Xắp xếp các lớp theo một trật tự lớp cha – lớp con.
- Định nghĩa các thuộc tính, miêu tả các giá trị cho các thuộc tính này.
- Điền các giá trị vào các thuộc tính cho các đối tượng.
Dưới đây, chúng tôi trình bày cách thiết kế Ontology thử nghiệm về trường Đại
học Công Nghệ.
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
35
4.3.1 Thiết kế các lớp trong Ontology
Tùy thuộc vào cách thiết kế đối với Ontology, có thể thiết kế các lớp một cách
riêng rẽ hoặc có thể thiết kế phân cấp. Sau khi nghiên cứu và phân tích các khái niệm
cụ thể liên quan tới trường Đại học Công Nghệ, chúng tôi đưa ra các khái niệm về các
lớp trong Ontology (hình 4.3).
- Trường: lớp tổng quan trong Ontology.
- Bộ_môn: is-a-subclass-of trường, có các đối tượng: công_nghệ_phần_mềm,
khoa_học_máy_tính, mạng_máy_tính,…
- Khoa: is-a-subclass-of trường, có các đối tượng: công_nghệ_thông_tin,
điện_tử_viễn_thông,…
- Lớp: is-a-subclass-of trường, có các đối tượng: k50_khoa_học_máy_tính,
k50_công_nghệ_phần_mềm,… và là lớp con của lớp ―trường‖.
- Môn: is-a-subclass-of trường, có các đối tượng: học_máy, xử_lý_ảnh,
xử_lý_ngôn_ngữ_tự_nhiên, đồ_họa_máy_tính,…
- Person: is-a-subclass-of trường, lớp này mô tả các đối tượng về người, person
is-a-superclass-of giảng_viên, person is-a-superclass-of sinh_viên.
- Giảng_viên: is-a-subclass-of person, có đối tượng là các giảng viên của trường.
- Sinh_viên: is-a-subclass-of person, có đối tượng là sinh viên của trường, chẳng
hạn: nguyễn_quốc_đại, nguyễn_quốc_đạt, nguyễn_bá_đạt,…
- Phòng_thí_nghiệm: is-a-subclass-of trường.
- which: bao gồm các khái niệm về chức vụ, học hàm, học vị,…
- Chức_vụ: is-a-subclass-of which, có các đối tượng như: hiệu_trưởng,
trưởng_phòng, lớp_trưởng,…
- Học_hàm: is-a-subclass-of which, có các các đối tượng: giáo_sư, phó_giáo_sư.
- Học_vị: is-a-subclass-of which, có hai đối tượng: thạc_sĩ, tiến_sĩ.
- Mã: is-a-subclass-of which, có các đối tượng là mã của sinh viên: s0520097,…
- Quê: is-a-subclass-of which, có các đối tượng: hà_nội, hải_dương,
bắc_giang,…
Hình 4.3, chúng tôi mô tả các lớp được thiết kế trong Ontology bởi Protege.
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
36
Hình 4.3. Các lớp trong Ontology về trƣờng đại học
4.3.2 Thiết kế thuộc tính trong Ontology
Trong Protege, mối quan hệ giữa các đối tượng của các lớp được mô tả thông qua
các thuộc tính. Các thuộc tính này được phân vào các loại như Functional (một đối
tượng chỉ có thể liên kết tới một đối tượng khác qua thuộc tính này), InverseFunctional
(thuộc tính này có thuộc tính đảo ngược), Transitive (thuộc tính bắc cầu), Symmetric.
Các thuộc tính được thiết kế trong Ontology bởi Protege có hai trường là
―domain‖ và ―range‖. Hai trường này dùng để mô tả các lớp trong Ontology liên quan
với nhau thông qua thuộc tính đó. Mỗi thuộc tính sẽ liên kết các đối tượng trong các
lớp được đặt trong trường ―domain‖ tới các đối tượng trong các lớp được đặt trong
trường ―range‖. Lớp con được thừa kế thuộc tính từ các lớp cha của nó.
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
37
Trong quán trình phân tích và nghiên cứu các mối quan hệ liên, chúng tôi thiết kế
mô tả một số quan hệ thông qua các thuộc tính (hình 4.4).
Hình 4.4. Các thuộc tính trong Ontology về trƣờng đại học
Sau khi đã thiết kế xong các lớp, các thuộc tính, cùng với các đối tượng trong
mỗi lớp. Chúng tôi điền giá trị tương ứng cho liên kết đối với mỗi đối tượng dựa theo
thuộc tính. Chẳng hạn:
nguyễn_quốc_đại học k50_khoa_học_máy_tính
nguyễn_quốc_đại có_quê hà_nội,…
Thiết kế Ontology cần một quá trình lâu dài, nghiên cứu các khái niệm, phân tích
các mối quan hệ cần chính xác. Sau đó, chúng tôi áp dụng Ontology thử nghiệm này
cho hệ thống, rồi đánh giá hoạt động của hệ thống dựa vào các câu hỏi được đưa ra.
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
38
4.4 Ánh xạ Ontology
Ánh xạ Ontology là nền tảng trong hệ thống hỏi đáp tiếng Việt của chúng tôi.
Câu hỏi đầu vào sẽ được phân tích dưới dạng bộ ba biểu diễn trung gian bởi thành
phần xử lý câu hỏi [1], bộ ba biểu diễn trung gian này là đầu vào cho ánh xạ Ontology.
Ánh xạ Ontology hình thành nên các bộ ba mô tả các khái niệm, đối tượng cùng với
mối quan hệ tương thích với Ontology. Thành phần trích chọn câu trả lời sử dụng các
bộ ba mô tả này để đưa ra câu trả lời ngữ nghĩa tốt nhất có thể tới người sử dụng.
Để tạo bộ ba mô tả các khái niệm, quan hệ và đối tượng tương ứng với Ontology,
trước tiên, từ bộ ba biểu diễn trung gian thu được do [1], ánh xạ Ontology sử dụng tập
từ đồng nghĩa đối với từng thành phần của bộ ba. Sau đó, các thuật ngữ đó được so
khớp với các khái niệm và đối tượng bên trong Ontology. Nếu so khớp không thành
công, ánh xạ Ontology sử dụng thuật toán khoảng cách xâu để tìm các khái niệm và
đối tượng tương tự trong Ontology. Nếu thuật toán khoảng cách xâu trả lại nhiều hơn
một kết quả, khi ấy xảy ra nhập nhằng về nghĩa của các thuật ngữ, thì hệ thống đưa ra
tương tác với người dùng, yêu cầu lựa chọn khái niệm hoặc đối tượng thích hợp.
Sau khi đã tìm được các thuật ngữ chỉ khái niệm và đối tượng tương ứng trong
Ontology, dựa vào chúng, ánh xạ Ontology tìm kiếm các mối quan hệ để so khớp với
quan hệ đầu vào. Nếu so khớp không được, ánh xạ Ontology sử dụng thuật toán
khoảng cách xâu hoặc tương tác với người sử dụng. Khi ánh xạ Ontology tìm được
quan hệ tương ứng trong Ontology, hệ thống hình thành các bộ ba mô tả các khái
niệm, đối tượng cùng mối quan hệ phù hợp với Ontology. Các bộ ba thu đầu vào cho
thành phần trích chọn câu trả lời để đưa ra câu trả lời ngữ nghĩa nhất có thể.
Thành phần ánh xạ Ontology xử lý tùy theo từng trường hợp cụ thể, đối với từng
loại câu hỏi khác nhau có cách xử lý khác nhau. Các loại câu hỏi được phân làm hai
dạng, câu hỏi đơn giản và câu hỏi phức tạp. Các câu hỏi dạng đơn giản được phân loại:
- ―sinh viên nào học ở lớp k50 khoa học máy tính ―→ ―NORMAL‖: (sinh viên,
học, lớp k50 khoa học máy tính) → ánh xạ Ontology → (sinh_viên, học,
k50_khoa_học_máy_tính).
- ―mã của Nguyễn Quốc Đại là gì‖ → ―UNKN_TERM‖: (?, mã, Nguyễn Quốc
Đại) → ánh xạ Ontology → (mã, có_mã, nguyễn_quốc_đại).
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
39
- ―Nguyễn Quốc Đại có địa chỉ ở đâu‖ → ―UNKN_TERM‖: (?, địa chỉ, Nguyễn
Quốc Đại) → ánh xạ Ontology → (?, có_địa_chỉ, nguyễn_quốc_đại).
- ―lớp k50 khoa học máy tính có những sinh viên nào‖ → ―UNKN_REL‖: (sinh
viên, ?, lớp k50 khoa học máy tính) → ánh xạ Ontology → (sinh_viên, học |
có_sinh_viên, k50_khoa_học_máy tính).
- ―Nguyễn Quốc Đại có quê ở Hà nội phải không‖ → ―AFFIRM_NEG‖:
(Nguyễn Quốc Đại, có quê, Hà Nội) → ánh xạ Ontology → (nguyễn_quốc_đại,
có_quê, hà_nội).
Đối với các câu hỏi phức tạp, khi chúng được phân tích bởi [1], thì thu được bộ
ba biểu diễn trung gian quan hệ bậc ba, và được phân loại ―THREETERM‖. Tùy vào
từng câu hỏi, bộ ba này có thể thiếu thuật ngữ đầu, hoặc thiếu quan hệ, hoặc đầy đủ
bốn thành phần. Sau khi ánh xạ Ontology kết thúc, hệ thống thu được hai bộ ba mô tả
tương ứng với Ontology. Chẳng hạn:
―sinh viên nào học ở lớp khoa học máy tính của trường đại học công nghệ?‖ →
(sinh viên, học, lớp khoa học máy tính, trường đại học công nghệ) → ánh xạ Ontology
→ (sinh_viên, học, k50_khoa_học_máy_tính) và (sinh_viên, học,
đại_học_công_nghệ).
Dưới đây, chúng tôi mô tả cách xử lý của thành phần ánh xạ Ontology đối với
từng loại câu hỏi cụ thể. Trước hết, chúng tôi giới thiệu cách xử lý đối với câu hỏi đơn
giản, để từ đó, chúng tôi mô tả hoạt động của ánh xạ Ontology đối với câu hỏi phức
tạp.
4.4.1 Ánh xạ Ontology cho câu hỏi đơn giản
Các câu hỏi sau khi được phân tích bởi thành phần xử lý câu hỏi ngôn ngữ tự
nhiên [1], được xếp vào các loại tương ứng. Ở đây, trong mục này, chúng tôi mô tả đối
với một số loại câu hỏi như ―NORMAL‖, ―UNKN_TERM‖, ―UNKN_REL‖,
―AFFIRM_NEG‖. Các câu hỏi được biểu diễn bởi một bộ ba quan hệ bậc hai giữa hai
thuật ngữ, và bộ ba biểu diễn này là đầu vào cho ánh xạ Ontology. Nhưng tùy vào từng
loại câu hỏi mà ánh xạ Ontology sẽ có cách tìm kiếm thuật ngữ thích hợp trong
Ontology. Ánh xạ Ontology xử lý đối với các loại câu hỏi đơn giản này được mô tả
như hình 4.5.
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
40
Hình 4.5. Tổng quan về ánh xạ Ontology đối với câu hỏi đơn giản
Trong mô hình tổng quan này (hình 4.5), cơ sở tri thức Ontology được lưu trữ
trong Sesame Server. Ánh xạ Ontology lấy tất cả các thông tin về các khái niệm (mô tả
các lớp), các đối tượng, và các thuộc tính mô tả quan hệ trong Ontology. Các thông tin
này được sử dụng để so khớp với bộ ba đầu vào. Nếu quá trình so khớp không thành
công thì ánh xạ Ontology sử dụng thuật toán khoảng cách xâu để tìm các khái niệm
(hoặc các đối tượng, các quan hệ trong Ontology) tương tự với các thành phần trong
bộ ba đầu vào. Nếu thuật toán khoảng cách xâu trả lại nhiều hơn một giá trị, tức là
nhập nhằng xảy ra, thì ánh xạ Ontology yêu cầu tương tác với người dùng để lựa chọn
thông tin thích hợp tương ứng với Ontology.
Với một đầu vào là bộ ba biểu diễn trung gian (quan hệ bậc hai giữa hai thuật
ngữ) (hình 4.5), các thành phần của bộ ba được tiền xử lý và sử dụng tập từ đồng nghĩa
để so khớp với các khái niệm (các lớp), các đối tượng và các quan hệ trong Ontology.
Ánh xạ Ontology trước tiên sẽ so khớp các thuật ngữ để tìm kiếm thuật ngữ tương ứng
trong Ontology. Các thuật ngữ có thể mang nội dung chỉ về một khái niệm hoặc một
đối tượng cụ thể nào đó.
So khớp thông tin trong Ontology
Tiền xử lý & tập từ đồng nghĩa
Tiền xử lý & tập từ đồng nghĩa
So khớp thông tin trong Ontology
Thuật_ngữ_1
Thuật_ngữ_2
Tập quan hệ
So khớp thông tin trong Ontology
Tiền xử lý & tập từ đồng nghĩa Quan_hệ
Bộ
ba
biểu
diễn
trung
gian
Thuật ngữ 1
Quan hệ
Thuật ngữ 2
Thuật toán khoảng cách xâu
Tƣơng tác ngƣời dùng
Thông tin trong Ontology
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
41
Nếu việc so khớp không thành công, ánh xạ Ontology sử dụng thuật toán khoảng
cách xâu để tìm các khái niệm (hoặc các đối tượng) tương tự trong Ontology. Nếu giá
trị so sánh độ tương tự giữa hai khái niệm (hoặc giữa hai đối tượng) lớn hơn ngưỡng
cho trước thì thuật toán trả lại khái niệm (hoặc đối tượng) tương ứng . Hoặc nếu thuật
toán khoảng cách xâu trả lại nhiều hơn một kết quả, khi đó, nhập nhằng về nghĩa của
các thuật ngữ vẫn xảy ra. Ví dụ, khi thuật toán khoảng cách xâu so sánh ―lớp khoa học
máy tính‖ với các đối tượng trong Ontology. Khi ấy, sự nhập nhằng xảy ra khi kết quả
của thuật toán trả lại đối tượng ―k50_khoa_học_máy_tính‖ là thực thể của lớp ―lớp‖ và
đối tượng ―khoa_học_máy_tính‖ là đối tượng của lớp ―bộ_môn‖ trong Ontology. Lúc
này, ánh xạ Ontology đưa ra yêu cầu tương tác với người dùng để lựa chọn thuật ngữ
tương ứng. Sau khi người dùng phản hồi lại , hệ thống tìm được thuật ngữ cần thiết phù
hợp với Ontology. Các thuật ngữ này chính là các thuật ngữ chỉ khái niệm biểu diễn
một lớp trong Ontology, hoặc là các thuật ngữ chỉ đối tượng thuộc về một lớp nào đó
trong Ontology.
Dựa vào các thuật ngữ vừa tìm được, ánh xạ Ontology tìm tất cả các quan hệ giữa
hai thuật ngữ này. Sau đó, ánh xạ Ontology nếu so khớp quan hệ không thành công thì
sử dụng thuật toán khoảng cách xâu để tìm quan hệ tương ứng. Nếu nhập nhằng về
nghĩa xảy ra do thuật toán khoảng cách xâu trả lại nhiều hơn một kết quả, thì hệ thống
đưa ra yêu cầu tương tác với người sử dụng. Sau bước này, ánh xạ Ontology tìm được
quan hệ thích hợp giữa hai thuật ngữ trong Ontology. Nhưng tùy thuộc vào từng loại
câu hỏi, chẳng hạn như câu hỏi ―UNKN_TERM‖ (thiếu thuật ngữ đầu tiên), có trường
hợp tìm được mối quan hệ thông qua thuật toán khoảng cách xâu, nhưng cũng có
trường hợp chính cụm từ miêu tả quan hệ trong câu lại là thuật ngữ chỉ khái niệm mô
tả một lớp nào đó trong Ontology.
Chúng tôi sẽ đưa ra ví dụ cụ thể cho từng trường hợp để xem xét cách giải quyết
của thành phần ánh xạ Ontology. Như vậy, kết thúc quá trình ánh xạ Ontology, hình
thành bộ ba mô tả các khái niệm, đối tượng và quan hệ phù hợp với Ontology. Bộ ba
mô tả này là đầu vào cho thành phần trích chọn câu trả lời đưa ra câu trả lời ngữ nghĩa
tốt nhất có thể tới người dùng. Dưới đây, để miêu tả cách xử lý của hệ thống đối với
thành phần ánh xạ Ontology, chúng tôi đưa ra một số ví dụ về từng loại câu hỏi và
cách xử lý đối với chúng.
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
42
4.4.1.1 Ánh xạ Ontology đối với loại câu hỏi NORMAL
Đầu tiên, với loại câu hỏi ―NORMAL‖ miêu tả bởi một bộ ba được tạo thành do
một mối quan hệ nhị phân rõ ràng giữa hai thuật ngữ xác định. Ví dụ với câu hỏi:
―thầy giáo nào giảng dạy lớp k50 khoa học máy tính?‖
Bộ biểu diễn trung gian là bộ ba đầu vào cho ánh xạ Ontology được cho dưới
dạng (thầy giáo, giảng dạy, lớp k50 khoa học máy tính). Trước tiên, ánh xạ Ontology
tiền xử lý và sử dụng tập từ đồng nghĩa đối với các thành phần của bộ ba. Sau đó, ánh
xạ Ontology nhận biết được thuật ngữ ―thầy giáo‖ chính là thuật ngữ chỉ khái niệm
―giảng_viên‖ mô tả lớp ―giảng_viên‖ trong Ontology. Ánh xạ Ontology sử dụng thuật
toán khoảng cách xâu đối với ―lớp k50 khoa học máy tính‖ thì nhận được thuật ngữ
chỉ đối tượng ―k50_khoa_học_máy_tính‖ là thực thể trong lớp ―lớp‖ trong Ontology.
Tiếp đến, thành phần ánh xạ Ontology sẽ tìm các quan hệ liên kết giữa lớp
―giảng_viên‖ và lớp ―lớp‖ trong Ontology. Sau đó, từ tập quan hệ tìm được, so khớp
với thuật ngữ ―giảng dạy‖, ánh xạ Ontology tìm được thuật ngữ chỉ quan hệ
―giảng_dạy‖ trong Ontology. Ánh xạ Ontology hình thành bộ ba mô tả là (giảng_viên,
giảng_dạy, k50_khoa_học_máy_tính) tương ứng với Ontology, từ đó thành phần trích
chọn câu trả lời đưa ra câu trả lời ngữ nghĩa tốt nhất có thể tới người dùng (hình 4.6).
Hình 4.6. Ví dụ hỏi đáp đối với loại câu hỏi “NORMAL”
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
43
4.4.1.2 Ánh xạ Ontology đối với loại câu hỏi UNKN_REL
Tiếp đến, để hiểu rõ hoạt động của thành phần ánh xạ Ontology, chúng tôi xem
xét loại câu hỏi thiếu mối quan hệ trong câu và được phân loại ―UNKN_REL‖ bởi
thành phần xử lý câu hỏi ngôn ngữ tự nhiên [1]. Xét câu hỏi:
―trường đại học công nghệ có học sinh nào?‖
Câu hỏi trích ra bộ ba dưới dạng (học sinh, ?, trường đại học công nghệ). Thuật
ngữ ―học sinh‖ sau khi được tiền xử lý, và sử dụng tập từ vựng đồng nghĩa thì được
nhận biết là ―sinh_viên‖ biểu diễn cho lớp ―sinh_viên‖ trong Ontology. Thuật ngữ
―trường đại học công nghệ‖ được nhận biết là đối tượng ―đại_học_công_nghệ‖ của lớp
―trường‖ trong Ontology bởi việc dùng thuật toán khoảng cách xâu.
Hình 4.7. Ánh xạ Ontology tƣơng tác với ngƣời dùng đối với loại câu hỏi “UNKN_REL”
Do không có mối quan hệ được nhận biết trong trường hợp này, vì vậy hệ thống
xét tất cả các mối quan hệ giữa hai lớp trong Ontology là ―sinh_viên‖ và ―trường‖, và
đưa ra lựa chọn tới người dùng yêu cầu về quan hệ mong muốn giữa ―sinh_viên‖ và
―đại_học_công_nghệ‖ (hình 4.7). Người dùng đưa lại phản hồi tới hệ thống mối quan
hệ lựa chọn là ―học‖, hoặc ―có_sinh_viên‖, hoặc lựa chọn cả hai quan hệ. Khi đó, ánh
xạ Ontology hình thành bộ ba (sinh_viên, học, đại_học_công_nghệ) hoặc (sinh_viên,
có_sinh_viên, đại_học_công_nghệ). Câu trả lời được đưa ra sau khi hệ thống gọi thành
phần trích chọn câu trả lời.
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
44
4.4.1.3 Ánh xạ Ontology đối với loại câu hỏi UNKN_TERM
Với những câu hỏi sau khi phân tích bởi [1] thì thiếu thuật ngữ đầu trong bộ ba,
được phân loại ―UNKN_TERM‖. Ở đây, chúng tôi đưa ra các ví dụ để miêu tả rõ quá
trình xử lý của thành phần ánh xạ Ontology đối với các câu hỏi này:
- ―mã sinh viên của Nguyễn Quốc Đại là gì?‖
- ―Nguyễn Quốc Đại có mã sinh viên là gì?‖
- ―sinh viên có địa chỉ ở đâu?‖
- ―địa chỉ của sinh viên là gì?‖
Đối với hai câu hỏi đầu tiên, thành phần xử lý câu hỏi ngôn ngữ tự nhiên phân
tích [1] và đưa ra bộ ba (?, mã sinh viên, Nguyễn Quốc Đại). Sau khi bộ ba được tiền
xử lý, ánh xạ Ontology nhận biết ―mã sinh viên‖ là thuật ngữ ―mã‖ dựa vào tập từ
đồng nghĩa. Dựa vào thuật toán khoảng cách xâu, hệ thống nhận biết được
―nguyễn_quốc_đại‖ là thực thể trong lớp ―sinh_viên‖ của Ontology. Lúc này, ánh xạ
Ontology sử dụng thuật toán khoảng cách xâu giữa ―mã‖ và các quan hệ của lớp
―sinh_viên‖ trong Ontology, và ―mã‖ được nhận biết không tương tự với bất kỳ mối
quan hệ nào. Mà ánh xạ Ontology lại nhận ra đó là khái niệm ―mã‖ biểu diễn lớp ―mã‖
trong Ontology. Sau đó, hệ thống tìm các mối quan hệ giữa lớp ―mã‖ và lớp
―sinh_viên‖ trong Ontology, và có mối quan hệ ―có_mã‖ giữa hai lớp này. Ánh xạ
Ontology hình thành bộ ba mô tả (mã, có_mã, nguyễn_quốc_đại). Câu trả lời cho câu
hỏi được thành phần trích chọn câu trả lời đưa ra tới người dùng (hình 4.8)
Hình 4.8. Ví dụ hỏi đáp đối với loại câu hỏi “UNKN_TERM”
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
45
Hình 4.9. Ví dụ hỏi đáp đối với loại câu hỏi “UNKN_TERM”
Đối với hai câu hỏi sau, bộ ba đầu vào cho ánh xạ Ontology là (?, địa chỉ, sinh
viên). Ánh xạ Ontology nhận biết được thuật ngữ chỉ khái niệm ―sinh_viên‖ biểu diễn
cho lớp ―sinh_viên‖ trong Ontology. Lúc này, khi sử dụng thuật toán khoảng cách xâu
để so sánh ―địa chỉ‖ với các mối quan hệ của lớp ―sinh_viên‖ trong Ontology, ánh xạ
Ontology thu được thuật ngữ chỉ quan hệ ―có_địa_chỉ‖. Ánh xạ Ontology hình thành
bộ ba mô tả (?, có_địa_chỉ, sinh_viên) tương ứng với Ontology. Thành phần trích chọn
câu trả lời đưa ra câu trả lời tới người dùng (hình 4.9).
Các câu hỏi được xử lý bởi thành phần xử lý câu hỏi [1], do vậy, chúng tôi hoàn
toàn xem xét được câu hỏi muốn hỏi về vấn đề gì, hỏi về người, về vị trí… Dựa trên
đó, chúng tôi có thêm cách xử lý phù hợp với từng loại câu hỏi. Xem xét câu hỏi:
―học sinh của trường đại học công nghệ là ai?‖
Thành phần xử lý câu hỏi ngôn ngữ tự nhiên [1] cho biết loại câu hỏi là
―UNKN_TERM‖ và loại từ để hỏi là ―QU Who‖, thì hệ thống nhận biết được câu hỏi
sẽ đề cập tới person nào đó (có thể là ―sinh_viên‖ | ―giảng_viên‖ trong thiết kế
Ontology). Do đó đầu vào cho ánh xạ Ontology là (person, học sinh, trường đại học
công nghệ). Bộ ba này được tiền xử lý và sử dụng tập từ đồng nghĩa. Sau khi so khớp
và sử dụng thuật toán khoảng cách xâu, thành phần ánh xạ Ontology xử lý xong, thu
được đầu ra là bộ ba mô tả (person, có_sinh_viên, đại_học_công_nghệ) tương ứng với
Ontology.
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
46
4.4.1.4 Ánh xạ Ontology đối với loại câu hỏi AFFIRM_NEG
Hệ thống mà chúng tôi giới thiệu còn xử lý với câu hỏi dạng đúng – sai. Chẳng
hạn, với câu hỏi:
―Nguyễn Quốc Đại học trường đại học công nghệ phải không?‖
Câu hỏi này được thành phần xử lý câu hỏi ngôn ngữ tự nhiên [1] phân loại vào
loại câu hỏi ―AFFIRM_NEG‖ (loại câu hỏi đúng – sai) và bộ ba đầu vào cho ánh xạ
Ontology là (Nguyễn Quốc Đại, học, trường đại học công nghệ). Tương tự trên, ánh xạ
Ontology sử dụng thuật toán khoảng cách xâu để tìm thuật ngữ thích hợp, thì nhận
được thuật ngữ chỉ đối tượng ―nguyễn_quốc_đại‖ là thực thể của lớp ―sinh_viên‖ và
thuật ngữ chỉ đối tượng ―đại_học_công_nghệ‖ là thực thể của lớp ―trường‖ trong
Ontology. Tìm các mối quan hệ giữa hai lớp ―sinh_viên‖ và ―trường‖ trong Ontology.
Sau đó, hệ thống so khớp với quan hệ của bộ ba đầu vào, nhận biết thuật ngữ chỉ quan
hệ ―học‖ trong Ontology. Ánh xạ Ontology hình thành bộ ba mô tả (nguyễn_quốc_đại,
học, đại_học_công_nghệ), từ đó thành phần trích chọn câu trả lời đưa ra câu trả lời
tương ứng tới người dùng (hình 4.10).
Hình 4.10. Ví dụ hỏi đáp đối với loại câu hỏi AFFIRM_NEG
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
47
4.4.2 Ánh xạ Ontology đối với loại câu hỏi “THREETERM”
Các câu hỏi phức tạp sau khi được phân tích bởi thành phần xử lý câu hỏi [1]
được phân loại ―THREETERM‖, và thu được bộ biểu diễn trung gian dưới dạng quan
hệ bậc ba giữa các thuật ngữ. Và ánh xạ Ontology phải xử lý để tìm các quan hệ giữa
các thuật ngữ với nhau. Thành phần ánh xạ Ontology kết thúc sẽ đưa ra hai bộ ba mô
tả các khái niệm, đối tượng và quan hệ tương ứng trong Ontolgy. Và hai bộ ba này
được sử dụng là đầu vào cho thành phần trích chọn câu trả lời. Quá trình xử lý của ánh
xạ Ontology được mô tả bởi hình 4.11.
Hình 4.11. Tổng quan ánh xạ Ontology với loại câu hỏi “THREETERM”
Tập quan hệ
Thuật toán khoảng cách xâu
Tƣơng tác ngƣời dùng
Thông tin trong Ontology
Quan_hệ_2
Bộ
ba
biểu
diễn
trung
gian
Thuật ngữ 1
Quan hệ
Thuật ngữ 2
Thuật ngữ 3
So khớp thông tin trong Ontology
Tiền xử lý & tập từ đồng nghĩa
Tiền xử lý & tập từ đồng nghĩa
So khớp thông tin trong Ontology
Tiền xử lý & tập từ đồng nghĩa
So khớp thông tin trong Ontology
So khớp thông tin trong Ontology
Tiền xử lý & tập từ đồng nghĩa
Quan_hệ_1
Thuật_ngữ_1
Thuật_ngữ_2
Thuật_ngữ_3
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
48
Tương tự như ánh xạ Ontology đối với câu hỏi đơn giản, hệ thống lưu trữ cơ sở
tri thức Ontology trong Sesame Server. Từ hình 4.11, ánh xạ Ontology lấy tất cả các
thông tin về các khái niệm, các đối tượng, và quan hệ trong Ontology. Các thông tin
này được sử dụng để so khớp với bộ ba đầu vào. Nếu quá trình so khớp không thành
công thì ánh xạ Ontology sử dụng thuật toán khoảng cách xâu để tìm các khái niệm
(hoặc các đối tượng, các quan hệ trong Ontology) tương tự với các thành phần trong
bộ ba đầu vào. Nếu thuật toán khoảng cách xâu trả về nhiều hơn một giá trị, thì nhập
nhằng xảy ra, và ánh xạ Ontology yêu cầu tương tác người dùng để lựa chọn thông tin
tương ứng với Ontology.
Các câu hỏi trong các trường hợp này được xử lý bởi [1], được phân loại
―THREETERM‖, và được biểu diễn bởi bộ ba quan hệ bậc ba giữa các khái niệm. Các
thuật ngữ trong bộ ba mang thông tin về các khái niệm hoặc về các đối tượng cụ thể
nào đó trong Ontology, còn quan hệ thì mô tả liên quan giữa các thuật ngữ này. Tùy
thuộc vào từng trường hợp cụ thể, có trường hợp bộ ba quan hệ bậc ba thiếu thuật ngữ
đầu, hoặc cũng có trường hợp thiếu mất quan hệ giữa các thuật ngữ.
Đầu tiên, với các thuật ngữ, dựa vào tiền xử lý và tập từ đồng nghĩa, ánh xạ
Ontology sẽ tìm các khái niệm và đối tượng tương ứng trong Ontology. Nếu so khớp
không được, thành phần ánh xạ Ontology sử dụng thuật toán khoảng cách xâu tìm các
khái niệm và đối tượng thích hợp nhất trong Ontology. Nếu nhập nhằng xảy ra mà ánh
xạ Ontology không xử lý được, thì đưa ra yêu cầu tương tác với người dùng để lựa
chọn thông tin tương ứng với Ontology.
Sau khi nhận được các thuật ngữ tương thích, thành phần ánh xạ Ontology sử
dụng hai thuật ngữ đầu tìm các mối quan hệ giữa chúng để so khớp với quan hệ đầu
vào. Nếu không, ánh xạ Ontology sử dụng thuật toán khoảng cách xâu tìm quan hệ
tương ứng trong Ontology, nếu thuật toán trả lại nhiều hơn một kết quả thì đưa ra lựa
chọn tới người dùng. Khi đó, ánh xạ Ontology sẽ hình thành bộ ba mô tả thứ nhất từ
các thuật ngữ và quan hệ tương ứng vừa tìm được giữa chúng.
Tiếp đến, ánh xạ Ontology dựa vào thuật ngữ đầu (hoặc thuật ngữ thứ hai tùy
thuộc trường hợp cụ thể) và thuật ngữ cuối để tìm quan hệ giữa chúng trong Ontology.
Sau đó, ánh xạ Ontology yêu cầu người dùng lựa chọn quan hệ thích hợp. Sau khi mối
quan hệ mong muốn được người sử dụng phản hồi, thành phần ánh xạ Ontology hình
thành bộ ba mô tả thứ hai.
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
49
Thành phần ánh xạ Ontology kết thúc đưa ra hai bộ ba mô tả các khái niệm, các
đối tượng và các quan hệ tương ứng trong Ontology. Và để mô tả hoạt động của hệ
thống đối với các câu hỏi này, chúng tôi đưa ra các ví dụ để thấy rõ quá trình mà thành
phần ánh xạ Ontology xử lý ra sao tùy vào từng trường hợp cụ thể.
Trước tiên, với câu hỏi được thành phần xử lý câu hỏi ngôn ngữ tự nhiên xử lý
[1] và cho đầu ra là một bộ biểu diễn trung gian đủ ba thuật ngữ và quan hệ, và ánh xạ
Ontology lấy chúng làm đầu vào để tìm thông tin tương ứng với Ontology. Câu hỏi:
―học sinh nào học ở lớp khoa học máy tính của trường đại học công nghệ?‖
Bộ ba quan hệ bậc ba hình thành bởi [1] là (học sinh, học, lớp khoa học máy tính,
trường đại học công nghệ). Bộ ba sau khi được tiền xử lý và sử dụng tập từ đồng
nghĩa, được so khớp với các khái niệm và đối tượng trong Ontology. Ánh xạ Ontology
nhận biết được thuật ngữ chỉ khái niệm ―sinh_viên‖ mô tả lớp ―sinh_viên‖ trong
Ontology. Khi sử dụng thuật toán khoảng cách xâu đối với ―lớp khoa học máy tính‖ để
tìm đối tượng tương ứng trong Ontology thì có nhập nhằng xảy ra do thuật toán trả lại
hai giá trị. Lúc này, ánh xạ Ontology đưa tới người dùng hai lựa chọn là thuật ngữ chỉ
đối tượng ―k50_khoa_học_máy_tính‖ là thực thể của lớp ―lớp‖ hoặc thuật ngữ
―khoa_học_máy_tính‖ là thực thể của lớp ―bộ_môn‖ trong Ontology.
Sau khi người dùng lựa chọn thuật ngữ mong muốn, chẳng hạn, lựa chọn
―k50_khoa_học_máy_tính‖. Sau đó, để tìm quan hệ cho ―sinh_viên‖ và
―k50_khoa_học_máy_tính‖, thành phần ánh xạ Ontology dựa vào lớp ―sinh_viên‖ và
lớp ―lớp‖ trong Ontology, tìm tất cả các mối quan hệ giữa hai lớp này rồi so khớp với
quan hệ ―học‖ được thuật ngữ chỉ quan hệ ―học‖ trong Ontology. Ánh xạ Ontology
hình thành được bộ ba mô tả đầu tiên (sinh_viên, học, k50_khoa_học_máy_tính).
Tiếp đến, hệ thống sẽ tìm quan hệ cho ―sinh_viên‖ và ―đại_học_công_nghệ‖ dựa
vào lớp ―sinh_viên‖ và lớp ―trường‖, ánh xạ Ontology sẽ tìm các mối quan hệ giữa hai
lớp này trong Ontology. Sau đó, hệ thống đưa lại cho người dùng lựa chọn quan hệ
mong muốn giữa ―sinh_viên‖ và ―đại_học_công_nghệ‖. Chẳng hạn là mối quan hệ
được chọn là ―học‖ (có thể lựa chọn nhiều quan hệ cùng lúc theo ý người dùng). Từ
đó, ánh xạ Ontology đưa ra bộ ba mô tả thứ hai là (sinh_viên, học,
đại_học_công_nghệ). Sau khi ánh xạ Ontology kết thúc, hệ thống gọi thành phần trích
chọn câu trả lời, dựa vào hai bộ ba mô tả này, đưa ra câu trả lời tới người sử dụng.
Chương 4. Hệ thống hỏi đáp tiếng Việt dựa trên Ontology Nguyễn Quốc Đại
50
Đối với câu hỏi trên, bộ ba mô tả thứ hai hình thành do thuật ngữ đầu và thuật
ngữ cuối. Nhưng trong trường hợp dưới đây, ánh xạ Ontology lại dựa vào thuật ngữ
thứ hai và thuật ngữ cuối để hình thành bộ ba mô tả thứ hai. Với câu hỏi:
―sinh viên của lớp của trường đại học công nghệ là ai?‖
Bộ ba biểu diễn cho câu hỏi (?, sinh viên, lớp, trường đại học công nghệ) là đầu
vào cho ánh xạ Ontology. Ánh xạ Ontology nhận biết được thuật ngữ chỉ khái niệm
―lớp‖ biểu diễn cho lớp ―lớp‖, thuật ngữ chỉ đối tượng ―đại_học_công_nghệ‖ trong
Ontology. Dựa vào các quan hệ của lớp ―lớp‖, ánh xạ tìm được quan hệ
―có_sinh_viên‖ bởi giải thuật khoảng cách xâu. Bộ ba mô tả thứ nhất tương ứng với
Ontology được hình thành trong câu hỏi này là (?, có_sinh_viên, lớp).
Đồng thời, ánh xạ Ontology tương tác với người dùng yêu cầu lựa chọn quan hệ
giữa lớp ―lớp‖ và đối tượng ―đại_học_công_nghệ‖. Sau khi người dùng phản hồi lại
quan hệ thích hợp (có thể lựa chọn nhiều quan hệ cùng lúc), ánh xạ Ontology hình
thành bộ ba mô tả thứ hai, có thể là (lớp, thuộc, đại_học_công_nghệ), hoặc (lớp,
có_lớp, đại_học_công_nghệ), hoặc (lớp, có_lớp | thuộc, đại_học_công_nghệ).
Thêm nữa, đối với câu hỏi dạng này sau khi được phân tích bởi [1], nếu hệ thống
nhận biết được loại từ để hỏi là ―QU Who‖ thì câu hỏi sẽ đề cập tới person nào đó (có
thể là ―sinh viên‖ hoặc ―giảng viên‖ trong thiết kế Ontology). Do vậy, đầu vào cho ánh
xạ Ontology là (person, sinh viên, lớp khoa học máy tính, trường đại học công nghệ).
Từ đó, thành phần ánh xạ Ontology hình thành nên hai bộ ba mô tả tương ứng với
Ontology, và thành phần trích chọn câu trả lời sử dụng hai bộ ba mô tả này để đưa ra
câu trả lời ngữ nghĩa nhất có thể tới người dùng.
Chương 4. Hệ thốn
Các file đính kèm theo tài liệu này:
- LUẬN VĂN- PHƯƠNG PHÁP XÂY DỰNG HỆ THỐNG HỎI ĐÁP TIẾNG VIỆT DỰA TRÊN ONTOLOGY.pdf