Tài liệu Khóa luận Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp Tiếng Việt: ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
--------
Nguyễn Quốc Đạt
PHƢƠNG PHÁP PHÂN TÍCH CÂU HỎI
CHO HỆ THỐNG HỎI ĐÁP TIẾNG VIỆT
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 Đạt
PHƢƠNG PHÁP PHÂN TÍCH CÂU HỎI
CHO HỆ THỐNG HỎI ĐÁP TIẾNG VIỆT
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 phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt Nguyễn Quốc Đạt
i
Lời cảm ơn
Đầu tiên, tôi xin gửi lời cảm ơn sâu sắc đến giảng viên hướng dẫn của tôi là tiến
sĩ Phạm Bảo Sơn. Thầy đã hướng dẫn, hỗ trợ cũng như truyền đạt những kinh nghiệm
quý báu giúp tôi hoàn thành khóa luận của mình.
Tôi xin chân thành cảm ơn tiến sĩ Bùi Thế Duy. Thầy đã giúp đỡ và tạo điều
kiện thuận lợi cho tôi trong quá trình thực hiện khóa luận.
Tôi xin châ...
104 trang |
Chia sẻ: haohao | Lượt xem: 1090 | 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 phân tích câu hỏi cho hệ thống hỏi đáp Tiếng Việt, để 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 Đạt
PHƢƠNG PHÁP PHÂN TÍCH CÂU HỎI
CHO HỆ THỐNG HỎI ĐÁP TIẾNG VIỆT
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 Đạt
PHƢƠNG PHÁP PHÂN TÍCH CÂU HỎI
CHO HỆ THỐNG HỎI ĐÁP TIẾNG VIỆT
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 phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt Nguyễn Quốc Đạt
i
Lời cảm ơn
Đầu tiên, tôi xin gửi lời cảm ơn sâu sắc đến giảng viên hướng dẫn của tôi là tiến
sĩ Phạm Bảo Sơn. Thầy đã hướng dẫn, hỗ trợ cũng như truyền đạt những kinh nghiệm
quý báu giúp tôi hoàn thành khóa luận của mình.
Tôi xin chân thành cảm ơn tiến sĩ Bùi Thế Duy. Thầy đã giúp đỡ và tạo điều
kiện thuận lợi cho tôi trong quá trình thực hiện khóa luận.
Tôi xin chân thành cảm ơn các bạn: Nguyễn Quốc Đại, Nguyễn Bá Đạt, Phạm
Đức Đăng, Trần Bình Giang. Những người bạn cùng thực tập với tôi trong phòng thí
nghiệm. Các bạn đã đóng góp cho tôi nhiều ý kiến bổ ích.
Tôi xin chân thành cảm ơn hai bạn: Ngô Thị Thảo và Tạ Thị Bích Huyền đã
giúp đỡ tôi trong lúc tôi khó khăn.
Xin cám ơn những người bạn đã luôn ở bên cạnh đã quan tâm, động viên và
ủng hộ tôi.
Con cảm ơn bố mẹ đã sinh thành, nuôi dưỡng, chăm sóc và động viên con. Con
cảm ơn bố mẹ rất nhiều.
Hà Nội, ngày 23 tháng 5 năm 2009
Nguyễn Quốc Đạt
Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt Nguyễn Quốc Đạt
ii
Tóm tắt
Thay vì trả về một danh sách các tài liệu liên quan chứa đựng các từ có trong câu hỏi
giống như các cỗ máy tìm kiếm, thì hệ thống hỏi đáp đưa ra câu trả lời chính xác đáp lại
mong muốn của người dùng. Phân tích câu hỏi là thành phần đầu tiên của bất kỳ một hệ
thống hỏi đáp nào. Mục tiêu của thành phần này là tạo ra một bộ biểu diễn trung gian để
sử dụng trong phần còn lại của hệ thống. Trong khóa luận này, chúng tôi xin giới thiệu
một phương pháp phân tích câu hỏi. Phương pháp của chúng tôi đem lại một kết quả
khả quan, góp phần xây dựng nên một hệ thống hỏi đáp tiếng Việt.
Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt Nguyễn Quốc Đạt
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 ...................................................................................................... v
Danh sách hình vẽ ........................................................................................................ vi
Danh sách bảng .......................................................................................................... viii
Chƣơng 1. Giới thiệu ..................................................................................................... 1
Chƣơng 2. Phân tích câu hỏi trong các hệ thống hỏi đáp ......................................... 3
2.1. Phân loại câu hỏi .................................................................................................. 3
2.1.1. Sự phân loại câu hỏi ....................................................................................... 4
2.1.2. Phân loại câu hỏi dựa trên loại câu trả lời ...................................................... 5
2.1.3. Giới thiệu các phương pháp phân loại câu hỏi ............................................... 6
2.1.4. Phân loại câu hỏi sử dụng mô hình biểu thức chính quy ............................... 6
2.1.4.1. Giới thiệu về biểu thức chính quy ........................................................... 6
2.1.4.2. Phân loại câu hỏi sử dụng biểu thức chính quy ....................................... 9
2.1.5. Phân loại câu hỏi sử dụng mô hình ngôn ngữ .............................................. 10
2.1.5.1. Phân lớp câu hỏi sử dụng mô hình unigram .......................................... 11
2.1.5.2. Phân lớp câu hỏi sử dụng mô hình bigram ............................................ 13
2.1.5.3. Kết hợp hai mô hình unigram và bigram .............................................. 14
2.1.6. Kết hợp mô hình ngôn ngữ với mô hình biểu thức chính quy ..................... 15
2.1.7. Phân loại câu hỏi sử dụng các thuật toán học máy ...................................... 16
2.2. Phân tích câu hỏi trong các hệ thống hỏi đáp sử dụng cơ sở dữ liệu ................ 18
2.2.1. Các hệ thống so khớp mẫu ........................................................................... 18
2.2.2. Các hệ thống dựa trên cú pháp ..................................................................... 20
2.2.3. Các hệ thống sử dụng văn phạm ngữ nghĩa ................................................. 22
2.3. Chú giải ngữ nghĩa phục vụ phân tích câu hỏi trong các hệ thống hỏi đáp ...... 26
Chƣơng 3. GATE ......................................................................................................... 28
3.1. Giới thiệu GATE ................................................................................................. 28
Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt Nguyễn Quốc Đạt
iv
3.2. Trích chọn thông tin trong GATE ....................................................................... 31
3.3. JAPE ................................................................................................................... 33
3.3.1. Giới thiệu về JAPE ....................................................................................... 33
3.3.2. Thiết lập lựa chọn ......................................................................................... 33
3.3.3. Khớp mẫu ..................................................................................................... 34
3.3.3.1. Thành phần thay thế (Macro) ................................................................ 35
3.3.3.2. Ngữ cảnh trong văn phạm ..................................................................... 36
3.3.4. Một ví dụ đơn giản về JAPE ........................................................................ 36
3.3.5. Sử dụng độ ưu tiên ....................................................................................... 37
3.3.6. Sử dụng Java cho JAPE ............................................................................... 37
Chƣơng 4. Phƣơng pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt ....... 38
4.1. Kiến trúc hệ thống ............................................................................................... 38
4.2. Tiền xử lý ............................................................................................................. 42
4.2.1. Xác định cụm từ để hỏi chuẩn trong câu hỏi ngôn ngữ tự nhiên ................. 43
4.2.2. Tạo chú giải ngữ nghĩa cho các từ đặc biệt .................................................. 47
4.3. Phân tích cú pháp ............................................................................................... 49
4.3.1. Xác định cụm danh từ trong câu hỏi ............................................................ 49
4.3.2. Mối quan hệ .................................................................................................. 54
4.4. Phân tích ngữ nghĩa ............................................................................................ 58
4.4.1. Phân loại câu hỏi .......................................................................................... 58
4.4.2. So khớp mẫu ................................................................................................. 63
4.4.2.1. Cấu tạo của câu hỏi ............................................................................... 65
4.4.2.2. Bộ biểu diễn trung gian của câu hỏi ...................................................... 71
Chƣơng 5. Kết quả thực nghiệm ................................................................................ 76
Chƣơng 6. Kết luận và hƣớng phát triển .................................................................. 80
Phụ lục A. Chƣơng trình nhúng Java vào JAPE ...................................................... 82
Phụ lục B. Bảng nhãn từ loại tiếng Việt ................................................................... 84
Phụ lục C. Danh sách câu hỏi thực nghiệm ............................................................... 86
Tài liệu tham khảo ....................................................................................................... 90
Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt Nguyễn Quốc Đạt
v
Danh sách từ viết tắt
ANNIE
API
GATE
IE
JAPE
NER
A New-Nearly Information Extraction
Application Program Interface
General Architecture for Text Engineering
Information Extraction
Java Annotations Pattern Engine
Named Entity Recognitioin
SRW Sematically Related Words
Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt Nguyễn Quốc Đạt
vi
Danh sách hình vẽ
Hình 2-1: Văn phạm mô tả cấu trúc cú pháp câu .......................................................... 20
Hình 2-2: Cây cú pháp trong một hệ thống dựa trên cú pháp ....................................... 20
Hình 2-3: Một văn phạm ngữ nghĩa .............................................................................. 22
Hình 2-4: Cây cú pháp-ngữ nghĩa trong một văn phạm ngữ nghĩa ............................... 23
Hình 2-5: Cây cú pháp ngữ nghĩa của câu hỏi: “Tìm các sinh viên học ít nhất 2 môn do
giáo viên A dạy?” .......................................................................................................... 25
Hình 2-6: Kiến trúc của Aqualog ................................................................................... 27
Hình 3-1: Kiến trúc của GATE ...................................................................................... 28
Hình 3-2: Chú giải ngữ nghĩa trong GATE ................................................................... 30
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 ....................... 38
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 ...................... 39
Hình 4-3: Đầu ra của module phân tích câu hỏi tiếng Việt ........................................... 41
Hình 4-4: Giao diện GATE khi sử dụng Coltech.NLP.Tokenizer ................................. 42
Hình 4-5: Một số từ để hỏi đã được xác định lại bằng cách sử dụng JAPE .................. 44
Hình 4-6: Kiểu chú giải TokenVn cho những từ đặc biệt .............................................. 47
Hình 4-7: Kiểu chú giải TokenVn sau khi đã thay đổi giá trị của đặc trưng category .. 48
Hình 4-8: Cụm danh từ trong một số câu hỏi tiếng Việt ............................................... 49
Hình 4-9: Từ mang ý nghĩa so sánh trong câu hỏi tiếng Việt ....................................... 52
Hình 4-10: Một ví dụ về kiểu chú giải Danhngu........................................................... 53
Hình 4-11: Ví dụ về “mối quan hệ” .............................................................................. 54
Hình 4-12: Tách từ trong câu hỏi: “Nguyễn Quốc Đạt và Nguyễn Quốc Đại có quê ở
Hà Tây phải không?” .................................................................................................... 55
Hình 4-13: Kiểu chú giải Moiquanhe ............................................................................ 57
Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt Nguyễn Quốc Đạt
vii
Hình 4-14: Một ví dụ về kiểu chú giải Tudehoi ............................................................ 58
Hình 4-15: Ví dụ về bộ biểu diễn trung gian của câu hỏi ............................................. 64
Hình 4-16: Một ví dụ về kiểu chú giải Maucauhoi ....................................................... 72
Hình 4-17: Đầu ra của một câu hỏi có cấu tạo dạng Unknterm ................................... 73
Hình 4-18: Đầu ra của một câu hỏi có cấu tạo dạng And .............................................. 74
Hình 4-19: Đầu ra của một câu hỏi có cấu tạo dạng AffirmNeg_3Term ....................... 75
Hình 5-1: Ví dụ về một phần câu hỏi được khớp mẫu .................................................. 77
Hình 5-2: Kết quả phân tích đúng - câu hỏi thỏa mãn tiêu chí 2 ................................... 78
Hình 5-3: Ví dụ về câu hỏi thỏa mãn tiêu chí 3 ............................................................ 78
Hình 5-4: Một ví dụ về phân tích sai – câu hỏi thỏa mãn tiêu chí 1 nhưng không thỏa
mãn tiêu chí 2 ................................................................................................................ 79
Hình A-1: Chương trình nhúng Java vào JAPE ............................................................ 83
Hình B-1: Nhãn từ loại trong tiếng Việt được dùng trong bộ tách từ trong
Coltech.NLP.Tokenizer ................................................................................................. 85
Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt Nguyễn Quốc Đạt
viii
Danh sách bảng
Bảng 4-1: Cấu tạo của cụm danh từ trong câu hỏi tiếng Việt ....................................... 50
Bảng 4-2: Cấu trúc cụm danh từ được mô tả trong văn phạm JAPE ............................ 51
Bảng 5-1: Kết quả đánh giá ........................................................................................... 77
Chương 1. Giới thiệu Nguyễn Quốc Đạt
1
Chƣơng 1. Giới thiệu
Những cỗ máy tìm kiếm hiện nay trả về một danh sách gồm rất nhiều các tài liệu liên
quan tới câu hỏi của người sử dụng. Nó yêu cầu người sử dụng phải lướt qua các tài
liệu này để tìm kiếm thông tin cần thiết. Điều này gây ra sự không hài lòng của người
dùng khi thời gian dành cho việc tìm kiếm là không nhiều.
Các hệ thống hỏi đáp được tạo ra để giải quyết vấn đề nêu trên. Hệ thống hỏi
đáp đưa ra một câu trả lời chính xác đáp ứng mong muốn của người sử dụng. Thành
phần xử lý câu hỏi là thành phần đầu tiên trong bất cứ một hệ thống hỏi đáp nào.
Nhiệm vụ của thành phần này là tạo ra một biểu diễn trung gian của câu hỏi để dùng
trong các thành phần còn lại của hệ thống.
Những nghiên cứu về hệ thống hỏi đáp trên thế giới đã phát triển, được ứng
dụng từ lâu và đem lại nhiều lợi ích. Nhưng tại Việt Nam, chưa có nhiều nghiên cứu
về hệ thống hỏi đáp. Bởi vậy, trong khóa luận này, chúng tôi giới thiệu: “Phương
pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt” nhằm mục đích góp phần
tạo ra một hệ thống hỏi đáp tiếng Việt.
Trong khóa luận của mình, chúng tôi đề xuất một phương pháp phân tích câu
hỏi tiếng Việt dựa trên các chú giải ngữ nghĩa. Phương pháp của chúng tôi tạo ra một
biểu diễn trung gian của mỗi câu hỏi đầu vào thông qua một loạt các quá trình xử lý
như: tiền xử lý, phân tích cú pháp, phân tích ngữ nghĩa, phân loại câu hỏi. Mỗi bộ biểu
diễn trung gian của câu hỏi chứa đựng: dạng (nguyên tắc) cấu tạo của câu hỏi, phân
lớp của câu hỏi, các từ khóa có trong câu hỏi cũng như những ràng buộc ngữ nghĩa
giữa các từ khóa đó.
Phương pháp của chúng tôi đem lại một kết quả khả quan trong việc phân tích
các câu hỏi ngôn ngữ tự nhiên. Ngoài phương pháp của mình, chúng tôi còn nghiên cứu
và tìm hiểu những lý thuyết liên quan đến phân tích câu hỏi trong các hệ thống hỏi đáp.
Chương 1. Giới thiệu Nguyễn Quốc Đạt
2
Phần còn lại của khóa luận được trình bày như sau: tại chương 2 chúng tôi giới
thiệu về một số phương pháp phân loại câu hỏi và các kỹ thuật phân tích câu hỏi ngôn
ngữ tự nhiên trong một số hệ thống hỏi đáp đã có. Tiếp theo, chúng tôi giới thiệu về
GATE (General Architecture Text Engine) [45][40] là một hệ thống chú giải ngữ
nghĩa được ứng dụng rất nhiều trong xử lý ngôn ngữ tự nhiên ở chương 3. Sau đó, tại
chương 4, chúng tôi trình bày về phương pháp của mình. Cuối cùng, chúng tôi đưa ra
một số kết quả thực nghiệm ở chương 5 và kết luận ở chương 6.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
3
Chƣơng 2. Phân tích câu hỏi
trong các hệ thống hỏi đáp
Phân tích câu hỏi là thành phần đầu tiên cho một hệ thống hỏi đáp. Nó sinh ra một biểu
diễn của câu hỏi để dùng trong phần còn lại của hệ thống. Phân tích câu hỏi ở mức độ
đơn giản nhất chính là phân loại câu hỏi. Sau đó, những kỹ thuật xử lý ngôn ngữ tự
nhiên được sử dụng để nhận biết chính xác các từ khóa cũng như các ràng buộc ngữ
nghĩa trong câu hỏi nhằm mục tiêu đưa ra câu trả lời chính xác nhất.
2.1. Phân loại câu hỏi
Vấn đề xử lý câu hỏi ngôn ngữ tự nhiên trong hệ thống hỏi đáp có thể trở nên dễ dàng
hơn bằng cách thực hiện phân loại [30]. Điều này có nghĩa là, quá trình tìm ra sự khác
nhau hoặc giống nhau giữa các câu hỏi là cơ sở cho sự tổng quát sau đó [8].
Chúng ta định nghĩa phân loại câu hỏi là nhiệm vụ ánh xạ một câu hỏi cho
trước vào một trong lớp. Nghĩa là với một câu hỏi đầu vào, quá trình phân loại sẽ
đưa ra lớp tương ứng của câu hỏi, các lớp này cung cấp những ràng buộc ngữ nghĩa
dựa trên câu trả lời mong muốn.
Sự kết hợp của các từ nhằm tạo ra một câu hỏi dường như là vô tận. Phương
pháp trả lời tất cả các câu hỏi, mà hệ thống hỏi đáp có thể bắt gặp, nằm ngoài khả năng
tính toán hiện nay. Một hướng tiếp cận, cố gắng làm cho vấn đề này trở nên dàng hơn,
là khái quát hóa các câu hỏi thành một số lượng hữu hạn các lớp câu hỏi. Với cách làm
như vậy, vấn đề sẽ bớt phức tạp hơn. Tính phức tạp được giảm đi bao nhiêu còn phụ
thuộc vào phương pháp phân loại được sử dụng để làm đơn giản hóa vấn đề. Nhưng có
một mặt không tốt của việc phân loại câu hỏi đó là luôn luôn mất một vài thông tin
trong câu hỏi, điều này dẫn đến một hệ thống trả lời câu hỏi có thể đưa ra câu trả lời
sai hoặc không đưa ra bất kỳ một câu trả lời nào.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
4
2.1.1. Sự phân loại câu hỏi
Hầu hết các cách phân loại hiện nay phân loại câu hỏi dựa trên các từ để hỏi và/hoặc
một số từ khóa trong các câu hỏi dựa trên cơ sở tri thức hiện có. Phân loại dựa trên từ
để hỏi chuẩn (trong tiếng Anh là: who, what, when, where, why, how) không cho biết
bất cứ thông tin về câu hỏi ngoại trừ loại câu trả lời mong muốn. Trong khi câu hỏi
còn cho biết nhiều thông tin liên quan đến cơ sở tri thức và các thông tin này vô cùng
có ích để tìm câu trả lời cho câu hỏi, thì cách phân loại dựa trên từ để hỏi chuẩn không
đưa ra bất cứ mối quan hệ ngữ nghĩa nào giữa các câu hỏi và cơ sở tri thức.
Sử dụng các từ khóa với mục đích phân loại câu hỏi làm tăng sự phức tạp cho
hệ thống. Hầu hết các hệ thống sử dụng hướng tiếp cận này thực hiện tốt trong một
miền mà có không nhiều sự phức tạp. Tuy nhiên, đây không phải là một phương pháp
tồi. Trong thực tế, nhiều hệ thống đã đưa ra những kết quả tốt với cách phân loại dựa
trên từ khóa nhưng không hệ thống nào hoàn thành việc hiểu đúng ngữ nghĩa của câu
hỏi được hỏi.
Hệ thống phân loại các câu hỏi cần dựa trên các kiểu thông tin có trong câu hỏi
và loại câu trả lời mong muốn. Hơn nữa, hệ thống cần thực hiện phân loại một cách
hoàn toàn độc lập với cơ sở tri thức. Hướng phân loại dựa hoàn toàn vào cơ sở tri thức
đáng lẽ rất quan trọng, bởi vì một câu hỏi được hỏi sẽ được phân loại theo cùng một
cách dù tri thức mà hệ thống có là gì đi chăng nữa. Điều đó không có nghĩa là một câu
hỏi sẽ có nhiều nghĩa khác nhau, do đó nó có nhiều câu trả lời khác nhau phụ thuộc
vào ngữ cảnh của câu hỏi. Tuy nhiên, chúng ta có thể thấy rằng đó chỉ là một kết quả
của một cách mà cơ sở tri thức hiểu câu hỏi. Và những câu trả lời được đưa ra có thể
hoàn toàn khác từ một cơ sở tri thức khác.
Ví dụ, cùng một câu hỏi được hỏi tới hai người khác nhau, chẳng hạn như, cùng
một câu hỏi “Can I have a shot?” được hỏi tới một ông bác sĩ và một anh bồi bàn
trong quán rượi. Câu hỏi sẽ được hiểu theo nhiều cách khác nhau, ông bác sĩ sẽ nghĩa
là “tiêm thuốc”, còn người phục vụ sẽ nghĩ là “ly rượi”.
Bởi vậy cùng một câu hỏi nhưng sẽ bị phân vào các lớp khác nhau giống như ví
dụ trên.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
5
2.1.2. Phân loại câu hỏi dựa trên loại câu trả lời
Các câu hỏi chứa đựng thông tin liên quan đến loại câu trả lời mong muốn. Thông tin
này rất quan trọng đối với hệ thống hỏi đáp, bởi vì nó xác định hình thức của một câu
trả lời hợp lý và sẽ có những xử lý cần thiết để đưa ra câu trả lời đó cho câu hỏi. Câu
trả lời của câu hỏi có thể có các loại sau:
Không đƣợc xử lý (Unprocessed)- các câu trả lời chỉ đơn thuần là tìm kiếm
trong miền tri thức để đưa ra thông tin được hỏi.
Số - các câu hỏi mà có câu trả lời là một con số, chúng thường yêu cầu một số
phép tính toán để thu được câu trả lời. Ví dụ, “số lượng sinh viên của lớp k50 khoa
học máy tính là bao nhiêu?”. Những con số này không có nhiều ý nghĩa, vì thế một hệ
thống hỏi đáp thông minh sẽ trả về một số kiểu đơn vị kèm theo câu trả lời.
Câu hỏi đúng sai (Boolean) - đó là dạng câu hỏi mà muốn một câu trả lời là
Đúng hoặc Không (Sai), yêu cầu xử lý cơ sở tri thức.
Lời chỉ dẫn (Intructions) - một câu hỏi phức tạp, ví dụ như một danh sách các
bước để hoàn thành một nhiệm vụ hoặc là một giải thích. Ví dụ, “Làm thế nào để đi từ
thành phố Hà Nội vào thành phố Hồ Chí Minh?”, câu trả lời sẽ phụ thuộc vào ngữ
cảnh, nhưng nó nên là một danh sách các bước giúp chúng ta có thể đi từ thành phố Hà
Nội vào thành phố Hồ Chí Minh.
Các bảng tóm tắt (Summaries) – dữ liệu thô được sắp xếp để đưa ra tất cả các
thông tin liên quan thành một chủ đề đặc biệt. Ví dụ, “What does Nguyễn Quốc Đạt
like?”, câu trả lời mong muốn sẽ là bảng tóm tắt của tất cả những dữ liệu về Nguyễn
Quốc Đạt, mà cơ sở tri thức chứa đựng, có liên quan tới ngữ cảnh của câu hỏi.
Xác định kiểu của câu trả lời mong muốn từ một câu hỏi chỉ bằng cách tìm
kiếm các từ để hỏi: who, what, when.. là một nhiệm vụ hết sức cơ bản, dễ dàng phân
tích và thực thi bởi vì số lượng từ để hỏi là giới hạn.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
6
2.1.3. Giới thiệu các phƣơng pháp phân loại câu hỏi
Định nghĩa các lớp của câu hỏi là bước đầu tiên trong việc phân loại. Bước xử lý tiếp
theo là sửa đổi câu hỏi để tạo ra mẫu rõ ràng hơn. Ví dụ các câu hỏi dạng “Who is
sb.?” luôn luôn hỏi về tiểu sử của một người mà không quan tâm đến tên của người
xuất hiện trong câu hỏi. Nói cách khác, điều quan trọng ở đây là biết câu chứa đựng
một thực thể PERSON. Chúng ta không quan tâm đến thực thể này. Vì thế chúng ta có
thể thay đổi câu hỏi thành “Who is ?” mà không làm mất thông tin có
ích để xác định loại câu hỏi.
Có nhiểu phương pháp phân loại câu hỏi như sử dụng mô hình ngôn ngữ
[23][17], hoặc các thuật toán học máy [24] như SVM (Support Vector Machine) [37],
hoặc nguyên lý Entropy cực đại [16][41],… Phương pháp được áp dụng trong các hệ
thống phân loại đầu tiên, và thường được kết hợp để sử dụng trong các hệ thống phân
loại hiện nay là phương pháp phân loại sử dụng mô hình biểu thức chính quy [17].
2.1.4. Phân loại câu hỏi sử dụng mô hình biểu thức chính quy
2.1.4.1. Giới thiệu về biểu thức chính quy
Một biểu thức chính quy thường gọi một mẫu, tức là một biểu thức mà mô tả một tập
các xâu. Chúng thường được dùng để đưa ra một biểu diễn ngắn gọn của một tập hợp
mà không phải liệt kê các phần tử. Ví dụ mẫu [Dd][Aa]t sẽ biểu diễn một tập hợp gồm
4 xâu: “dat”, “DAt”, “dAt”, “Dat”. Hầu hết các hệ thống hình thức đều cung cấp các
toán tử dưới đây để tạo ra các biểu thức chính quy:
* Lặp 0 hoặc nhiều lần của một biểu thức chính quy cho trước. Ví dụ: ab* sẽ
khớp với các xâu “a”, “ab”, “abb”, “abbb”, …
+ Lặp ít nhất 1 lần của một biểu thức chính quy cho trước. Ví dụ biểu thức chính
quy ab+ sẽ khớp với ký tự „a‟ được theo sau ít nhất một ký tự „b‟, nghĩa là
biểu thức này sẽ khớp với các xâu: “ab”, “abb”, “abbb”, … mà không khớp
với xâu “a”.
? Lặp 0 hoặc 1 lần. Biểu thức chính quy: ab? Chỉ khớp với “a” hoặc “ab”.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
7
*?, +? Định tính của "*" và “+” là tham lam, có nghĩa chúng khớp với nhiều chữ nhất
có thể có. Trong một số trường hợp, hoạt động như vậy là không mong muốn.
Ví dụ, biểu thức chính quy sẽ khớp với cả xâu “title” mà
không phải là “”. Thêm dấu ? vào đằng sau các toán tử: *, + chúng sẽ
thực hiện khớp mẫu tối thiểu, có nghĩa là khớp với số lượng ít chữ nhất có thể.
Khi sử dụng biểu thức để khớp trên xâu “title” thì biểu
thức sẽ khớp với “” mà không phải là cả xâu.
{m} Cho phép lặp lại đúng m lần của biểu thức chính quy cho trước. Ví dụ, a{6} sẽ
khớp với đúng 6 ký tự ‗a‘ là “aaaaaa”.
{m,n} Lặp từ m đến n lần của biểu thức chính quy cho trước. Ví dụ a{3,5} sẽ khớp
với xâu có từ 3 đến 5 ký tự „a‟. Thiếu m thì sẽ lặp từ 0 đến n lần, còn nếu thiếu
n thì sẽ lặp ít nhất là m lần.
| A | B là một biểu thức chính quy, với A và B là hai biểu thức chính quy bất kỳ.
Biểu thức này là một biểu thức chính quy chỉ khớp với A hoặc B.
"." (dấu chấm) Khớp với tất cả các ký tự trừ ký tự xuống dòng „\n‟.
^ (dấu mũ) Khớp từ ký tự đầu một xâu.
$ Khớp đến cuối xâu.
\ Đây là một ký tự đặc biệt cho phép khớp các ký tự như „*‟, „?‟,…bằng cách
thêm ký tự này vào đằng trước, \* sẽ khớp với „*‟.
[] Được sử dụng để xác định một tập các ký tự. Các ký tự có thể được liệt kê
riêng lẻ hoặc một dãy các ký tự có thể được nhận biết bằng cách cho hai ký tự
và phân chia chúng bởi ‗-‘. Ví dụ, [bac] sẽ khớp với ba ký tự ‗a‟, „b‟, „c‟; [a-z]
sẽ khớp với tất cả ký tự viết thường từ a đến z. Nếu ký tự ^ là ký tự đầu tiên
trong tập các ký tự thì biểu thức sẽ khớp với bất cứ ký tự nào không nằm trong
tập các ký tự đó. Ví dụ, [^5] sẽ khớp với bất cứ ký tự nào ngoại trừ „5‟ và [^^]
sẽ khớp với bất cứ ký tự nào ngoại trừ „^‟.
(biểu_thức) Khớp với bất cứ biểu thức chính quy nào bên trong hai dấu ngoặc đơn.
Một số ký tự đặc biệt:
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
8
\d Khớp với chữ số số bất kỳ, \d chính là [0-9].
\D Khớp với ký tự bất kỳ mà không phải là chữ số.
\w \w chính là [a-zA-Z0-9] khớp với các ký tự viết thường, viết hoa và chữ số.
\W \W chính là [^a-zA-Z0-9].
\s Khoảng trắng (space)
\S Ký tự bất kỳ không phải là khoảng trắng, \S chính là [^\s].
Ví dụ áp dụng: biểu thức chính quy ]*>.*? sẽ khớp với các siêu liên kết.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
9
2.1.4.2. Phân loại câu hỏi sử dụng biểu thức chính quy
Ý tưởng cơ bản của hệ thống phân loại áp dụng mô hình biểu thức chính quy [17] là
xác định lớp của câu hỏi dựa trên mẫu câu, bao gồm các từ để hỏi, dãy các từ nào đó
và một số từ thể hiện lớp của các câu hỏi đặc biệt. Những mẫu đó được định nghĩa bởi
biểu thức chính quy.
Ví dụ, một câu hỏi bắt đầu với từ “where” là một câu hỏi về vị trí. Đối với từ
“what ” chúng ta có thể tìm một số từ khóa để đưa ra xác định của chúng ta, chẳng
hạn như trong câu hỏi “what” mà có các từ “agency”, “company” và “university” thì
các câu hỏi đó liên quan đến một lớp tổ chức. Sau đây là một số biểu thức chính quy
sử dụng cho các lớp nào đó của các câu hỏi:
Các câu hỏi bắt đầu với từ “what” và hỏi về một thực thể con người:
(actor | actresse? | attorne(y | ie) | teacher | …. senator)s?
Các câu hỏi mà bắt đầu với từ “how” và hỏi về một thực thể đo lường:
long | short | wide | far | close | big.* (diameter | radius)
Hướng tiếp cận này rất hiệu quả và hữu ích trên một số các mẫu câu hỏi. Nhưng
có nhiều trường hợp khó khăn khi sử dụng mẫu. Chẳng hạn như, câu trả lời cho câu
hỏi “who” có thể là một người, một tổ chức, thậm chí là một địa điểm nào đó. Ví dụ:
“Who is the largest producer of laptop computers in the world?”, chúng ta dễ dàng
nhận thấy đây là một câu hỏi về một tổ chức nhưng hệ thống của chúng ta không xác
định được chính xác khi chỉ dựa trên mẫu câu hỏi.
Từ ví dụ trên, chúng ta cần có thêm các thông tin ngữ nghĩa trong câu hỏi. Hiện
nay, thông tin ngữ nghĩa có thể được xác định bởi biểu thức chính quy thông qua văn
phạm JAPE trong GATE [45]. Chúng ta sẽ tìm hiểu về GATE sâu hơn ở chương 3 và
áp dụng thực tế được trình bày trong chương 4. Tuy nhiên, trong mô hình biểu thức
chính quy hiện tại, các thông tin ngữ nghĩa lại không xuất hiện trong mô hình biểu
thức chính quy. Có một cách để giải quyết vấn đề này là xây dựng một tập mẫu đầy đủ
và chính xác hơn nhưng cách này tốn rất nhiều công sức của con người. Thay vì xây
đựng một mô hình mẫu câu hỏi ngày càng lớn chúng ta hướng tới một phương pháp
linh hoạt và tự động hơn: sử dụng mô hình ngôn ngữ [23][17].
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
10
2.1.5. Phân loại câu hỏi sử dụng mô hình ngôn ngữ
Mô hình ngôn ngữ [23][17]là phân bố xác suất trên tập dữ liệu huấn luyện. Chúng ta
xây dựng một mô hình ngôn ngữ cho mỗi lớp của các câu hỏi mẫu (chúng ta đã xác
định các lớp trong bước đầu tiên khi thực hiện phân loại). Khi có một câu hỏi mới ,
chúng ta sẽ tính xác suất , nghĩa là tính xác suất để thuộc vào lớp . Và lớp
của là thỏa mãn:
Vì đã được xác định, nên chúng ta chỉ cần xác định tính xác suất .
Giải thiết rằng một truy vấn bao gồm từ: . Chúng ta có:
Thông thường, mô hình n-gram được tạo ra để đơn giản hóa phép tính:
Công thức trên có nghĩa là xác suất xuất hiện của một từ trong lớp chỉ phụ
thuộc vào từ đằng trước.
Mô hình ngôn ngữ hơn mô hình biểu thức chính quy ở tính linh hoạt. Biểu thức
chính quy được soạn thảo theo các luật cứng (hard-coded), nó cần phải sửa đổi để giải
quyết những trường hợp mới. Trong khi đó, mô hình ngôn ngữ có thể tự động sửa đổi.
Với một tập hợp dữ liệu huấn luyện lớn, sự thực thi của mô hình ngôn ngữ sẽ được cải
thiện.
Mô hình n-gram [23] là mô hình ngôn ngữ trong xử lý ngôn ngữ tự nhiên dựa
trên thống kê, n-gram là một dãy con gồm phần tử liên tiếp nhau của một dãy các
phần từ cho trước. Ví dụ với đầu vào : ―Ba học sinh đi đá bóng‖
“Ba”, “học”, “sinh”, “đi”, “đá”, “bóng” gọi là các 1-gram hay unigram.
“Ba học”, “học sinh”, “sinh đi”, “đi đá”, “đá bóng” gọi là các 2-gram hay bigram.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
11
2.1.5.1. Phân lớp câu hỏi sử dụng mô hình unigram
Áp dụng mô hình unigram ta có:
Chúng ta cần ước lượng xác suất của một từ w xuất hiện trong lớp là .
Gọi là số lần xuất hiện của dãy trong
lớp C. Chúng ta có thể thấy rằng:
Vậy, làm thế nào giải quyết trường hợp tồn tại các từ mà không bao giờ xuất
hiện trong lớp . Chúng ta không muốn chúng có xác suất là 0, vì thế các xác suất
bằng 0 của một số từ phải được gán giá trị khác 0 và xác suất của những từ khác sẽ
được điều chỉnh phù hợp.
Có rất nhiều cách để giải quyết vấn đề này. Đơn giản nhất đó là sử dụng một
hằng số nhỏ để gán cho các xác suất của tất cả các từ không xuất hiện trong lớp C,
trong khi xác suất của các từ khác thì bị giảm đi phù hợp. Gọi là số lượng
các từ không xuất hiện trong lớp và là mức độ làm mịn. Chúng ta có công thức
làm mịn để loại bỏ xác suất bằng 0 như sau:
Còn một cách khá phổ biến đó là sử dụng phương pháp làm mịn Good-Turing
[13]. Phương pháp làm mịn Good-Turing ước lượng xác suất cho các từ mà số lần xuất
hiện nhỏ hoặc không xuất hiện, theo ước lượng Good-Turing, được tính theo
công thức sau đây:
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
12
Gọi là cỡ của tập dữ liệu chuẩn, là số lượng các từ mà xuất hiện đúng
lần trong .Ta có , , được tính theo các công thức dước đây:
M là số lớn nhất thỏa mãn:
trong đó
Và:
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
13
2.1.5.2. Phân lớp câu hỏi sử dụng mô hình bigram
Áp dụng mô hình bigram ta có công thức:
Chúng ta cần xác định xác suất có điều kiện .
Gọi là số lượng các từ không bao giờ xuất hiện đằng sau
trong lớp C, và S là mức độ làm mịn. Khi đó, công thức làm mịn để loại bỏ xác suất 0
được chỉ ra trong 2 trường hợp dưới đây.
Xét trường hợp 1: , khi đó xác suất cho tất cả ẩn là S. Vì thế
Xét trường hợp 2: , khi đó tất cả các là ẩn. Vì thế
là giống nhau cho mọi :
Sử dụng mô hình Back-Off [22], chúng ta cũng có thể loại bỏ các xác suất 0.
Mô hình Back-Off được phát triển để dùng trong mô hình bigram thay cho ước lượng
Good-Turing. Ý tưởng của mô hình Back-Off là chỉ cho phép tỉ lệ thuận
với khi sự xuất hiện của trong lớp C lớn hơn một số nào đó.
Mặt khác chúng ta sử dụng để ước lượng . Ta có công thức:
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
14
α là một sự trừ hao để trừ những xác suất của các bigram xuất hiện nhiều lần và
chúng ta giảm tương tự như trong Good-Turing.
β được lựa chọn để thỏa mãn công thức sau: , đây là một
hàm của .
K nên là một số nhỏ và chúng ta nhận thấy rằng K = 0 đưa ra sự thực hiện tốt
nhất cho dữ liệu.
2.1.5.3. Kết hợp hai mô hình unigram và bigram
Để có thể đánh giá chính xác hơn, chúng ta kết hợp 2 mô hình unigram và bigram với
nhau. Công thức tính xác suất như sau:
Các giá trị khác nhau cho λ sẽ được kiểm tra, giá trị nào tốt nhất sẽ được chọn.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
15
2.1.6. Kết hợp mô hình ngôn ngữ với mô hình biểu thức chính quy
Mặc dù mô hình ngôn ngữ [23][17] có vẻ hấp hơn nhưng nó vẫn có tồn tại những mặt
không tốt. Một trong những mặt đó là tính không ổn định.Ví dụ, chúng ta ko có sự thu
hẹp nào trong kết quả phân loại của mô hình ngôn ngữ, hệ thống có thể phân loại câu
hỏi bắt đầu với từ “how many” như câu hỏi về người. Trong khi đó, mẫu câu này rất
dễ dàng được phân loại chính xác bởi mô hình biểu thức chính quy.Vì thế chúng ta cố
gắng kết hợp chúng để cải thiện sự thực thi. Mô hình ngôn ngữ được thay đổi để sinh
ra một danh sách được xếp hạng của các lớp dựa trên độ tin cậy và mô hình biểu thức
chính quy đưa ra tất cả các lớp phù hợp với mẫu câu hỏi. Sự kết hợp như vậy sinh ra
lớp với thứ hạng cao nhất được chấp nhận bởi mô hình biểu thức chính quy chính là
kết quả cuối cùng. Theo cách như vậy chúng ta có thể tránh được sai lầm.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
16
2.1.7. Phân loại câu hỏi sử dụng các thuật toán học máy
Sử dụng các thuật toán học máy [24] như SVM (Support Vector Machine) [37], hoặc
nguyên lý Entropy cực đại [16][41],… thuận lợi hơn các phương pháp thủ công vì
nhiều nguyên nhân. Xây dưng bộ phân loại thủ công cho các câu hỏi là một nhiệm vụ
thiếu hấp dẫn vì yêu cầu phân tích một số lượng rất lớn các câu hỏi. Hơn nữa ánh xạ
các câu hỏi tới các lớp yêu cầu sử dụng các phần tử từ vựng (các từ đặc biệt) vì thế
một mô hình hóa của ánh xạ có thể sẽ rất lớn.
Trong khi đó, phương pháp sử dụng các thuật toán học có thể chỉ cần một số
lượng nhỏ các loại đặc trưng sau đó được mở rộng theo phương pháp hướng dữ liệu để
có khả năng thực hiện trên một lượng lớn các đặc trưng. Ngoài ra, một hệ thống phân
lớp sử dụng thuật toán học máy thì mềm dẻo và dễ tái sử dụng lại hơn một bộ phân lớp
thủ công bởi vì nó có thể được huấn luyện theo một nguyên tắc phân loại mới chỉ
trong thời gian ngắn.
Sự khó khăn trong một bộ phân lớp thủ công là xem xét các biểu diễn khác
nhau của cùng một câu hỏi. Ví dụ:
Ai là sinh viên của lớp khoa học máy tính?
Lớp khoa học máy tính có những sinh viên nào?
Những sinh viên của lớp khoa học máy tính là ai?
Ai học lớp khoa học máy tính?
Các từ khác nhau, các cấu trúc cú pháp khác nhau có thể tạo khó khăn cho một
bộ phân lớp thủ công dựa trên một tập nhỏ các luật để sinh ra tất cả các ánh xạ cho
cùng một loại câu trả lời.
Mặc dù cần dữ liệu huấn luyện và cách chọn đặc trưng, nhưng với các thuật
toán học tốt và các đặc trưng thích hợp, có thể không bị ảnh hưởng bởi số lượng lớn
các đặc trưng ẩn, sẽ phân lớp chính xác các ví dụ nêu trên.
Các đặc trưng thường được sử dụng trong các hệ thống phân lớp câu hỏi như:
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
17
Các đặc trưng từ vựng biểu diễn các từ của một câu hỏi được xem như là một đặc
trưng. Các đặc trưng từ vựng bao gồm: các từ thô, các từ viết thường, các từ gốc
(trong tiến Anh là các từ được loại bỏ hậu tố) và từ được bổ ngữ.
Sử dụng n-gram bên trong một đặc trưng.
Hai từ đầu tiên hoặc cụm danh từ đầu tiên của câu hỏi được biểu diễn như là một
đặc trưng.
Các đặc trưng cú pháp biểu diễn các khía cạnh cú pháp của một câu hỏi gồm có:
các nhãn từ loại, hoặc cấu trúc cụm cú pháp không đệ quy (non-recursive
grammatical phrase structure).
Các thực thể có tên (Named Entity).
Danh sách các từ liên quan đến nhau về mặt ngữ nghĩa (Sematically Related Words
hay SRW) [18][19].
Hệ thống phân loại áp dụng thuật toán học sử dụng (một hoặc nhiều trong) các
đặc trưng nêu trên để tạo ra một mô hình phân loại dựa trên các câu hỏi mẫu dùng để
huấn luyện. Sau đó, sử dụng mô hình phân loại để đưa ra lớp tương ứng của một câu
hỏi mới.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
18
2.2. Phân tích câu hỏi trong các hệ thống hỏi đáp sử dụng cơ sở dữ
liệu
Một giao diện ngôn ngữ tự nhiên tới cơ sở dữ liệu (Natural Language Interface to
Database hay NLIDB) là một hệ thống cho phép người sử dụng truy cập thông tin
được lưu bên trong một cơ sở dữ liệu bằng cách cho một yêu cầu được biểu diễn dưới
dạng ngôn ngữ tự nhiên.
Phương pháp phân tích câu hỏi được áp dụng trong các hệ thống NLIDB đầu
tiên là sử dụng kỹ thuật so khớp mẫu, sau đó là các kỹ thuật phân tích cú pháp và hiện
nay là các kỹ thuật phân tích ngữ nghĩa.
2.2.1. Các hệ thống so khớp mẫu
Một số hệ thống NLIDB đầu tiên dựa vào kỹ thuật so khớp mẫu để trả lời câu hỏi của
người sử dụng. Để minh họa một cách tiếp cận so khớp mẫu đơn giản, chúng ta xét
một bảng cơ sở dữ liệu chứa đựng thông tin về các quốc gia sau đây:
Countries table
Country Capital Language
France Paris French
Italy Rome Italian
… … …
Một hệ thống so khớp mẫu nguyên thủy có thể sử dụng luật sau:
Mẫu: … “capital” …
Hành động: Trả về Capital của hàng mà Country =
Mẫu: . . . “capital” . . . “country”
Hành động: Trả về Capital và Country của mỗi hàng
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
19
Luật đầu tiên có nghĩa là: nếu câu hỏi của người sử dụng chứa đựng từ
“capital” được theo sau bởi tên của một quốc gia (một cái tên xuất hiện trong cột
Country) thì hệ thống xác định vị trí cột chứa đựng tên quốc gia đó và đưa ra tên thủ
đô tương ứng.
Cho ví dụ, với câu hỏi: “What is the capital of Italy?”, hệ thống sẽ sử dụng luật
đầu tiên và trả về kết quả là “Rome”. Một luật có thể cho phép hệ thống xử lý nhiều
câu hỏi như: “Print the capital of Italy”, “Could you please tell me what is the capital
of Italy?”, … Trong tất cả các trường hợp đó, câu trả lời được sinh ra là như nhau.
Theo luật thứ hai, bất kỳ câu hỏi của người sử dụng chứa đựng từ “capital”
được theo sau bởi từ “country” hệ thống sẽ trả về tên thủ đô của tất cả các quốc gia có
trong cơ sở dữ liệu.
Ví dụ, “what is the capital of each country?”, “List the capital of every
country?”, “Captial and country please.”, … sẽ được xử lý bởi luật thứ hai.
Lợi thế chính của hướng tiếp cận so khớp mẫu là tính đơn giản của nó và hệ
thống có thể dễ dàng thực thi. Ngoài ra, một số hệ thống so khớp mẫu thường thành
công trong việc đưa ra một câu trả lời hợp lý. Các hệ thống so khớp mẫu không nhất
thiết phải dựa trên các kỹ thuật đơn giản như được trình bày phía trên. Một số hệ
thống so khớp mẫu có khả năng thực hiện tốt trong những ứng dụng nhất định. Tuy
nhiên tính chất không sâu của phương pháp so khớp mẫu thường dẫn tới những kết
quả sai.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
20
2.2.2. Các hệ thống dựa trên cú pháp
Trong các hệ thống dựa trên cú pháp, câu hỏi của người sử dụng được phân tích thành
một cây cú pháp. Cây cú pháp được ánh xạ trực tiếp tới một biểu thức trong một số ngôn
ngữ truy vấn cơ sở dữ liệu. Một ví dụ điển hình của hướng tiếp cận này là Lunar [35].
Các hệ thống dựa trên cú pháp sử dụng một văn phạm để mô tả những cấu trúc
cú pháp có thể có của các câu hỏi. Ví dụ, hình 2-1 dưới đây đưa ra một số luật đơn
giản trong một hệ thống giống như Lunar.
S → NP VP
NP → Det N
Det → “what” | “which”
N → “rock” | “specimen” | “magnesium” | “radiation” | “light”
VP → V N
V → “contains” | “emits”
Hình 2-1: Văn phạm mô tả cấu trúc cú pháp câu
Các luật phía trên chỉ ra rằng một câu (S) chứa đựng một cụm danh từ (NP)
được theo sau bởi một cụm động từ (VP), trong đó một cụm danh từ bao gồm một từ
xác định (Determiner hay Det) được theo sau bởi một danh từ (N), từ xác định có thể
là “what” hoặc “which”, … Sử dụng những luật này, một hệ thống NLIDB có thể hiểu
rằng cấu trúc cú pháp của câu hỏi “which rock contains magnesium?” như được chỉ ra
trong cây cú pháp ở hình 2-2 sau đây:
Hình 2-2: Cây cú pháp trong một hệ thống dựa trên cú pháp
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
21
Sau đó, hệ thống NLIDB có thể ánh xạ một cây cú pháp ở hình 2-2 thành truy
vấn cơ sở dữ liệu sau đây (X là một biến):
(for_every X (is_rock X)
(contains X magnesium);
(printout X))
Sự ánh xạ này được thực hiện bởi các luật, và hoàn toàn dựa trên thông tin cú
pháp của cây phân tích. Hệ thống có thể sử dụng các luật ánh xạ trạng thái sau:
Ánh xạ của “which” là for_every X.
Ánh xạ của ―rock‖ là (is_rock X).
Ánh xạ của một cụm danh từ (NP) là Det‟ N‟, trong đó Det‟ và N‟ lần lượt là các
ánh xạ của từ xác định (Determiner) và danh từ. Do đó, ánh xạ của cây con NP là
for_every X (is _rock X).
Ánh xạ của “contains” là contains.
Ánh xạ của “magnesium” là magnesium.
Ánh xạ của một cụm động từ (VP) là V‟ X N‟, trong đó V‟ là ánh xạ của động từ
còn N‟ là ánh xạ của danh từ anh em với động từ. Bởi vậy, ánh xạ của cây con VP
là (contains X magnesium).
Ánh xạ của S là (NP‟ VP‟; (printout X)), trong đó NP‟ và VP‟ lần lượt là ánh xạ
của cây con NP và VP. Vì thế, ánh xạ của câu trong ví dụ của chúng ta như được chỉ ra
phía trên.
Các hệ thống NLIDB thường ghép nối tới các hệ thống cơ sở dữ liệu ứng dụng
cụ thể và các hệ thống cơ sở dữ liệu đó cung cấp các ngôn ngữ truy vấn cơ sở dữ liệu.
Thông thường rất khó khăn để đưa ra các luật ánh xạ, mà các luật này có thể ánh xạ
trực tiếp cây phân phân tích cú pháp tới một số biểu thức được biểu diễn trong một
ngôn ngữ truy vấn cơ sở dữ liệu, ví dụ như SQL.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
22
2.2.3. Các hệ thống sử dụng văn phạm ngữ nghĩa
Vì những hạn chế của kỹ thuật phân tích dựa trên cú pháp, các hệ thống sau đó đã cải
thiện bằng cách sử dụng văn phạm ngữ nghĩa. Quá trình trả lời câu hỏi vẫn còn được
thực hiện bằng cách phân tích câu hỏi thành cây cú pháp và ánh xạ cây cú pháp tới một
truy vấn cơ sở dữ liệu. Trong trường hợp này, sự khác biệt ở đây đó là các khái niệm
ngữ nghĩa không nhất thiết phải tương ứng với các khái niệm cú pháp. Một số luật ngữ
nghĩa được chỉ ra trong hình 2-3 sau đây:
S → Specimen_question | Spacecraft_question
Specimen_question → Specimen Emits_info | Specimen Contains_ info
Specimen → “which rock” | “which specimen”
Emits_info → “emits” Radiation
Radiation → “radiation” | “light”
Contain_ info → “contains” Substance
Substance → “magnesium” | “calcium”
Spacecraft_question → Spacecraft Depart_info | Spacecraft Arrive_info
Spacecraft → “which vessel” | “which spacecraft”
Depart_info → “was launched on” Date | “departed on” Date
Arrive_info → “returns on” Date | “arrives on” Date
Hình 2-3: Một văn phạm ngữ nghĩa
Chúng ta có thể thấy rằng một khái niệm ngữ nghĩa (Substance, Radiation,
Specimen question) không tương ứng với các thành phần ngữ pháp (cụm danh từ, cụm
động từ, câu).
Thông tin ngữ nghĩa về miền tri thức được gắn vào văn phạm. Các loại văn
phạm ngữ nghĩa thường được lựa chọn để tuân theo các ràng buộc về ngữ nghĩa.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
23
Ví dụ, các luật ngữ nghĩa phía trên không cho phép “light” theo sau động từ
“contains”, nhưng với các luật trong hình 2-1 thì cho phép “contains light”.
Hình 2-4: Cây cú pháp-ngữ nghĩa trong một văn phạm ngữ nghĩa
Các khái niệm ngữ nghĩa cũng có thể được chọn để tạo thuận lợi cho việc ánh
xạ cây cú pháp ngữ nghĩa thành các đối tượng cơ sở dữ liệu.
Cho ví dụ, trong cây cú pháp-ngữ nghĩa của câu “which rock contains
magnesium” như được chỉ ra trong hình 2-4, sự tồn tại của node Specimen_question
hướng hệ thống tìm kiếm các bảng cơ sở dữ liệu chứa đựng thông tin về “specimen”.
Tương tự như vậy, cây con Contains_info có thể hướng hệ thống tìm bảng
Contains_info và xác định hàng mà cột Substance là “magnesium”.
Nguyen K. và Le H. [26] giới thiệu một hệ thống NLIDB trả lời câu hỏi tiếng
Việt dựa trên văn phạm ngữ nghĩa. Hệ thống của họ gồm 2 module chính là QTRAN và
TGEN. QTRAN (Query Tranlator) chuyển một câu hỏi ngôn ngữ tự nhiên tới thành
một truy vấn SQL còn TGEN (Text Generator) sinh ra câu trả lời dựa trên bảng kết quả
truy vấn. QTRAN sử dụng một văn phạm phi ngữ cảnh hạn chế để phân tích câu hỏi
của người sử dụng thành cây cú pháp thông qua thuật toán CYK (Cocke-Younger-
Kasami). Sau đó, cây cú pháp được chuyển thành truy vấn SQL bằng cách sử dụng một
từ điển ánh xạ, nhằm xác định tên của các thuộc tính trong tiếng Việt, tên của các
thuộc tính trong cơ sở dữ liệu và tên của thực thể lưu trữ các thuộc tính này. Văn phạm
ngữ nghĩa được các tác giả tạo ra thông qua phân tích một lượng lớn các câu hỏi có
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
24
cách biễn đa dạng, chứa một tập các luật ánh xạ các cấu trúc ngữ nghĩa và cú pháp của
các câu hỏi của người sử dụng. Sau đây là một số luật được dùng trong văn phạm ngữ
nghĩa mà hệ thống sử dụng:
1.
2.
3.
4.
5. „chưanot yet/khôngno‟
6.
7.
8.
9.
Hình 2-5 dưới đây là cây cú pháp – ngữ nghĩa của câu hỏi: “Tìm các sinh viên
học ít nhất 2 môn do giáo viên A dạy?” mà hệ thống của Nguyen K. và Le H. [26] tạo
ra:
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
25
Hình 2-5: Cây cú pháp ngữ nghĩa của câu hỏi: “Tìm các sinh viên học ít nhất 2 môn do
giáo viên A dạy?”
Một số hệ thống sử dụng các văn phạm ngữ nghĩa khác là Planes[5], Eufid [34],
hệ thống dựa trên cấu trúc ngữ nghĩa [25] …
Văn phạm ngữ nghĩa được giới thiệu như là một hệ phương pháp kỹ thuật cho
phép tri thức ngữ nghĩa có thể dễ dàng được đưa vào trong hệ thống. Tuy nhiên, khi
các văn phạm ngữ nghĩa chứa đựng tri thức về một miền đặc biệt nào đó thì hệ thống
dựa trên hướng tiếp cận này rất khó có thể tái sử dụng trong các miền tri thức khác.
Điều này có nghĩa là một văn phạm ngữ nghĩa mới cần được tạo ra bất cứ khi nào hệ
thống NLIDB được sử dụng cho miền tri thức khác.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
26
Ví dụ, các luật ngữ nghĩa trong hình 2-3 là hoàn toàn vô dụng trong một ứng
dụng mà cơ sở dữ liệu chứa đựng thông tin về nhân viên và tiền lương. Trái lại, một số
thông tin của cú pháp trong phần 2.2, ví dụ như một câu chứa đựng một cụm danh từ
được theo sau bởi cụm động từ, vẫn còn được sử dụng trong một ứng dụng mà các câu
hỏi liên quan tới nhân viên và tiền lương của họ.
2.3. Chú giải ngữ nghĩa phục vụ phân tích câu hỏi trong các hệ
thống hỏi đáp
Sự phát triển của các kỹ thuật phân tích câu hỏi không song song với sự phát triển của
các hệ thống hỏi đáp . Các hệ thống trả lời câu hỏi phát triển từ các hệ thống miền
đóng (giải quyết những câu hỏi về một lĩnh vực nhất định) cho đến những hệ thống
miền mở (giải quyết những câu hỏi về tất cả mọi thứ), từ những hệ thống sử dụng cơ
sở dữ liệu (NLIDB) cho đến những hệ thống sử dụng cơ sở tri thức (web ngữ nghĩa,
Ontology). Tuy các kỹ thuật được trình bày ở phần 2.2 được sử dụng trong các hệ
thống NLIDB, nhưng chúng lại được phát triển, mở rộng và áp dụng trên hầu hết các
loại hệ thống trả lời câu hỏi. Phương pháp phân tích cú pháp của câu hỏi được dùng
trong cả các hệ thống miền mở như Falcon [10] hoặc [11] bằng cách sử dụng gán nhãn
từ loại (Part-of-Speech Tagging hay POS Tagging). Phương pháp so khớp mẫu được
dùng trong các hệ thống miền mở như trong [33][36].
Thời gian gần đây, phương pháp sử dụng chú giải ngữ nghĩa đã đem lại hiệu
quả cao trong phân tích câu hỏi. Hệ thống xử lý ngôn ngữ tự nhiên xây dựng các chú
giải được biết đến và được sử dụng nhiều nhất là GATE [40][45] (General
Architecture for Text Engineering). GATE được sử dụng trong rất nhiều hệ thống trả
lời câu hỏi như: Aqualog [20][21], QuestIO [5],…
Hệ thống Aqualog được giới thiệu bởi Vanessa Lopez và các tác giả khác là một
hệ thống trả lời câu hỏi được đánh giá rất cao trong thời điểm hiện nay. Aqualog lấy các
câu hỏi được biểu diễn trong ngôn ngữ tự nhiên và một Ontology như đầu vào, sau đó
trả về trả lời thu được từ những đánh dấu ngữ nghĩa phù hợp với Ontology có sẵn.
Kiến trúc Aqualog có thể được mô tả như một mô hình thác nước, trong đó câu
hỏi ngôn ngữ tự nhiên thông qua thành phần ngôn ngữ (Linguistic Component) được
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt
27
chuyển một tập các các biểu diễn dựa trên bộ ba trung gian được hiểu như là Query-
Triple. Sau đó, thành phần phục vụ tương tự quan hệ (Relation Similarity Service) lấy
đầu vào là các Query-Triple và xử lý chúng để sinh ra các truy vấn phù hợp với
Ontology được gọi là các Onto-Triple. Kiến trúc của Aqualog được chỉ ra trong hình
2-6 dưới đây:
Hình 2-6: Kiến trúc của Aqualog
Aqualog thực hiện phân tích ngữ nghĩa và cú pháp của câu hỏi thông qua việc
sử dụng các tài nguyên xử lý của GATE [40][45] cho tách từ, phân đoạn câu, gán nhãn
từ loại, cụm động từ trong thành phần ngôn ngữ. Khi một câu hỏi được hỏi, nhiệm vụ
của thành phần ngôn ngữ là chuyển từ ngôn ngữ tự nhiên tới định dạng bộ ba biểu diễn
trung gian Query-Triple. Một Query-Triple có dạng: <thuật ngữ chung, mối quan hệ,
từ thứ hai>, trong đó, “mối quan hệ” có thể thiếu tùy thuộc vào kiểu của câu hỏi. Đầu
ra khi sử dụng GATE là một tập các các chú giải ngữ nghĩa được liên kết với câu hỏi
đầu vào. Thông qua việc sử dụng văn phạm JAPE (Java Annotations Pattern Engine)
[40][45], AquaLog mở rộng tập các chú giải được trả về bởi GATE, bằng cách nhận
biết các thuật ngữ, các mối quan hệ, và kiểu của các câu hỏi.
Một số hệ thống khác không sử dụng GATE phân tích câu hỏi nhưng vẫn dựa
trên chú giải ngữ nghĩa là: START [14][15], PIQASso [2],…
Chương 3. GATE Nguyễn Quốc Đạt
28
Chƣơng 3. GATE
3.1. Giới thiệu GATE
GATE [40][45] là một kiến trúc, môi trường phát triển và là framework cho việc xây
dựng các hệ thống xử lý ngôn ngữ con người. Nó đã được phát triển tại trường đại học
Sheffield từ năm 1995, và được sử dụng cho rất nhiều dự án nghiên cứu và phát triển,
bao gồm trích chọn thông tin (Information Extraction hay IE) cho nhiều ngôn ngữ, cho
nhiều nhiệm vụ và nhiều khách hàng. Hình 3-1 dưới đây mô tả kiến trúc của GATE.
Hình 3-1: Kiến trúc của GATE
Chương 3. GATE Nguyễn Quốc Đạt
29
GATE có 3 kiểu thành phần chính:
Tài nguyên ngôn ngữ (Language Resources) chứa một số loại dữ liệu ngôn ngữ
như: các tài liệu, các tập dữ liệu (corpus), các ontology và cung cấp những dịch vụ
cho việc truy cập nó.
Tài nguyên xử lý (Processing Resources) là những nguồn mà đặc trưng của chúng
chủ yếu là theo chưong trình hoặc thuật toán như gán nhãn từ loại hay tách từ.
Tài nguyên trực quan (Visual Resources) là thành phần đồ hoạ hiển thị trên giao
diện người dùng.
Mối quan hệ ngữ nghĩa được GATE xử lý thông qua chú giải. Các chú giải ngữ
nghĩa (Annotation) được lưu trữ trong các cấu trúc được gọi là các tập chú giải. Các
tập chú giải cấu thành các tầng độc lập của chú giải trên toàn bộ nội dung của văn bản.
Một chú giải được định nghĩa bởi (hình 3-2):
Điểm bắt đầu (Start) là một ví trí trong nội dung tài liệu.
Điểm kết thúc (End) là một vị trí trong nội dung tài liệu.
Kiểu (Type) là một giá trị String.
Một tập các đặc trưng (Features) được biểu diễn giống như các cặp thuộc tính-giá
trị. Mỗi một đặc trưng (kiểu String) sẽ có một giá trị (kiểu đối tượng trong Java)
tương ứng.
ID là một giá trị Integer. ID của các chú giải là duy nhất trong một tập chú giải.
Chương 3. GATE Nguyễn Quốc Đạt
30
Hình 3-2: Chú giải ngữ nghĩa trong GATE
Chương 3. GATE Nguyễn Quốc Đạt
31
3.2. Trích chọn thông tin trong GATE
GATE cung cấp một tập các tài nguyên xử lý có thể được sử dụng lại cho các nhiệm vụ
xử lý ngôn ngữ tự nhiên(Natural Language Processing hay NLP), người sử dụng có
thể mở rộng hoặc thay thế các tài nguyên đó nếu cảm thấy cần thiết. Các tài nguyên
được ghép lại với nhau để tạo ra một hệ thống trích chọn thông tin có tên gọi là ANNIE
(A Nearly-New Information Extraction), nhưng chúng có thể được dùng một cách
riêng lẻ hoặc được kết hợp cùng nhau với các module mới để tạo ra những ứng dụng
mới.
Ví dụ, rất nhiều nhiệm vụ NLP có thể yêu cầu một bộ tách câu và bộ gán nhãn
từ loại mà không nhất thiết phải yêu cầu các tài nguyên đặc biệt cho nhiệm vụ IE như
một bộ chuyển đổi thực thể có tên (Named Entity Transducer). ANNIE được sử dụng
cho một loạt những nhiệm vụ IE và các nhiệm vụ khác, đôi khi nó còn kết hợp với tập
các module ứng dụng đặc biệt khác.
ANNIE bao gồm những tài nguyên xử lý chính sau đây: bộ tách từ, bộ tách câu,
bộ gán nhãn từ loại, từ điển địa lý (Gazetteer), bộ chuyển đổi hữu hạn trạng thái (dựa
trên các biểu thức chính quy được xây dựng bên trong GATE thông qua các chú giải
ngôn ngữ).
Bộ tách từ phân chia văn bản ra thành các từ đơn như các số, dấu chấm, các kí
hiệu và những từ thuộc những loại khác nhau (ví dụ như chữ cái đầu tiên viết hoa hoặc
tất cả các chữ cái đều viết hoa). Bộ tách từ không cần thiết phải sửa đổi cho những ứng
dụng khác nhau hoặc những loại văn bản khác nhau.
Bộ tách câu được sử dụng để chia văn bản thành những câu riêng biệt. Module
này cần thiết cho cho bộ gán nhãn. Cả bộ tách câu và bộ gán nhãn là các miền và ứng
dụng độc lập.
Bộ gán nhãn từ loại là tạo ra một nhãn từ loại như một chú giải cho mỗi từ hoặc
ký tự. Bộ gán nhãn và bộ tách câu là những thành phần không thể thiếu trong hệ thống
nhận dạng thực thể có tên (Named Entiy Recognition hay NER).
Chương 3. GATE Nguyễn Quốc Đạt
32
Gazetteer chứa đựng các danh sách, ví dụ như danh sách các thành phố, danh
sách các tổ chức, …. Những danh sách này được sử dụng đặc biệt để hỗ trợ nhiệm vụ
NER, mặc dù chúng có thể được sử dụng cho bất kì mục đích nào khác. Khi chạy
Gazetteer trên một văn bản, các chú giải có kiểu Lookup sẽ được tạo ra cho mỗi chuỗi
được khớp trong văn bản. Một chú giải Lookup sẽ chỉ được tạo ra nếu như khớp với
một mục từ trong từ điển. Bất cứ một chú giải Lookup nào có thể một hoặc hai đặc
trưng: majorType (bắt buộc phải có) và minorType (tùy chọn, có thể có hoặc không).
Bộ đánh dấu ngữ nghĩa bao gồm những luật được viết thủ công thông qua văn
phạm JAPE (Java Annotations Pattern Engine) [45]. Các luật miêu tả các mẫu để
khớp và kết quả được tạo ra là những chú giải. JAPE cung cấp bộ chuyển đổi hữu hạn
trạng thái trên các chú giải dựa vào biểu thức chính quy.
Chúng tôi xây dựng các module sử dụng JAPE trong phương pháp của mình.
Chương 3. GATE Nguyễn Quốc Đạt
33
3.3. JAPE
3.3.1. Giới thiệu về JAPE
Những chú giải được tạo ra cho đến giờ về bản chất chỉ là xâu hoặc các cụm từ. Việc
chuyển những chú giải sang bước tiếp theo và thêm vào một số ngữ nghĩa yêu cầu khả
năng xử lý các luật. Trong GATE, những luật xử lý được thao tác bởi công cụ xử lý
chú giải Java hay JAPE.
JAPE cho phép chúng ta nhận biết các biểu thức chính quy trên các chú giải
trong các tài liệu. Một văn phạm JAPE bao gồm một tập các pha, mỗi pha bao gồm
một tập các luật mẫu/hành động. Những pha này chạy liên tục và cấu thành những bộ
chuyển đổi hữu hạn trạng thái xác định toàn bộ các chú giải. Phần bên trái của các luật
(Left-hand-side hay LHS) chứa đựng một mẫu chú giải gồm các toán tử biểu thức
chính quy(ví dụ như: *, ?, +). Phần bên phải của các luật (Right-hand-side hay RHS)
bao gồm các câu lệnh thao tác chú giải.
3.3.2. Thiết lập lựa chọn
Khi bắt đầu mỗi văn phạm, một vài lựa chọn có thể được thiết lập.
Control (Điều khiển) – định nghĩa cách khớp khớp luật.
Debug (Sửa lỗi)- Khi được thiết lập, nếu như văn phạm chạy kiểu Appelt và có
nhiều hơn một sự so khớp, các xung đột sẽ được hiển thị trong cửa sổ thông báo.
Các chú giải đầu vào (Input) cần phải định nghĩa ngay khi bắt đầu mỗi văn
phạm. Nếu các chú giải không được định nghĩa, mặc định sẽ là Token, SpaceToken và
Lookup (nghĩa là những chú giải này sẽ được xét khi so khớp).
Chương 3. GATE Nguyễn Quốc Đạt
34
3.3.3. Khớp mẫu
Có 3 cách chính mà trong đó mẫu có thể được xác định thông qua kiểm tra giá trị các
đặc trưng của chú giải:
+ Xác định xâu trong văn bản, ví dụ {Token.string == "of"} xác định xâu ―of‖.
+ Xác định các đặc trưng(và các giá trị) của một từ (hoặc bất kỳ chú giải nào khác) ví
dụ {Token.kind == "number"}
+Xác định một kiểu chú giải từ Gazetteer, ví dụ {Lookup.minorType == month}.
Các toán tử (trong biểu thức chính quy) dưới đây có thể được sử dụng:
• | - hoặc
• * - lặp 0 hoặc nhiều lần
• ? - lặp 0 hoặc 1 lần
• + - lặp ít nhất 1 lần
Một toán tử có thể hoạt động trên bất kỳ những mẫu nào đặt trong hai dấu đóng
mở ngoặc tròn. Một mẫu đầy đủ phải được chú giải trong hai dấu đóng mở ngoặc tròn
và được theo sau bởi một nhãn. Một nhãn được chỉ rõ bởi một dấu hai chấm đằng
trước.
Ví dụ: ({Lookup.majorType == location} ) :loc sẽ có nhãn là loc.
Có thể có nhiều hơn một mẫu (và nhãn tương ứng) trong LHS của một luật, ví
dụ như:
({Lookup.majorType == jobtitle}):jobtitle
({TempPerson}):person
Các mẫu có thể được lồng nhau( nếu được gán nhãn chính xác), ví dụ:
Chương 3. GATE Nguyễn Quốc Đạt
35
(
({Lookup.majorType == jobtitle}):jobtitle
{TempPerson}
):person
3.3.3.1. Thành phần thay thế (Macro)
Macro còn có thể được sử dụng trong LHS của các luật. Thay vì biểu diễn thông tin
trong luật, nó sẽ được xác định trong một macro, sau đó macro có thể được gọi trong
luật. Lý do đơn giản chỉ là để tránh phải nhắc lại thông tin giống nhau trong một nhiều
luật. Các macro có thể được sử dụng bên trong các macro khác. Một macro đã sử dụng
trong một pha của một văn phạm không cần thiết phải xác định lại ở pha sau đó, nghĩa
là một luật có thể gọi một macro xác định trong một pha trước đo thuộc cùng một văn
phạm.
Ví dụ dưới đây chỉ ra một macro IPADDRESS sau đó được sử dụng trong một
luật. Thông thường, macro được viết bằng chữ hoa, mặc dù không cần thiết. Khi đã
được sử dụng trong luật, một macro phải được đặt trong cặp dấu ngoặc xoắn {} hoặc
ngoặc tròn ().
Macro: IPADDRESS
(
{Token.kind == number} {Token.string == "."}
{Token.kind == number} {Token.string == "."}
{Token.kind == number} {Token.string == "."} {Token.kind == number}
)
Rule: IP
({IPADDRESS}):ip --> ….
Chương 3. GATE Nguyễn Quốc Đạt
36
3.3.3.2. Ngữ cảnh trong văn phạm
Ngữ cảnh trước hoặc sau mỗi mẫu có thể được chỉ ra bằng cách đóng mở ngoặc nó
trong 2 dấu ngoặc tròn. Sự khác nhau giữa một mẫu được chú giải và một ngữ cảnh
không được chú giải đơn giản là sự có mặt của một nhãn, có nghĩa là một mẫu không
được gán nhãn sẽ có vai trò như một ngữ cảnh. Ví dụ, luật sau đây sẽ chú giải mẫu
được được khớp bởi YEAR (là một macro) nếu các từ “in” hoặc “ by” đứng trước nó.
Rule: YearContext1
({Token.string == "in"} | {Token.string == "by"}) (YEAR):date
3.3.4. Một ví dụ đơn giản về JAPE
RHS của luật chứa những thông tin về việc chú giải tới một mẫu cho trước. Thông tin
về mẫu được chuyển từ LHS của luật bằng cách sử dụng nhãn và sẽ được chú giải với
loại thực thể (theo sau nó). Cuối cùng, những đặc trưng và các giá trị tương ứng được
thêm vào chú giải.
Trong luật ví dụ dưới đây, nhãn là “loc”. RHS của luật là phần theo sau mũi
tên. Nhãn “loc” được chuyển tới RHS của luật và chú giải có kiểu Location được
thêm vào mẫu. Chú giải xác định hai đặc trưng, kind và rule với giá trị “city” và
“GazCity” tương ứng. Cả hai đặc trưng này đều tùy chọn. Đặc trưng đầu tiên được sử
dụng để đưa cho nhiều thông tin cụ thể hơn về chú giải, đó chính là một loại liên quan
của Location. Đặc trưng thứ hai được sử dụng các cho mục đích sửa lỗi. Kết quả chú
giải và các đặc trưng với giá trị tương ứng sẽ được hiện thị (cùng với xâu và các giá trị
bắt đầu, kiến thúc) trong bảng các chú giải tại GATE GUI ( giả định rằng văn phạm
pháp đã được chạy trên tài liệu và luật đã được sử dụng).
Rule: GazCity
({Lookup.minorType == city}):loc
--> :loc.Location = {kind= “city”, rule= “GazCity”}
Chương 3. GATE Nguyễn Quốc Đạt
37
3.3.5. Sử dụng độ ƣu tiên
Mỗi một pha văn phạm sẽ có thể có một trong năm kiểu điều khiển: “brill”, “all”,
“once”, “first” và “applet”. Các kiểu này phải được xác định khi bắt đầu mỗi văn
phạm. Dùng cho nhiệm vụ NER kiểu ―appelt‖ là thích hợp nhất. Khi viết các văn
phạm JAPE cho các nhiệm vụ khác, các kiểu còn lại thường hiệu quả hơn.
Kiểu “brill” nếu nhiều luật khớp từ cùng một ví trí trong tài liệu thì sẽ thực thi
tất cả các luật đó. Kiểu “all” cho phép tất cả các luật được khớp từ mọi ví trí trong tài
liệu đều được thực thi. Kiểu “once” thực thi duy nhất một luật được khớp, bỏ qua tất
cả pha Jape vào sau. Kiểu “first” thực thi luật đầu tiên bắt đầu khớp với một vị trí
trong tài liệu.
Kiểu “appelt” xét sự so khớp dài nhất. Nếu nhiều luật được khớp từ cùng một
ví trí trong tài liệu, chỉ có duy nhất một luật là được thực thi theo nguyên tắc sau đây:
Luật tạo ra được sự so khớp dài nhất được lựa chọn.
Nếu nhiều luật cùng tạo ra sự so khớp dài nhất, lựa chọn một luật với độ ưu tiên
cao nhất.
Nếu nhiều luật có cùng độ ưu tiên, thì luật đầu tiên trong văn phạm JAPE được lựa
chọn.
Tùy chọn khai báo độ ưu tiên(là một số nguyên dương) sẽ được liên kết tới mỗi
luật. Số càng lớn thì độ ưu tiên càng cao. Mặc định độ ưu tiên cho tất cả các luật là -1.
3.3.6. Sử dụng Java cho JAPE
Giới hạn của văn phạm JAPE là: Không thể, thêm, xóa, sửa một đặc trưng của một chú
giải có sẵn. Hoặc không thể xóa một chú giải có sẵn.
Sử dụng Java cho JAPE có thể giải quyết các vấn đề nêu trên. Ví dụ áp dụng
nhúng mã Java vào JAPE được mô tả ở phụ lục A.
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
38
Chƣơng 4. Phƣơng pháp phân tích câu hỏi
cho hệ thống hỏi đáp tiếng Việt
4.1. Kiến trúc hệ thống
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
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
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
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
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.
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
41
Hình 4-3: Đầu ra của module phân tích câu hỏi tiếng Việt
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
42
4.2. Tiền xử lý
Module tiền xử lý xác định lại cụm từ dùng để hỏi, từ loại của một số từ đặc biệt, để
đưa ra những kết quả chú giải ngữ nghĩa với các đặc trưng phù hợp, phục vụ cho các
module sau đó.
Chúng tôi sử dụng GATE [40][45]để thực hiện quá trình phân tích một câu
hỏi ngôn ngữ tự nhiên thông qua JAPE. Một thành phần tích hợp có tên là
Coltech.NLP.Tokenizer được Nguyễn Bá Đạt [43] đóng gói cho GATE dựa trên bộ
phân đoạn Tiếng Việt sử dụng gán nhãn từ loại của Phạm Đức Đăng [44]. Khi sử
dụng thành phần tích hợp này, có một kiểu chú giải TokenVn cho mỗi từ trong
tiếng Việt với các đặc trưng category, kind, string được sinh ra. Trong đó,
category với giá trị tương ứng là xâu biểu diễn nhãn từ loại, kind nhận giá trị là
xâu ―word” và string tương ứng với xâu ký tự biểu diễn từ tiếng Việt. Hình 4-4
mô tả giao diện trong GATE khi sử dụng Coltech.NLP.Tokenizer. Ngoài ra còn
kiểu chú giải Split được tạo ra để chú giải cho các dấu tách câu như: dấu hỏi (?),
dấu chấm (.), dấu phảy (,), dấu chấm than (!), …
Hình 4-4: Giao diện GATE khi sử dụng Coltech.NLP.Tokenizer
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
43
Trong các thành phần phân tích câu hỏi của các hệ thống hỏi đáp tiếng Anh
thường không có sự xuất hiện của module Tiền xử lý. Một trong những lý do giải thích
cho sự có mặt của module Tiền xử lý trong thành phần phân tích câu hỏi tiếng Việt là
vì các bộ tách từ tiếng Việt hiện nay và cả bộ tách từ được sử dụng trong
Coltech.NLP.Tokenizer được tạo ra trên tập dữ liệu văn bản chuẩn, khi áp dụng bộ tách
từ cho câu hỏi thì kết quả còn chưa tốt.
Ví dụ như trong hình 4-4, trong ngôn ngữ tự nhiên “phải không” là một từ để
hỏi, nhưng khi áp dụng bộ tách từ thì “phải không” bị tách thành 2 từ “phải” và
“không”, điều đó có nghĩa là “phải không” là một cụm từ. Vấn đề này hoàn toàn
tương tự với nhiều từ để hỏi khác như: “đúng không”, “ở đâu”, “khi nào”, “lúc nào”,
“cho biết”, “người nào”, “như thế nào”, “tại làm sao”, “cái gì”…
4.2.1. Xác định cụm từ để hỏi chuẩn trong câu hỏi ngôn ngữ tự nhiên
Vì lý do nêu trên, xác định lại chính xác cụm từ để hỏi là một nhiệm vụ quan trọng. Để
thực hiện, chúng ta có thể áp dụng cách nhúng mã Java vào JAPE (Mã chương trình
nhúng Java vào JAPE để xác định lại một số từ để hỏi được đặt trong phụ lục A).
Có hai phương án được đưa ra để giải quyết vấn đề này:
Phƣơng án thứ nhất: Chúng ta tạo ra một luật mà LHS khớp với tất cả các từ
để hỏi có thể có trong tự nhiên (vì số lượng từ để hỏi là hạn chế, trong tiếng Anh, tập
từ để hỏi chuẩn gồm có: who, when, what, where, why, how). Sau đó, các cụm từ
(hoặc từ) được chú giải bởi kiểu TokenVn với các đặc trưng category có giá trị tương
ứng là xâu “Tudehoi” biểu diễn nhãn từ loại, đặc trưng string với giá trị tương ứng là
xâu biểu diễn từ để hỏi.
Phƣơng án thứ hai: Thay vì tạo ra một luật, chúng ta tạo ra nhiều luật mà mỗi
luật có LHS khớp với một nhóm các cụm từ (hoặc từ) để hỏi với phân loại ngữ nghĩa
câu hỏi như: hỏi đúng sai, hỏi về thời gian, hỏi về địa điểm, hỏi về người, hỏi số
lượng… Sau đó, chúng ta tạo chú giải ngữ nghĩa cho các nhóm này, kiểu chú giải
TokenVn (trong hình 4-5) cho mỗi cụm từ (hoặc từ) trong nhóm, với đặc trưng type
nhận các giá trị khác nhau đối với mỗi nhóm, đặc trưng category nhận giá trị
“Tudehoi”, đặc trưng “string” là xâu tương ứng biểu diễn từ để hỏi.
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
44
Chúng ta có thể thấy rằng, sử dụng phương án thứ hai chính là phân loại câu hỏi
nhưng ở mức độ đơn giản nhất: phân loại chỉ dựa trên các từ để hỏi chuẩn. Và chúng
tôi lựa chọn phương án này để thực hiện.
Hình 4-5: Một số từ để hỏi đã đƣợc xác định lại bằng cách sử dụng JAPE
Chúng tôi xác định một số nhóm dưới đây chứa các cụm từ (hoặc từ) để hỏi mà
có cùng phân loại về mặt ngữ nghĩa:
Nhóm các cụm từ (hoặc từ) để hỏi mà câu trả lời mong muốn ở dạng Đúng hoặc
Sai như: phải không, đúng không, có đúng là, có phải là, có đúng, có phải, Có
đúng, Có phải, Có đúng là, Có phải là.
Kiểu chú giải TokenVn được tạo ra cho các cụm từ (hoặc từ) này, có đặc trưng type
nhận giá trị là “YesNo”, đặc trưng category nhận giá trị là ―Tudehoi‖, đặc trưng
string là xâu ký tự biểu diễn cụm từ (hoặc từ).
Nhóm các cụm từ (hoặc từ) dùng để hỏi về thời gian như: bao giờ, Bao giờ, ngày
nào, Ngày nào, là ngày nào, vào ngày nào, lúc nào, Lúc nào, vào lúc nào, là lúc
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
45
nào, khi nào, Khi nào, là khi nào, thời gian nào, là thời gian nào, vào thời gian
nào, dịp nào, Dịp nào, hồi nào, Hồi nào, là dịp nào, vào hồi nào, …
Kiểu chú giải TokenVn được tạo ra cho các cụm từ (hoặc từ) này, có đặc trưng type
nhận giá trị là “When”, đặc trưng category nhận giá trị là ―Tudehoi‖, đặc trưng
string là xâu ký tự biểu diễn từ hoặc cụm từ.
Nhóm các cụm từ (hoặc từ) dùng để hỏi về số lượng như: “bao nhiêu”, “là bao
nhiêu”, “số lượng”, có kiểu chú giải TokenVn được tạo ra cho các cụm từ (hoặc
từ) này, có đặc trưng type nhận giá trị là “Many”, đặc trưng category nhận giá trị là
―Tudehoi‖, đặc trưng string là xâu ký tự biểu diễn từ hoặc cụm từ.
Nhóm các cụm từ (hoặc từ) dùng để hỏi về người như: ―ai”, “ai nào”, “người
nào”, “những ai”, “những người nào”, “là ai”, “là ai nào”, “là người nào”, “là
những ai”, là những ai nào” “là những người nào”.
Kiểu chú giải TokenVn được tạo ra cho các cụm từ (hoặc từ) này, có đặc trưng type
nhận giá trị là “Who”, đặc trưng category nhận giá trị là ―Tudehoi‖, đặc trưng
string là xâu ký tự biểu diễn từ hoặc cụm từ.
Nhóm các cụm từ (hoặc từ) dùng để hỏi về địa điểm như: ở đâu, Ở đâu, là ở đâu, là
ở đâu nào, nơi nào, Nơi nào, ở nơi nào, là nơi nào, ở nơi nào đó, là nơi nào đó, địa
điểm nào, chỗ nào, là chỗ nào, là chỗ nào đó,…
Kiểu chú giải TokenVn được tạo ra cho các cụm từ (hoặc từ) này, có đặc trưng type
nhận giá trị là “Where”, đặc trưng category nhận giá trị là ―Tudehoi‖, đặc trưng
string là xâu ký tự biểu diễn từ hoặc cụm từ.
Nhóm các cụm từ (hoặc từ) được dùng như mệnh lệnh: “cho biết”, “Cho biết”,
“Kể ra”, “kể ra”, “tìm”, “Tìm”, “Tìm ra”, “tìm ra”, “liệt kê”, “Liệt kê”, “Danh
sách”, “danh sách”, “đưa ra”, “Đưa ra”, “hiện ra”, “Hiện ra”, “chỉ ra”, “Chỉ
ra”.
Kiểu chú giải TokenVn được tạo ra cho các cụm từ (hoặc từ) này, có đặc trưng type
nhận giá trị là “List”, đặc trưng category nhận giá trị là ―Tudehoi‖, đặc trưng string
là xâu ký tự biểu diễn từ hoặc cụm từ.
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
46
Nhóm các từ hoặc cụm từ dùng để hỏi các thức, nguyên nhân: “thế nào”, “là thế
nào”, “như thế nào”, “làm sao”, “tại sao”, “là tại làm sao”, “là sao”.
Kiểu chú giải TokenVn được tạo ra cho các cụm từ (hoặc từ) này, có đặc trưng type
nhận giá trị là “HowWhy”, đặc trưng category nhận giá trị là ―Tudehoi‖, đặc trưng
string là xâu ký tự biểu diễn từ hoặc cụm từ.
Nhóm các từ hoặc cụm từ dùng để hỏi các thức, nguyên nhân: “cái gì”, “Cái gì”,
“là gì”, “Là gì”, “những gì”, “Những gì”, “những cái gì”, “Những cái gì”, “là
cái gì”, “Là cái gì”, “là những cái gì”.
Kiểu chú giải TokenVn được tạo ra cho các cụm từ (hoặc từ) này, có đặc trưng type
nhận giá trị là “What”, đặc trưng category nhận giá trị là ―Tudehoi‖, đặc trưng
string là xâu ký tự biểu diễn từ hoặc cụm từ.
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
47
4.2.2. Tạo chú giải ngữ nghĩa cho các từ đặc biệt
Đối với những cụm từ hay được viết tắt như “khoa học máy tính” được viết thành
“KHMT” hoặc những từ đặc biệt xuất hiện trong mỗi miền tri thức, thì bộ tách từ dựa
trên gán nhãn từ loại đem lại kết quả phân tích câu hỏi không như mong muốn.
Hình 4-6: Kiểu chú giải TokenVn cho những từ đặc biệt
Ví dụ hình 4-6 :
“sinh viên nào học lớp K50 công nghệ phần mềm?”
Từ ―K50‖ chỉ xuất hiện trong một miền tri thức nhất định, có kiểu chú giải
TokenVn với đặc trưng category nhận giá trị là xâu ―X‖, nghĩa là không xác định từ
loại. Điều này khiến cho việc phân tích câu hỏi trở nên khó khăn hơn và gây ra mất
thông tin, chẳng hạn: không thể nhận biết đuợc “lớp K50 công nghệ phần mềm” là
một cụm danh từ (Trong phần 4.3.1).
Mặt khác, hầu như những từ viết tắt hoặc những từ đặc biệt chỉ xuất hiện trong
miền tri thức nhất định đều là nằm trong một cụm danh từ. Ví dụ: “lớp KHMT”,
“khóa K50”,... Bởi vậy, chúng ta thay đổi giá trị đặc trưng category của chú giải
TokenVn thành một giá trị thích hợp. Gán lại giá trị cho đặc trưng này hoàn toàn phụ
thuộc vào tri thức của người kỹ sư. Trong phương pháp của mình, chúng tôi đặt lại giá
trị cho đặc trưng category là “Np” có nghĩa là danh từ riêng như hình 4-7 sau đây:
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
48
Hình 4-7: Kiểu chú giải TokenVn sau khi đã thay đổi giá trị của đặc trƣng category
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
49
4.3. Phân tích cú pháp
Module phân tích cú pháp nhận đầu vào là câu hỏi sau khi đã được xử lý bởi module
tiền xử lý. Module này có nhiệm vụ xác định cụm danh từ trong câu hỏi, và xác định
những mối quan hệ được dùng để liên kết giữa các cụm danh từ hoặc giữa cụm danh từ
và từ để hỏi.
4.3.1. Xác định cụm danh từ trong câu hỏi
Thông thường, cụm danh từ chứa đựng khái niệm (lớp đối tượng) hoặc thực thể (đối
tượng) trong thế giới tự nhiên.
Ví dụ xét câu hỏi: “những sinh viên của lớp khoa học máy tính là ai?” cụm
danh từ “những sinh viên” chứa đựng khái niệm “sinh viên”, cụm danh từ “lớp khoa
học máy tính” lại là một thực thể.
Khi một cụm danh từ được xác định, một kiểu chú giải Cumdanhtu với hai đặc
trưng category và type được tạo ra giống như hình 4-8 dưới đây:
Hình 4-8: Cụm danh từ trong một số câu hỏi tiếng Việt
Cấu tạo cụm danh từ gồm có 3 thành phần: ngoài thành phần tố trung tâm là
danh từ còn có thành tố phụ trước và thành tố phụ sau. Cụm danh từ có thể thiếu thành
tố phụ trước hoặc thành tố phụ sau. Thông qua việc tham khảo [39][38] và phân tích
trên nhiều câu hỏi, chúng tôi đưa ra cấu tạo một cách khá ổn định của một cụm danh từ
trong câu hỏi tiếng Việt dựa trên bảng nhãn từ loại (phụ lục B) được thể hiện như trong
bảng 4-1 dưới đây:
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
50
Bảng 4-1: Cấu tạo của cụm danh từ trong câu hỏi tiếng Việt
Thành tố phụ trước Trung tâm Thành tố phụ sau
-3 -2 -1 0 1 2
Từ chỉ tổng
lượng
Số từ
Định từ “cái”
hoặc “chiếc”
Danh từ Tính từ
Đại từ chỉ
định
Tất cả các sinh viên giỏi ấy
Những cái bàn đen đó
Chiếc bàn này
Ở vị trí -3 là những từ mang ý nghĩa tổng lượng như: tất cả, cả, …
Số từ ở vị trí -2 thường là từ chỉ số lượng chính xác như: một, hai, … hoặc số từ chỉ
số lượng không xác định như: vài, ba, dăm, … Hoặc phụ từ chỉ mang hàm ý tập
hợp như: những, các. Hoặc phụ từ mang hàm ý phân phối như : mọi, mỗi, từng,…
Hoặc là từ: mấy.
Ở vị trí -1 là định từ: cái, chiếc.
Ở vị trí 0 là danh từ, đó có thể là dạng danh từ đơn, hoặc dạng danh từ ghép. Dạng
đơn thì có thể là: danh từ đơn thể, danh từ tổng thể, danh từ trừu tượng, danh từ
riêng (phụ lục B). Dạng ghép thì có thể là danh từ loại thể được theo sau bởi một
(hoặc nhiều) danh từ ở dạng từ đơn hoặc nhiều danh từ đơn liền nhau.
Ở vị trí 1 là tính từ.
Ở vị trí 2 là đại từ chỉ định như: này, kia, ấy, đó.
Vị trí số 0 là bắt buộc phải có, các vị trí khác có thể có hoặc không. Chúng ta
cùng thống nhất là trong phần còn lại của khóa luận: nếu chỉ có mỗi vị trí 0 được khớp
trong khi các vị trí còn lại không được khớp, chúng ta vẫn coi đó là cụm danh từ. Đối
chiếu với nhãn từ loại, chúng ta sẽ bảng phân tích cấu trúc cụm danh từ được biểu diễn
trong văn phạm JAPE như bảng 4-2 sau đây:
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
51
Bảng 4-2: Cấu trúc cụm danh từ đƣợc mô tả trong văn phạm JAPE
-3
Từ chỉ
tổng lượng
({TokenVn.category == “Pn”}) ? Đại từ số lượng
-2 Số từ
( {TokenVn.category == “Nu”} |
{TokenVn.category == “Nn”} ) ?
Danh từ chỉ đơn vị
Danh từ số lượng
-1
Định từ:
―cái‖, ―chiếc‖
( {TokenVn.string == “cái”} |
{TokenVn.string == “chiếc”} ) ?
0 Danh từ
({TokenVn.category == “Nt”}) ?
(
{TokenVn.category == “Nc” } |
{TokenVn.category == “Ng” } |
{TokenVn.category == “Na” } |
{TokenVn.category == “Np”}
) +
Danh từ loại thể
Danh từ đơn thể
Danh từ tổng thể
Danh từ trừu tượng
Danh từ riêng
1 Tính từ
( {TokenVn.category == “Aa”} |
{TokenVn.category == “An”} ) ?
Tính từ hàm chất
Tính từ hàm lượng
2
Đại từ
chỉ định
( {TokenVn.string == "này"} |
{TokenVn.string == "kia"} |
{TokenVn.string == "ấy"} |
{TokenVn.string == "đó"} ) ?
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
52
Một trường hợp xảy ra đối với câu hỏi mang ý nghĩa so sánh như:
“Sinh viên nào có điểm lớn hơn 7?”
Có hai cụm danh từ trong câu hỏi này là: “sinh viên” và “điểm lớn”. Cụm từ
“điểm lớn” (“điểm” là danh từ đơn thể, “lớn” là tính từ) làm mất đi thông tin ngữ
nghĩa của câu hỏi, đây không còn là câu so sánh nữa.
Để giải quyết vấn đề này chúng ta sẽ tạo ra một chú giải cho các cụm từ mang ý
nghĩa so sánh. Đối với các cụm từ mà tính từ được theo sau bởi từ “hơn” hoặc từ
“nhất”, chúng ta sẽ sử dụng kiểu chú giải TokenVn trên cụm từ dạng này, với đặc
trưng string là xâu biểu diễn cụm từ, category nhận giá trị la “Tusosanh”, type nhận
một trong hai giá trị “Tương đối” hoặc “Tuyệt đối” phụ thuộc vào từ đi sau tính từ là
từ “hơn” hay là từ “nhất”. Như vậy một từ đã đuợc tạo ra mang ý nghĩa so sánh thay
cho cụm từ ban đầu.
Trong câu hỏi “Sinh viên nào có điểm lớn hơn 7?”, chúng ta sẽ có “lớn hơn”
được chú giải bởi kiểu TokenVn với đặc trưng category là ―Tusosanh”. Và câu hỏi
này có hai từ “sinh viên” và “điểm” được chú giải bởi kiểu Cumdanhtu như được chỉ
ra ở hình 4-9 sau:
Hình 4-9: Từ mang ý nghĩa so sánh trong câu hỏi tiếng Việt
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
53
Song song với việc xác định cụm danh từ, chúng tôi tạo một kiểu chú giải là
Danhngu (trong hình 4-10) để khớp với thành phần trung tâm của cụm danh từ và tính
từ theo đằng sau (nếu có). Từ hoặc cụm từ được chú giải bởi kiểu Danhngu sẽ là một
thực thể hoặc là một khái niệm.
Hình 4-10: Một ví dụ về kiểu chú giải Danhngu
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
54
4.3.2. Mối quan hệ
Chúng tôi định nghĩa mối quan hệ là một cụm từ (thuộc tính) được dùng để liên kết
giữa các cụm danh từ chứa đựng khái niệm (lớp đối tượng) hoặc chứa đựng thực thể
(đối tượng), hoặc liên kết cụm danh từ với từ (hoặc cụm từ) dùng để hỏi.
Xét câu hỏi: “Những sinh viên có quê ở Hà Tây là ai?”. Module phân tích cú
pháp xác định được ―Những sinh viên‖, “quê”, “Hà Tây”, là cụm danh từ. Cụm từ
“có quê ở” liên kết hai cụm danh từ “Những sinh viên” và “Hà Tây”, do đó “có quê
ở” được coi là một mối quan hệ.
Với câu hỏi: “ai là sinh viên của lớp khoa học máy tính?”. Module phân tích cú
pháp sẽ xác định được mối quan hệ “là sinh viên của” liên kết cụm danh từ “lớp khoa
học máy tính” và từ để hỏi “ai”.
Với câu hỏi, “ai học ở lớp khoa học máy tính?”. Module phân tích cú pháp sẽ
xác định được mối quan hệ “học ở” liên kết cụm danh từ “lớp khoa học máy tính ” và
tử để hỏi “ai”.
Khi một mối quan hệ được xác định, nó sẽ được chú giải bởi kiểu Moiquanhe
với các đặc trưng type và category như hình 4-11 sau đây:
Hình 4-11: Ví dụ về “mối quan hệ”
Thông qua phân tích các câu hỏi, chúng tôi định nghĩa cấu trúc của một mối
quan hệ trong câu hỏi theo 4 dạng sau đây:
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
55
Dạng 1:
(Động_từ) + Cụm_danh_từ Giới_từ (Động_từ)?
Chúng ta cùng xem xét câu hỏi: “những sinh viên có quê ở Hà Tây là ai?” thì
“có quê ở” là một mối quan hệ, bởi vì cụm từ này bắt đầu bằng một động từ sau đó là
một cụm danh từ và cuối cùng là một giới từ. Nó liên kết cụm danh từ “những sinh
viên” và “Hà Tây”.
Dạng 2:
(Động_từ) + Giới_từ (Động_từ)?
Với câu hỏi: “ai học ở lớp khoa học máy tính?”, có mối quan hệ “học ở” bởi vì
có một động từ (“học”) được theo sau bởi một giới từ (“ở”). Nó liên kết cụm danh từ
“lớp khoa học máy tính” và từ để hỏi “ai”.
Dạng 3:
Chúng ta cùng xem xét câu hỏi: “Nguyễn Quốc Đạt và Nguyễn Quốc Đại có
quê ở Hà Tây phải không?”. Hình 4-12 đưa ra kết quả tách từ của câu hỏi. Chú giải
TokenVn tương ứng với mỗi từ được tạo ra.
Hình 4-12: Tách từ trong câu hỏi: “Nguyễn Quốc Đạt và Nguyễn Quốc Đại có quê ở Hà
Tây phải không?”
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
56
Bộ tách từ đưa ra kết quả: “có” là phụ từ khẳng định, phủ định, “quê” là một
tính từ. Trong khi đó, “có quê ở” liên kết cụm danh từ ―Nguyễn Quốc Đại‖ với ―Hà
Tây”. Bởi vậy, trong trường hợp này chúng ta có cấu trúc của mối quan hệ như sau:
(“có” | Động_từ) + Tính_từ Giới_từ (Động_từ)?
Điều này có nghĩa là: một cụm bắt đầu bởi một (hoặc nhiều) từ “có” hoặc một
(hoặc nhiều) động từ được theo sau bởi một tính từ, và tiếp theo là một giới từ sau đó
là một (hoặc không) động từ, thì cụm từ đó được coi là một mối quan hệ.
Nguyên nhân: bộ tách từ sử dụng gán nhãn từ loại phụ thuộc vào xác suất xuất
hiện của một từ trong ngữ cảnh. Trong ngữ cảnh này nó có thể có kiểu từ loại này,
trong ngữ cảnh khác thì có kiểu từ loại khác. Một từ trong ngữ cảnh này có thể là danh
từ, cùng một từ đó nhưng trong ngữ cảnh khác lại là tính từ.
Dạng 4: Cấu tạo mối quan hệ được mô tả như sau:
Một cụm bắt đầu bởi từ “có” được theo sau là một cụm danh từ hoặc tính từ và
cuối cùng là từ “là” được coi là một mối quan hệ.
Ví dụ, “những ai có quê là Hà Tây?” mối quan hệ “có quê là” liên kết cụm từ
để hỏi “những ai” và cụm danh từ “Hà Tây”.
Bất cứ cụm từ nào được khớp với một trong 4 dạng nêu trên thì đều được chú
giải bằng bởi kiểu Moiquanhe với hai đặc trưng type và category. Đặc trưng type được
gán giá trị là “Cụm danh từ”, đặc trưng string biểu diễn xâu tương ứng, đặc trưng
category của các cụm được khớp bởi dạng 2 nhận giá trị là “REL_Verb”, đối với các
dạng còn lại thì category có giá trị là “REL_Noun”. Hình 4-13 dưới đây là một ví dụ
về kiểu chú giải Moiquanhe.
―có‖ (Cụm_danh_từ | Tính_từ) ―là‖
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
57
Hình 4-13: Kiểu chú giải Moiquanhe
Chú ý rằng, các từ “là”, “có” và “tồn tại” sẽ không được chú giải bởi kiểu
Moiquanhe.
Với câu hỏi: “Nguyễn Quốc Đạt có mã sinh viên là gì?”, thì “có mã sinh viên
là” không được chú giải bởi kiểu Moiquanhe, vì ―là gì” đã được chú giải bằng kiểu
TokenVn trong bước tiền xử lý.
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
58
4.4. Phân tích ngữ nghĩa
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”.
Hình 4-14: Một ví dụ về kiểu chú giải Tudehoi
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
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
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
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:
{TokenVn.type == “List”} {Cumdanhtu.category == “Cụm danh từ”}
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
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.
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
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.
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
63
4.4.2. So khớp mẫu
Nhìn chung, mỗi câu hỏi ngôn ngữ tự nhiên đều sử dụng một cấu trúc ngữ nghĩa đặc
biệt. Mỗi vị trí trong câu hỏi được sử dụng với một mục đích nhất định, ví dụ lưu trữ
thực thể (đối tượng), một khái niệm (lớp đối tượng), một giá trị. Thông qua phân tích
một lượng lớn các câu hỏi, chúng tôi nhận thấy rằng mặc dù các câu hỏi có nhiều cách
biểu diễn khác nhau nhưng chúng luôn theo một nguyên tắc cấu tạo cụ thể.
Chúng tôi định nghĩa một số nguyên tắc cấu tạo (gọi là mẫu) câu hỏi. Mỗi một
câu hỏi đi vào quá trình so khớp mẫu. Nếu cấu tạo của câu hỏi khớp với một mẫu đã
được định nghĩa, quá trình so khớp mẫu sẽ sinh ra một bộ biểu diễn trung gian gồm có
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:
(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, ―Thuật ngữ 2‖ và “Thuật ngữ 3‖
(nếu có) là các thực thể. “Mối quan hệ” được dùng để liên kết các thuật ngữ.
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.
Nếu chỉ có một phần câu hỏi được khớp với một mẫu nào đó, quá trình này sẽ
phân tích trên phần câu hỏi được khớp.
Ví dụ về bộ biểu diễn trung gian của câu hỏi được chỉ ra trong hình 4-15 sau đây:
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
64
Hình 4-15: Ví dụ về bộ biểu diễn trung gian của câu hỏi
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
65
4.4.2.1. Cấu tạo của câu hỏi
Cấu tạo của một câu hỏi đơn giản thường chứa đựng một mối quan hệ. Thông thường
những câu hỏi như vậy chứa đựng hai cụm danh từ và mối quan hệ sẽ liên kết hai cụm
danh từ đó, hoặc một mối quan hệ giữa một cụm danh từ và một cụm từ để hỏi có kiểu
chú giải Tudehoi được sinh ra từ module Phân loại câu hỏi với đặc trưng category là
―QU Entity‖ hoặc “QU List” hoặc “QU ManyClass”
Ví dụ như: “những sinh viên học lớp khoa học máy tính là ai?”, chúng ta sẽ
thấy rằng, với câu hỏi này, mối quan hệ “học” liên kết cụm danh từ “những sinh viên”
chứa đựng khái niệm trong nó và cụm danh từ “lớp khoa học máy tính” chứa đựng
thực thể trong nó.
Hay như câu hỏi: “môn học được học bởi Nguyễn Quốc Đạt là gì?” hoàn toàn
tương tự, mối quan hệ “được học bởi” liên kết cụm danh từ chứa khái niệm “môn
học” và cụm danh từ chứa thực thể “Nguyễn Quốc Đạt”.
Hoặc như câu hỏi “sinh viên nào có quê ở Hà Tây?” chứa đựng mối quan hệ
“có quê ở” liên kết cụm từ được chú giải bởi kiểu Tudehoi dùng để hỏi “sinh viên
nào” và cụm danh từ “Hà Tây”, nói một cách chính xác hơn “có quê ở” liên kết cụm
danh từ “sinh viên” và cụm danh từ “Hà Tây”.
Chúng ta cần chú ý một số câu hỏi dạng như “Quê của sinh viên nào ở Hà
Tây?”, mối quan hệ ở đây là “Quê” liên kết cụm từ được chú giải bởi kiểu Tudehoi
dùng để hỏi “sinh viên nào” và cụm danh từ “Hà Tây”.
Một các khái quát, chúng tôi quan niệm rằng: “A của B” và “B có A”, trong đó
A và B được chú giải bởi kiểu Cumdanhtu là tương đương nhau, và có nghĩa là mối
quan hệ A sẽ liên kết B với một cụm danh từ hoặc một cụm từ để hỏi nào đó.
Để tạo ra một biểu diễn chung cho các câu hỏi trong các ví dụ nêu trên, chúng
tôi định nghĩa một bộ biểu diễn thô cho một câu hỏi đơn giản là bộ:
(Cụm từ 1, mối quan hệ, Cụm từ 2, Cụm từ 3)
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
66
Trong đó, “Cụm từ 1”, “Cụm từ 2” và “Cụm từ 3” (nếu có) là cụm danh từ
hoặc cụm từ để hỏi có chứa cụm danh từ bên trong, chúng được liên kết với nhau
thông qua ―mối quan hệ”.
Thông qua cách nhìn nhận về cấu tạo câu hỏi, chúng ta có thể biết được bộ biểu
diễn thô của câu hỏi là như thế nào. Dựa vào bộ biểu diễn thô như trên, chúng tôi phân
chia cấu tạo của một câu hỏi vào một trong dạng dưới đây:
Normal: một câu hỏi có cấu tạo dạng Normal nếu như bộ biểu diễn thô cho câu hỏi
có dạng: (Cụm từ 1, mối quan hệ, Cụm từ 2, ?)
Ví dụ: “những sinh viên học lớp khoa học máy tính là ai?” có bộ biểu diễn thô là:
(những sinh viên, học, lớp khoa học máy tính, ?)
Unknterm (Unknown first Term): một câu hỏi có cấu tạo dạng UnknTerm nếu như
bộ biểu diễn thô có dạng:
(?, mối quan hệ, Cụm từ 2, ?)
Ví dụ: “ai là những sinh viên của lớp khoa học máy tính?” thì bộ biểu diễn thô sẽ là:
(?,là những sinh viên của, lớp khoa học máy tính)
Hoặc câu hỏi “mã sinh viên của Nguyễn Quốc Đạt là gì?” và câu hỏi “Nguyễn
Quốc Đạt có mã sinh viên là gì?”. Đây chính là dạng “A của B” và “B có A”
được chỉ ra ở trên, bộ biểu diễn thô của cả hai câu này là:
(?, mã sinh viên, Nguyễn Quốc Đạt, ?)
Unknrel (Unknown Relation): một câu hỏi có cấu tạo dạng UnknRel nếu như bộ
biểu diễn thô có dạng như sau:
(Cụm từ 1, ?, Cụm từ 2, ?)
Ví dụ: “danh sách sinh viên của lớp khoa học máy tính là gì?” có cụm từ “danh
sách sinh viên” (chứa khái niệm bên trong) được chú giải bởi kiểu Tudehoi và “lớp
khoa học máy tính” được chú giải bởi kiểu Cumdanhtu, bởi vậy bộ biểu diễn thô sẽ là:
Chương 4. Phương pháp phân tích câu hỏi tiếng Việt Nguyễn Quốc Đạt
67
(danh sách sinh viên, ? , lớp khoa học máy tính, ?)
Hoặc câu hỏi “số lượng sinh viên của lớp khoa học máy tính là bao nhiêu?” thì
có biểu diễn thô là:
(số lượng sinh viên, ?, lớp khoa học máy tính, ?)
Definition: một câu hỏi có cấu tạo thuộc vào dạng này nếu như bộ biểu diễn thô có
dạng:
(?, ?, Cụm từ 2, ?)
Câu hỏi có cấu tạo Definition cho phép “Cụm từ 2” chứa đựng khái niệm.
Ví dụ: “Nguyễn Quốc Đạt là ai?” có bộ biểu diễn thô sẽ là:
(?, ?, Nguyễn Quốc Đạt, ?)
Hoặc câu hỏi “cái gì là thẻ sinh viên?” sẽ có bộ biểu diễn thô là:
(?, ?, thẻ sinh viên, ?)
AffirmNeg (Affirmative Negative): một câu hỏi có cấu tạo dạng AffirmNeg nếu
câu hỏi đó được phân vào lớp YesNo đặc trưng type nhận giá trị là “YesNo” và có
một bộ biểu diễn thô thuộc vào một trong 3 dạng Normal, UnknRel, UnknTerm.
Câu hỏi có cấu tạo dạng AffirmNeg cho phép “Cụm từ 1” chứa đựng thực thể.
Ví dụ: “Nguyễn Quốc Đạt có quê ở Hà Tây phải không?” thì có bộ biểu diễn
thô là:
(Nguyễn Quốc Đạt, có quê ở, Hà Tây, ?)
Compare: câu hỏi có cấu tạo thuộc dạng này nếu như nó chứa đựng một từ có kiểu
chú giải TokenVn với đặc trưng category nhận giá t
Các file đính kèm theo tài liệu này:
- LUẬN VĂN- PHƯƠNG PHÁP PHÂN TÍCH CÂU HỎI CHO HỆ THỐNG HỎI ĐÁP TIẾNG VIỆT.pdf