Module phân tích ngữ nghĩa gồm có hai module con là: phân loại câu hỏi và so khớp
mẫu. Module này sử dụng các kết quả của các module trước là các chú giải có kiểu TokenVn, Moiquanhe, Cumdanhtu, Danhngu. Module phân loại câu hỏi sẽ phân loại
một câu hỏi vào một lớp nhất định, trong khi module so khớp mẫu sẽ sinh ra một bộ
biểu diễn trung gian của câu hỏi và đó chính là đầu ra của quá trình xử lý câu hỏi.
4.4.1. Phân loại câu hỏi
Phân loại câu hỏi là nhiệm vụ ánh xạ một câu hỏi vào một trong các lớp cho trước. Phân loại có ý nghĩa rất quan trọng trong một hệ thống trả lời câu hỏi. Đầu tiên nó cung cấp những ràng buộc ngữ nghĩa về các loại câu trả lời mong muốn. Thứ hai nó cung cấp thông tin để những xử lý tiếp xác định phương pháp lựa chọn câu trả lời.
Trong khóa luận này, chúng tôi phân loại một câu hỏi tiếng Việt vào một trong 10 lớp: HowWhy, YesNo, What, When, Where, Who, Many, ManyClass, List, Entity. Phân loại câu hỏi được lưu trữ trong các chú giải kiểu Tudehoi (trong hình 4-14) tại các đặc trưng
category. Ngoài ra, chú giải kiểu Tudehoi còn có đặc trưng type nhận giá trị là “QU”.
59
HowWhy: một câu hỏi thuộc vào lớp HowWhy nếu chứa một từ (hoặc cụm từ) với kiểu chú giải TokenVn có đặc trưng type nhận giá trị là “HowWhy”. Kiểu chú giải
Tudehoi được tạo ra trên từ (hoặc cụm từ) này có đặc trưng category nhận giá trị là “QU HowWhy”. Những câu hỏi thuộc vào lớp này muốn một câu trả lời về nguyên
nhân hoặc là một sự giải thích nào đó.
Ví dụ: ―Hình vuông là hình như thế nào?‖ thì từ “như thế nào” được chú giải bởi kiểu TokenVn có giá trị của đặc trưng type là “HowWhy”. Do đó từ “như thế nào” cũng được chú giải bởi kiểu Tudehoi với đặc trưng category nhận giá trị
“QU HowWhy”.
YesNo: một câu hỏi thuộc vào lớp YesNo nếu chứa một từ với kiểu chú giải TokenVn có đặc trưng type nhận giá trị là “YesNo”. Kiểu chú giải Tudehoi được
tạo ra trên từ này có đặc trưng category nhận giá trị là “QU YesNo”. Những câu
hỏi thuộc lớp YesNo mong muốn một câu trả lời Đúng hoặc Sai.
Hoàn toàn tương tự, một câu hỏi thuộc vào một trong các lớp lớp What, When, Where, Many nếu câu hỏi chứa một từ với kiểu chú giải TokenVn có đặc trưng type lần lượt nhận các giá trị tương ứng là “What”, “When”, “Many”, “Where”.
Kiểu chú giải Tudehoi được tạo ra với đặc trưng category tương ứng nhận một
trong các các giá trị “QU What”, “QU When”, “QU Where”, “QU Many” cho
mỗi từ được khớp.
Những câu hỏi thuộc lớp Where mong muốn một câu trả lời về địa điểm.
Những câu hỏi thuộc lớp When mong muốn một câu trả lời về thời gian như: ngày, tháng,….
Những câu hỏi thuộc vào lớp What ít mang ý nghĩa xác định hỏi về cái gì. Những câu hỏi thuộc vào lớp Many muốn một câu trả lời về số lượng chung
chung, chưa xác định chính là số lượng cái gì.
Một câu hỏi mà cần câu trả lời là một người thì thuộc vào lớp Who. Câu hỏi thuộc vào lớp này nếu nó chứa môt từ có kiểu chú giải TokenVn với đặc trưng type nhận
60
giá trị là “Who”. Ngoài ra nếu câu hỏi chứa một cụm từ khớp với cấu trúc sau đây thì cũng thuộc vào lớp Who:
1 ―là‖ {TokenVn.string == “là”} 2 Giới từ {TokenVn.category == “Aa”} | {TokenVn.category == “An”} 3 Từ có kiểu chú giải TokenVn có ―type‖ nhận giá trị ―Who‖ {TokenVn.type == “Who”}
Vị trí 1 hoặc 2 có thể có hoặc không.
Một kiểu chú giải Tudehoi được tạo ra trên các từ hoặc cụm từ được khớp với đặc trưng category nhận giá trị là “QU Who”. Những câu hỏi hỏi về người thì
thuộc vào lớp này.
Một câu hỏi thuộc vào lớp ManyClass nếu có một cụm từ khớp với cấu trúc sau:
{TokenVn.type == “Many”} {Cumdanhtu.category == “Cụm danh từ”}
Cấu trúc trên sẽ khớp với các cụm như: số lượng sinh viên, bao nhiêu sinh viên,
số lượng môn học,…
Kiểu chú giải Tudehoi với đặc trưng category nhận giá trị là “QU ManyClass”
sẽ chú giải cho cụm từ được khớp.
Chúng ta có thể thấy rằng những câu hỏi thuộc lớp này thì có cụm từ để hỏi chứa đựng một khái niệm chứ không phải là một thực thể. Do đó, các câu hỏi thuộc vào lớp ManyClass mong muốn một câu trả lời về số lượng, nhưng là số lượng chính xác về một cái gì đó (thực thể).
Một câu hỏi thuộc vào lớp List nếu có một cụm từ khớp với cấu trúc sau:
61
Ví dụ: “chỉ ra tất cả những sinh viên của lớp khoa học máy tính?” sẽ thuộc vào lớp này vì nó chứa cụm từ “chỉ ra tất cả những sinh viên”.
Kiểu chú giải Tudehoi với đặc trưng category nhận giá trị là “QU List” sẽ chú
giải cho cụm từ được khớp.
Như đã được lý giải trong phân lớp ManyClass, những câu hỏi thuộc lớp này
mong muốn một câu trả lời là một danh sách các thực thể.
Kiểu chú giải Tudehoi với đặc trưng category nhận giá trị là “QU Entity” được
dùng để chú giải cho một cụm từ trong câu hỏi thuộc lớp Entity nếu cụm từ đó có
cấu trúc như sau:
{Cumdanhtu.category == “Cụm danh từ”}
{TokenVn.string == “nào”} | {TokenVn.string == “gì”}
Ví dụ: sinh viên nào, lớp nào, lớp gì,…
Trong câu hỏi ngôn ngữ tự nhiên, một cụm danh từ được theo sau bởi một từ
“nào” hoặc từ “gì” thì cụm danh từ đó bao giờ cũng chứa đựng một khái niệm.
Câu trả lời mong muốn sẽ là một thực thể tương ứng với khái niệm này. Điều này tương tự như trường hợp các câu hỏi thuộc lớp ManyClass và List phía trên.
Chú ý rằng: “ngày nào” không khớp với mẫu trên, vì trong bước tiền xử lý “ngày nào” đã được chú giải bởi kiểu TokenVn có đặc trưng category nhận giá trị “When”.
Chúng ta có thể nhận thấy rằng, phân lớp câu hỏi dựa trên các cụm từ dùng để hỏi đưa ra kết quả cao trong phân loại đối với những câu hỏi đơn giản (có một cụm từ dùng để hỏi). Đối với câu hỏi mà có nhiều cụm từ để hỏi, độ chính xác trong phân loại giảm đi. Ví dụ: “số lượng sinh viên học lớp khoa học máy tính là bao nhiêu?” kiểu chú giải Tudehoi xuất hiện trong câu này cho trên cụm từ “số lượng sinh viên” và “là bao
nhiêu”, tuy nhiên với câu hỏi này thì dù được phân loại vào lớp Many hay là ManyClass thì vẫn chấp nhận được.
62
Còn đối với 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?” hoặc “danh sách sinh viên của lớp khoa học máy tính là gì?” sự phân loại
câu hỏi ở đây là không rõ ràng. Hiện tại hệ thống sẽ phân câu hỏi dạng này vào tất cả các lớp có thể có. Nghĩa là, một câu hỏi có thể thuộc vào nhiều lớp.
Sử dụng module so khớp mẫu dưới đây, sự không rõ ràng trong các ví dụ trên sẽ được giải quyết.
63