Kiến trúc chung (trong hình 4-1) của một hệ thống hỏi đáp gồm 2 thành phần đó là thành phần phân tích câu hỏi ngôn ngữ tự nhiên (Natural Language Question Analysis) và thành phần tìm kiếm câu trả lời (Answer Retrieval). Vai trò của thành
phần phân tích là sinh ra một biểu diễn trung gian của câu hỏi để sử dụng trong phần
còn lại của hệ thống nhằm mục đích xác định câu trả lời. Một hệ thống trả lời câu hỏi lý tưởng là hệ thống đưa ra được một câu trả lời ngữ nghĩa, và thành phần phân tích câu hỏi chính là thành phần quan trọng nhất góp phần đưa câu trả lời mong muốn.
Hình 4-1: Kiến trúc chung của một hệ thống trả lời ngôn ngữ tự nhiên
Thành phần phân tích câu hỏi
Natural Language Question Analysis Bộ biểu diễn trung gian Thành phần tìm kiếm câu trả lời Answer Retrieval
Câu hỏi ngôn ngữ tự nhiên
Câu trả lời ngữ nghĩa
39
Thành phần xử lý câu hỏi ngôn ngữ tự nhiên được thiết kế trong các hệ thống hỏi đáp phụ thuộc vào phương pháp phân tích câu hỏi. Để sử dụng cho một hệ thống hỏi đáp tiếng Việt, ví dụ như hệ thống hỏi đáp dựa trên Ontology được xây dựng bởi Nguyễn Quốc Đại [42], chúng tôi đưa ra một hướng thiết kế (trong hình 4-2) gồm 3 module: tiền xử lý (Pre Processing), phân tích cú pháp (Syntactic Analysis) và phân tích ngữ nghĩa (Semantic Analysis). Module phân tích ngữ nghĩa gồm có 2 module con là: phân loại câu hỏi (Question Classifier) và so khớp mẫu (Pattern Matching).
Hình 4-2: Các module của thành phần xử lý câu hỏi ngôn ngữ tự nhiên
Đầu ra của module so khớp mẫu chính là bộ biểu diễn trung gian của câu hỏi
gồm có: “Dạng cấu tạo câu hỏi” và một (hoặc nhiều) bộ biểu diễn con. Mỗi bộ biểu diễn con có dạng:
GATE Tiền xử lý
Câu hỏi ngôn ngữ tự nhiên Phân tích cú pháp Phân tích ngữ nghĩa Phân lớp câu hỏi So khớp mẫu Bộ biểu diễn trung gian
40
(Dạng cấu tạo bộ biểu diễn, Lớp câu hỏi, Thuật ngữ 1, Mối quan hệ, Thuật ngữ 2, Thuật ngữ 3).
Trong đó “Thuật ngữ 1” là một khái niệm (lớp đối tượng), ―Thuật ngữ 2‖ và
“Thuật ngữ 3‖ (đối tượng) là các thực thể. “Mối quan hệ” (thuộc tính) được dùng để
liên kết các thuật ngữ và luôn chứa đựng khái niệm trong nó.
Khi bộ biểu diễn trung gian có nhiều hơn một bộ con, điều này có nghĩa là câu hỏi được tổng hợp từ ít nhất hai câu hỏi con. Và “Dạng cấu tạo bộ biểu diễn” trong
mỗi bộ con chính là “Dạng cấu tạo câu hỏi” của câu hỏi con tương ứng. Do đó, nếu câu hỏi mà chỉ có một bộ biểu diễn con thì “Dạng cấu tạo bộ biểu diễn” là “Dạng cấu
tạo câu hỏi”. “Lớp câu hỏi” trong mỗi bộ con chính là lớp của câu hỏi con tương ứng.
“Dạng cấu tạo câu hỏi”: nhận một trong các giá trị sau đây: “Normal”,
“Unknterm”, “Unknrel”, “Definition”, “And”, “Or”, “Compare”, “ThreeTerm”, “Clause”, “Combine”, “AffirmNeg”, “AffirmNeg_3Term”, “AffirmNeg_2Triple”.
Trong đó, mỗi giá trị biểu diễn cho một tập các nguyên tắc cấu tạo (gọi là mẫu) của các câu hỏi.
Ví dụ: bộ biểu diễn trung gian của câu hỏi “ai có quê ở Hà Tây?” hoặc câu hỏi “ai
là sinh viên của lớp khoa học máy tính?” sẽ có “Dạng cấu tạo câu hỏi” nhận giá
trị là “UnknTerm”.
“Lớp câu hỏi” sẽ nhận một trong các giá trị: ―QU HowWhy”, “QU YesNo”, “QU
What”, “QU When”, “QU Where”, “QU Who”, “QU Many”, “QU ManyClass”, “QU List”, “QU Entity‖. Nó chính là kết quả của quá trình phân lớp được thực hiện
trong module phân loại câu hỏi.
Chúng tôi đưa ra một phương pháp chung để phân tích câu hỏi tiếng Việt. Dựa vào đó xây dựng hệ thống thử nghiệm về trên miền tri thức trường đại học mà cụ thể là đại học Công Nghệ. Kết quả phân tích sẽ được sử dụng trong hệ thống hỏi đáp tiếng Việt dựa trên Ontology do Nguyễn Quốc Đại xây dựng và thử nghiệm [42].
Một ví dụ về kết quả phân tích câu hỏi: “số lượng sinh viên học lớp khoa học máy tính là 45 phải không?” được đưa ra như trong hình 4-3 sau đây.
41
42