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 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â...

pdf104 trang | Chia sẻ: haohao | Lượt xem: 1090 | Lượt tải: 1download
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:

  • pdfLUẬ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