ĐẠ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: Giảng viên hƣớng dẫn:
Công nghệ thông tin 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
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
i
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
Tóm tắt
ii
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
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
iii
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
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
iv
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
Danh sách từ viết tắt
A New-Nearly Information Extraction ANNIE
Application Program Interface API
General Architecture for Text Engineering GATE
Information Extraction IE
Java Annotations Pattern Engine JAPE
Named Entity Recognitioin NER
v
Sematically Related Words SRW
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
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
vi
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
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
vii
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
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
viii
Bảng 5-1: Kết quả đánh giá ........................................................................................... 77
Nguyễn Quốc Đạt Chương 1. Giới thiệu
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 đó.
1
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.
Nguyễn Quốc Đạt Chương 1. Giới thiệu
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.
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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.
3
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.
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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í
4
dụ trên.
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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.
5
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.
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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
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”.
6
? 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”.
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
*?, +? Đị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.
7
Một số ký tự đặc biệt:
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
\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].
8
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.
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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.
9
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].
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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.
10
“Ba học”, “học sinh”, “sinh đi”, “đi đá”, “đá bóng” gọi là các 2-gram hay bigram.
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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
và là mức độ làm mịn. Chúng ta có công thức
các từ không xuất hiện trong lớp 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
được tính theo
11
hiện nhỏ hoặc không xuất hiện, theo ước lượng Good-Turing, công thức sau đây:
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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 đó
12
Và:
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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 đó.
13
Mặt khác chúng ta sử dụng để ước lượng . Ta có công thức:
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
α 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:
14
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.
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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
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.
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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.
16
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ư:
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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].
17
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.
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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”
18
Hành động: Trả về Capital và Country của mỗi hàng
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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.
19
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.
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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
20
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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.
21
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.
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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
22
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.
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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ó 23
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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.
6.
7.
8.
9.
24
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:
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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] …
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.
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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.
26
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
Nguyễn Quốc Đạt Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp
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:
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
27
trên chú giải ngữ nghĩa là: START [14][15], PIQASso [2],…
Nguyễn Quốc Đạt Chương 3. GATE
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
28
Nguyễn Quốc Đạt Chương 3. GATE
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.
29
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.
Nguyễn Quốc Đạt Chương 3. GATE
Hình 3-2: Chú giải ngữ nghĩa trong GATE
30
Nguyễn Quốc Đạt Chương 3. GATE
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.
31
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).
Nguyễn Quốc Đạt Chương 3. GATE
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.
32
Chúng tôi xây dựng các module sử dụng JAPE trong phương pháp của mình.
Nguyễn Quốc Đạt Chương 3. GATE
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.
33
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).
Nguyễn Quốc Đạt Chương 3. GATE
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
34
Các mẫu có thể được lồng nhau( nếu được gán nhãn chính xác), ví dụ:
Nguyễn Quốc Đạt Chương 3. GATE
(
({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
35
({IPADDRESS}):ip --> ….
Nguyễn Quốc Đạt Chương 3. GATE
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
36
--> :loc.Location = {kind= “city”, rule= “GazCity”}
Nguyễn Quốc Đạt Chương 3. GATE
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
37
nhúng mã Java vào JAPE được mô tả ở phụ lục A.
Nguyễn Quốc Đạt Chương 4. Phương pháp 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
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.
Câu trả lời ngữ nghĩa Câu hỏi ngôn ngữ tự nhiên
Thành phần phân tích câu hỏi Natural Language Question Analysis Thành phần tìm kiếm câu trả lời Answer Retrieval
Bộ biểu diễn trung gian
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
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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).
Câu hỏi ngôn ngữ tự nhiên
Phân tích cú pháp
Tiền xử lý
So khớp mẫu Phân lớp câu hỏi
Phân tích ngữ nghĩa
Bộ biểu diễn trung gian
GATE
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
Đầ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:
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
(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
40
máy tính là 45 phải không?” được đưa ra như trong hình 4-3 sau đây.
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
Hình 4-3: Đầu ra của module phân tích câu hỏi tiếng Việt
41
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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
42
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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.
43
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.
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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ừ).
44
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
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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”.
45
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ừ.
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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ì”.
46
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ừ.
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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).
47
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:
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
Hình 4-7: Kiểu chú giải TokenVn sau khi đã thay đổi giá trị của đặc trƣng category
48
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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
49
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:
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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
Số từ Danh từ Tính từ Từ chỉ tổng lượng Định từ “cái” hoặc “chiếc” Đạ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, đó.
50
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:
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
Bảng 4-2: Cấu trúc cụm danh từ đƣợc mô tả trong văn phạm JAPE
-3 Đại từ số lượng ({TokenVn.category == “Pn”}) ? Từ chỉ tổng lượng
Danh từ chỉ đơn vị ( {TokenVn.category == “Nu”} |
-2 Số từ
Danh từ số lượng {TokenVn.category == “Nn”} ) ?
( {TokenVn.string == “cái”} |
-1 Định từ: ―cái‖, ―chiếc‖ {TokenVn.string == “chiếc”} ) ?
Danh từ loại thể ({TokenVn.category == “Nt”}) ?
(
Danh từ đơn thể {TokenVn.category == “Nc” } |
0 Danh từ Danh từ tổng thể {TokenVn.category == “Ng” } |
Danh từ trừu tượng {TokenVn.category == “Na” } |
Danh từ riêng {TokenVn.category == “Np”}
) +
Tính từ hàm chất ( {TokenVn.category == “Aa”} |
1 Tính từ
Tính từ hàm lượng {TokenVn.category == “An”} ) ?
( {TokenVn.string == "này"} |
{TokenVn.string == "kia"} |
2 Đại từ chỉ định {TokenVn.string == "ấy"} |
51
{TokenVn.string == "đó"} ) ?
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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
52
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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
53
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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
54
quan hệ trong câu hỏi theo 4 dạng sau đây:
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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?”
55
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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:
―có‖ (Cụm_danh_từ | Tính_từ) ―là‖
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”.
56
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.
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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.
57
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ý.
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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 58
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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ì.
59
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
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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:
―là‖ 1 {TokenVn.string == “là”}
{TokenVn.category == “Aa”} |
Giới từ 2
{TokenVn.category == “An”}
có kiểu
3 {TokenVn.type == “Who”}
Từ chú giải TokenVn có ―type‖ nhận giá trị ―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:
60
{TokenVn.type == “List”} {Cumdanhtu.category == “Cụm danh từ”}
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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:
{TokenVn.string == “nào”} |
{Cumdanhtu.category == “Cụm danh từ”}
{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.
61
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.
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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
62
sẽ được giải quyết.
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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.
63
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:
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
Hình 4-15: Ví dụ về bộ biểu diễn trung gian của câu hỏi
64
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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ộ:
65
(Cụm từ 1, mối quan hệ, Cụm từ 2, Cụm từ 3)
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
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, ?)
66
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à:
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
(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á trị là “Tusosanh”.
Ví dụ “sinh viên nào có điểm trung bình lớn hơn 7?” thì bộ biểu diễn thô là:
67
(sinh viên nào, điểm trung bình, 7, ?)
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
And: một câu hỏi có cấu tạo thuộc dạng này nếu câu hỏi có từ “và” hoặc “mà”. Các câu thuộc dạng này có hai bộ biểu diễn thô tương ứng với hai câu hỏi con thuộc vào một trong 3 dạng Normal, UnknRel, UnknTerm
Ví dụ như: “danh sách các sinh viên có quê ở Hà Tây mà học lớp khoa học máy tính?”. Những câu hỏi có cấu tạo thuộc dạng này sẽ có 2 bộ biểu diễn thô tương ứng biểu diễn cho hai câu hỏi con. Trong câu hỏi vừa nêu chúng ta sẽ có 2 bộ biểu diễn thô là:
(danh sách các sinh viên, có quê ở, Hà Tây, ?) và
(danh sách các sinh viên, học, lớp khoa học máy tính, ?)
Or: tương tự như And, nhưng trong câu hỏi có từ “hoặc” thay vì từ “và” và “mà”. Câu hỏi: “số lượng sinh viên có quê ở Hà Tây hoặc có quê ở Hà Nội là bao nhiêu?” sẽ có 2 bộ biểu diễn thô là:
(số lượng sinh viên, có quê ở, Hà Tây, ?) và
(số lượng sinh viên, có quê ở, Hà Nội, ?)
Cấu tạo câu hỏi thuộc dạng And hoặc Or, thì kết quả mỗi câu hỏi con không phụ thuộc vào nhau, nhưng kết quả của câu hỏi tổng hợp sẽ là giao hoặc hợp của các câu hỏi con.
Clause: câu hỏi “Sinh viên có quê ở Hà Tây thì học lớp nào?” có 2 bộ biểu diễn
thô là:
(Sinh viên, có quê ở, Hà Tây, ?) và (lớp, học, ? , ?)
Kết quả của câu hỏi con thứ nhất làm đầu vào cho thành phần còn thiếu trong
bộ biểu diễn thô tương ứng với câu hỏi con thứ hai.
Combine: cấu tạo câu hỏi ở dạng kết hợp hai câu hỏi đơn giản. Câu hỏi dạng này
có hai bộ biểu diễn thô hoàn toàn không phụ thuộc vào nhau.
Ví dụ “ai có quê ở Hà Tây và sinh viên nào học lớp khoa học máy tính?” có 2
68
bộ biểu diễn thô là:
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
(?, có quê ở, Hà Tây, ?) và
(sinh viên nào, học, lớp khoa học máy tính, ?)
ThreeTerm: bộ biểu diễn thô của câu hỏi có dạng:
(?, mối quan hệ, Cụm từ 2, Cụm từ 3 ) hoặc (Cụm từ 1, ?, Cụm từ 2, Cụm từ 3) hoặc (Cụm từ 1, mối quan hệ, Cụm từ 2, Cụm từ 3)
Ví dụ: “ai là những sinh viên của lớp khoa học máy tính của trường đại học
Công Nghệ?” sẽ có bộ biểu diễn thô là:
(?, là những sinh viên của, lớp khoa học máy tính, trường đại học Công Nghệ)
Hoặc ―danh sách sinh viên của lớp khoa học máy tính của trường đại học công
nghệ là gì?‖ có bộ biểu diễn thô là:
(danh sách sinh viên, ?, lớp khoa học máy tính, đại học Công Nghệ)
AffirmNeg_3Term: câu hỏi được phân vào lớp YesNo và có 1 bộ biểu diễn thô là:
(Cụm từ 1, ?, Cụm từ 2, Cụm từ 3) hoặc
(Cụm từ 1, mối quan hệ, Cụm từ 2, Cụm từ 3)
Câu hỏi có cấu tạo dạng AffirmNeg_3Term cho phép “Cụm từ 1” chứa đựng
thực thể.
Ví dụ “số lượng sinh viên của lớp khoa học máy tính là 45 phải không?” sẽ có
bộ biểu diễn thô là:
(số lượng sinh viên, ?, lớp khoa học máy tính, 45)
AffirmNeg_2Triple: được phân vào lớp YesNo và được biểu diễn bởi 2 bộ biểu
diễn thô.
Câu hỏi có cấu tạo dạng AffirmNeg_2Triple cho phép “Cụm từ 1” chứa đựng
69
thực thể.
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
Ví dụ: “Nguyễn Quốc Đạt có quê ở Hà Tây và học lớp khoa học máy tính phải
không?” có hai bộ biểu diễn thô là:
(Nguyễn Quốc Đạt, có quê ở, Hà Tây, ?) và
(Nguyễn Quốc Đạt, học, lớp khoa học máy tính, ?)
Hoặc câu hỏi “tồn tại sinh viên học lớp khoa học máy tính mà có quê ở Hà Tây
phải không?” sẽ có hai bộ biểu diễn thô là:
70
(sinh viên, học, lớp khoa học máy tính, ?) và (sinh viên, có quê ở, Hà Tây, ?)
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
4.4.2.2. Bộ biểu diễn trung gian của câu hỏi
Chúng tôi đã định nghĩa 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 đó, “Dạng cấu tạo câu hỏi” là một trong các dạng đã nêu ở phần 4.4.2.1, “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 câu hỏi được tổng hợp từ ít nhất hai câu hỏi con. “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. “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 dạng câu hỏi là AffirmNeg hoặc AffirmNeg_2Triple hoặc AffirmNeg_3Term , nghĩa là câu hỏi được phân vào lớp YesNo, thì cho phép “Thuật ngữ 1” có thể là thực thể. Nếu câu hỏi có dạng Definition thì cho phép “Thuật ngữ 2” có thể là khái niệm.
Chúng tôi có định nghĩa trước một số mẫu câu là cấu tạo của câu hỏi. Mỗi câu hỏi đầu vào mà có cấu tạo khớp với một trong các mẫu định trước sẽ được chú giải bởi kiểu Maucauhoi. Dựa trên cách nhìn nhận thông qua bộ biểu diễn thô và mẫu câu hỏi, kiểu chú giải Maucauhoi sẽ có các đặc trưng type nhận giá trị là “QU Pattern”, đặc trưng category nhận môt trong các giá trị là: “Normal”, “Unknterm”, “Unknrel”,
71
“Definition”, “And”, “Or”, “Compare”, “ThreeTerm”, “Clause”, “Combine”, “AffirmNeg”, “AffirmNeg_3Term”, “AffirmNeg_2Triple”, và đặc trưng pattern là xâu biểu diễn mẫu câu hỏi. Hình 4-16 sau đây mô tả một kiểu chú giải Maucauhoi khi câu hỏi đầu vào khớp đúng mẫu định trước.
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
Hình 4-16: Một ví dụ về kiểu chú giải Maucauhoi
Chúng ta sẽ cùng xem xét các câu hỏi mà có cấu tạo thuộc vào một trong các
dạng Normal, UnknRel, UnknTerm, Definition, AffirmNeg trước.
Nếu một câu hỏi đầu vào được khớp với một trong các mẫu đã được định nghĩa. Quá trình so khớp mẫu sẽ lấy ra sẽ lấy ra tập chứa các từ với kiểu chú giải TokenVn, tập chứa các cụm từ (hoặc từ) với kiểu chú giải Cumdanhtu, tập chứa các cụm từ (hoặc từ) với kiểu chú giải Danhngu, tập chứa các cụm từ (hoặc từ) với kiểu chú giải Moiquanhe, tập chứa các cụm từ (hoặc từ) với kiểu chú giải Tudehoi.
Dựa trên đặc trưng category của kiểu chú giải Tudehoi, “lớp của câu hỏi” được xác định, “dạng cấu tạo câu hỏi” và “dạng cấu tạo bộ biểu diễn” chính là giá trị tương ứng với đặc trưng category của kiểu chú giải Maucauhoi.
Tiếp theo, module sẽ loại bỏ những sự trùng lặp. Đầu tiên, bất cứ từ nào với kiểu chú giải TokenVn nằm trong một cụm từ được chú giải bởi một trong các kiểu Cumdanhtu, Moiquanhe, Tudehoi thì sẽ bị loại bỏ khỏi tập các từ với kiểu chú giải TokenVn. Thường thì, chúng ta không cần xử lý việc lấy ra tập các chú giải TokenVn và thực hiện loại bỏ trùng lặp đối với các câu hỏi dạng Normal, UnknRel, UnknTerm,
Definition, AffirmNeg.
Hoàn toàn tương tự, nếu một cụm từ được chú giải bởi kiểu Cumdantu nằm trong một cụm được chú giải bởi một trong các kiểu Moiquanhe, Tudehoi, thì cụm từ đó sẽ bị loại bỏ khỏi tập chứa các cụm có kiểu chú giải Cumdanhtu.
72
Ví dụ: “ai là những sinh viên của lớp khoa học máy tính?”
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
Từ câu hỏi trên, tập các cụm danh từ là “những sinh viên”, “lớp khoa học máy tính”, tập chứa một từ để hỏi là “ai”, tập chứa một mối quanh hệ là “là những sinh viên của”. Vì “những sinh viên” được chú giải bởi kiểu chú giải Cumdanhtu có điểm bắt đầu và điểm kết thúc nằm giữa điểm bắt đầu và điểm kết thúc của cụm “là những sinh viên của” được chú giải bởi kiểu Moiquanhe. Do đó, “những sinh viên” sẽ bị loại bỏ ra khỏi tập các cụm danh từ. Câu hỏi chỉ còn lại tập chứa một mối quan hệ “là những sinh viên của”, tập chứa một từ để hỏi “ai”, tập chứa một cụm danh từ “lớp khoa học máy tính”.
Từ mẫu 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à gì. Trong ví dụ trên ta có bộ biểu diễn thô: (?, là những sinh viên của, lớp khoa học máy tính, ?). Chú giải Danhngu được sử dụng để lấy ra thực thể hoặc khái niệm trong các cụm từ được chú giải bởi kiểu Cumdanhtu hoặc Tudehoi. Những giới từ có trong ―mối quan hệ‖ sẽ bị loại bỏ. Một biểu diễn trung gian của câu hỏi ví dụ được sinh ra giống như hình 4-17 sau đây: (Unknterm, (QUWho, ?, là sinh viên, lớp khoa học máy tính)).
Hình 4-17: Đầu ra của một câu hỏi có cấu tạo dạng Unknterm
73
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
Chúng ta tiếp tục với những câu hỏi phức tạp hơn, ví dụ như:
“sinh viên của lớp khoa học máy tính mà có quê ở Hà Tây là ai?”.
“Dạng cấu tạo câu hỏi” là “And”, sau khi loại bỏ trùng lặp như đã trình bày ở trên, dựa trên mẫu câu hỏi được khớp một biểu diễn trung gian gồm hai bộ 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, ?)
Trong đó “Lớp câu hỏi”, “Thuật ngữ 1”, “Mối quan hệ”, “Thuật ngữ 2” hoàn toàn được xác định chính xác. Giá trị “Dạng cấu tạo bộ biểu diễn” phụ thuộc vào bộ biểu diễn. Nếu bộ biểu diễn có đầy đủ “Thuật ngữ 1”, “Mối quan hệ”, “Thuật ngữ 2” thì “Dạng cấu tạo bộ biểu diễn” nhận giá trị là “Normal”, nếu thiếu “Thuật ngữ 1” thì giá trị của “Dạng cấu tạo bộ biểu diễn” là ―Unkterm”, nếu không có ―mối quan hệ‖ thì giá trị của “Dạng cấu tạo bộ biểu diễn” là “Unknrel”.
Hình 4-18: Đầu ra của một câu hỏi có cấu tạo dạng And
74
Nguyễn Quốc Đạt Chương 4. Phương pháp phân tích câu hỏi tiếng Việt
Nhập nhằng trong phân lớp câu hỏi trên sẽ được giải quyết ở phần này. Ví dụ:
“số lượng sinh viên học lớp khoa học máy tính là 45 phải không?”
Trong phần phân lớp câu hỏi, chúng ta có thể thấy rằng câu hỏi không biết thuộc về lớp ManyClass hay là lớp YesNo. Trong quá trình phân tích mẫu của câu hỏi (trong hình 4-19), câu hỏi này thuộc về lớp ManyClass có “Dạng cấu tạo câu hỏi” và “Dạng cấu tạo bộ biểu diễn” nhận giá trị là “AffirmNeg_3Term” hoàn toàn có thể chấp nhận được vì nó cũng mang ý nghĩa hỏi Đúng hoặc Sai.
Hình 4-19: Đầu ra của một câu hỏi có cấu tạo dạng AffirmNeg_3Term
75
Nguyễn Quốc Đạt Chương 5. Kết quả thực nghiệm
Chƣơng 5. Kết quả thực nghiệm
Chúng tôi thực hiện phương pháp của mình trên một tập dữ liệu gồm 60 câu hỏi (trong phụ lục C). Các câu hỏi có cấu tạo cú pháp khác nhau liên quan đến một số khái niệm trong miền tri thức trường đại học. Nguyên nhân chúng tôi lựa chọn các câu hỏi này là do chúng thích hợp cho hệ thống hỏi đáp tiếng Việt dựa trên Ontology do Nguyễn Quốc Đại [42] xây dựng và thử nghiệm.
Các tiêu chí sau được xác định như một độ đo để so sánh:
Tiêu chí 1: Số lượng câu hỏi mà nguyên tắc cấu tạo của nó nằm trong tập chứa các mẫu cấu tạo đã được định nghĩa. Nghĩa là, số lượng câu hỏi khi vào module so khớp mẫu sẽ được chú giải bởi kiểu Maucauhoi.
Tiêu chí 2: Số lượng câu hỏi thỏa mãn tiêu chí 1, kết quả phân tích là một bộ biểu diễn trung gian 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 (ngoại trừ một số trường hợp đặc biệt- câu hỏi thuộc lớp YesNo), ―Thuật ngữ 2‖ (ngoại trừ trường hợp cấu tạo câu hỏi dạng Definition) 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ữ và luôn chứa đựng khái niệm trong nó.
Do vậy, các câu hỏi thỏa mãn tiêu chí 2 mà không thỏa mãn tiêu chí 1 là những câu hỏi bị phân tích sai.
76
Tiêu chí 3: Số lượng câu hỏi mà chỉ có một phần nào đó của câu hỏi có nguyên tắc cấu tạo thuộc vào tập chứa các mẫu cấu tạo đã định nghĩa. Nghĩa là, số lượng câu
Nguyễn Quốc Đạt Chương 5. Kết quả thực nghiệm
hỏi mà chỉ có một phần nào đó được chú giải bởi kiểu Maucauhoi. Kết quả phân tích có thể chấp nhận được, cho phép thực hiện trong phần còn lại của hệ thống.
Hình 5-1 dưới đây là một ví dụ về một phần nào đó của câu hỏi khớp được với một mẫu đã định nghĩa:
Hình 5-1: Ví dụ về một phần câu hỏi đƣợc khớp mẫu
Tiêu chí 4: Giống như tiêu chí 3 nhưng kết quả phân tích thiếu thông tin để có thể
thực hiện trong phần còn lại của hệ thống.
Số lượng câu hỏi thỏa mãn tiêu chí 2 được coi là kết quả đánh giá độ chính xác của quá trình phân tích câu hỏi. Bảng 5-1 dưới đây đưa ra kết quả đánh giá:
Bảng 5-1: Kết quả đánh giá
Tiêu chí 1 Tiêu chí 2 Tiêu chí 3 Tiêu chí 4
4 Số lượng câu hỏi 48 3
45
Các câu hỏi thỏa mãn tiêu chí 1 được sắp xếp theo thứ tự từ câu hỏi số 1 48 trong phụ lục C. Trong khi đó các câu hỏi thỏa mãn tiêu chí 2 được sắp xếp theo thứ tự từ 1 45. Các câu hỏi thỏa mãn tiêu chí 3 được xắp xếp theo thứ tự từ 49 51 trong khi các câu hỏi thỏa mãn tiêu chí 4 được xắp xếp theo thứ tự từ vị trí 52 55 trong phụ lục C.
77
Các câu hỏi còn lại không thỏa mãn bất cứ tiêu chí nào được nêu ra. Hướng giải quyết trong thời gian tới là cập nhật thêm nguyên tắc cấu tạo của các câu hỏi này cũng như nguyên tắc cấu tạo của các câu hỏi thỏa mãn tiêu chí 4 vào tập chứa mẫu cấu tạo.
Nguyễn Quốc Đạt Chương 5. Kết quả thực nghiệm
Câu hỏi: ―“sinh viên nào học ở lớp khoa học máy tính của trường đại học Công
Nghệ?” thỏa mãn tiêu chí 2 như hình 5-2 dưới đây:
Hình 5-2: Kết quả phân tích đúng - câu hỏi thỏa mãn tiêu chí 2
Câu hỏi: “Hãy cho biết số lượng sinh viên của lớp khoa học máy tính?”
Thỏa mãn tiêu chí 3 như hình 5-3 sau đây, kết quả đưa ra hoàn toàn có thể chấp
nhận được:
Hình 5-3: Ví dụ về câu hỏi thỏa mãn tiêu chí 3
78
Nguyễn Quốc Đạt Chương 5. Kết quả thực nghiệm
Nhưng với câu hỏi:
“sinh viên nào học lớp khoa học máy tính của trường đại học Công Nghệ?”
thỏa mãn tiêu chí 1 nhưng không thỏa mãn tiêu chí 2, do đó kết quả phân tích là sai. Nguyên nhân là vì bộ biểu diễn chứa đựng “Mối quan hệ” nhận giá trị là “học lớp khoa học máy tính của” không thỏa mãn yêu cầu. Hình 5-4 sau đây đưa ra kết quả phân tích câu hỏi này:
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
Chương 6. Kết luận và hướng phát triển Nguyễn Quốc Đạt
Chƣơng 6. Kết luận và hƣớng phát triển
Phân tích câu hỏi là một bài toán cơ bản trong xử lý ngôn ngữ tự nhiên. Đối với tiếng Việt bài toán này trở nên khó khăn hơn vì tính phức tạp của cấu trúc câu hỏi cũng như những ràng buộc ngữ nghĩa trong câu hỏi, ví dụ như: từ để hỏi có thể xuất hiện ở nhiều vị trí.
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 tiếng Việt của mình. Phương pháp của chúng tôi dựa trên các chú giải ngữ nghĩa thông qua văn phạm JAPE [45]. Với mỗi câu hỏi đầu vào, thông qua các quá trì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, hệ thống phân tích sinh ra một bộ biểu diễn trung gian 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 đó, “Dạng cấu tạo câu hỏi” là nguyên tắc (mẫu) cấu tạo của câu hỏi, “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ệ” là ràng buộc ngữ nghĩa giữa các thuật ngữ và luôn chứa đựng khái niệm bên trong nó.
Khi một câu hỏi được tổng hợp từ nhiều câu hỏi con, nghĩa là có nhiều bộ biểu diễn con được sinh ra, thì “Dạng cấu tạo bộ biểu diễn” và “Lớp câu hỏi” trong mỗi bộ biểu diễn con lần lượt là “Dạng cấu tạo câu hỏi” và lớp của câu hỏi con tương ứng.
80
Hệ thống áp dụng phương pháp phân tích này thực hiện tốt đối với những câu hỏi có cấu tạo đơn giản. Trong khi ở những câu hỏi có cấu tạo phức tạp hơn thì khả năng phân tích bị giảm đi. Những kết quả khả quan ban đầu (phân tích được chính xác 45 / 60 câu hỏi) đã góp phần tạo nên hệ thống hỏi đáp tiếng Việt dựa trên Ontology do Nguyễn Quốc Đại [42] xây dựng và thử nghiệm.
Chương 6. Kết luận và hướng phát triển Nguyễn Quốc Đạt
81
Trong thời gian tới, chúng tôi sẽ tạo một tập chứa nhiều mẫu cấu tạo câu hỏi hơn. Song song với việc cập nhật mẫu, chúng tôi sẽ cố gắng thực hiện hướng tiếp cận nhằm giải quyết vấn đề xảy ra với các câu hỏi mà cấu tạo của các câu hỏi ấy không khớp với mẫu cấu tạo nào có sẵn. Ý tưởng của hướng tiếp cận đó là sinh ra một số câu hỏi dựa trên các chú giải ngữ nghĩa và các mẫu câu có sẵn, các câu hỏi này có ý nghĩa tương tự với câu hỏi ban đầu để cho người sử dụng lựa chọn.
Phụ lục A Nguyễn Quốc Đạt
Phụ lục A. Chƣơng trình nhúng Java vào JAPE
({TokenVn.string == "phải"}|{TokenVn.string == "đúng"}) ? {TokenVn.string == "không"}
({TokenVn.string == "Có"} | {TokenVn.string == "có"}) ({TokenVn.string == "đúng"} | {TokenVn.string == "phải"}) ({TokenVn.string == "là"})?
( ) | ( )
YesNoSet
=
Phase: EditYesnoAnno Input: TokenVn Split Options: control = appelt Macro: YesNo /*Macro YesNo dùng để khớp các cụm từ: 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à*/ ( ) Rule: editYesNoTerm Priority: 50 ( YesNo ):YesNoSet --> { //Đưa ra một tập chứa đựng các chú giải mà LHS khớp gate.AnnotationSet (gate.AnnotationSet)bindings.get("YesNoSet");
//Đưa ra một danh sách List listTerm = new ArrayList(YesNoSet); //Đưa ra một biến lặp của chú giải Iterator termIter = (Iterator)listTerm.iterator(); //Khai báo biến gate.Annotation yesnoAnn; gate.FeatureMap yesnoAnnFeatures;
82
yesnoAnn = (gate.Annotation)termIter.next(); yesnoAnnFeatures = (gate.FeatureMap)yesnoAnn.getFeatures(); string += (String)yesnoAnnFeatures.get("string") + " ";
String string = ""; //Xâu tương ứng với cụm từ được khớp //Đưa ra ánh xạ đặc trưng while(termIter.hasNext()){ } //Tạo các đặc trưng gate.FeatureMap features = Factory.newFeatureMap(); features.put("string", string.trim()); features.put("category", "Tudehoi"); features.put("type", "YesNo"); /*Loại bỏ tất cả các chú giải TokenVn đối với từng từ trong cụm từ mà LHS của luật đã khớp*/ inputAS.removeAll(YesNoSet); /*Đưa ra kiểu chú giải TokenVn cho các cụm từ mà LHS của luật khớp, nghĩa là cụm từ đã được xác định lại là một từ để hỏi*/ outputAS.add(YesNoSet.firstNode(), YesNoSet.lastNode(), "TokenVn", features);
}
Phụ lục A Nguyễn Quốc Đạt
Hình A-1: Chƣơng trình nhúng Java vào JAPE
83
Phụ lục B Nguyễn Quốc Đạt
Phụ lục B. Bảng nhãn từ loại tiếng Việt
84
Np Nc Ng Nt Nu Na Nn Nl Vt Vit Vim Vo Vs Vb Vv Va Vc Vm Vla Vtim Vta Vtc Vtb Vto Vts Vtm Vtv proper noun danh từ riêng countable noun danh từ đơn thể collective noun danh từ tổng thể classifier noun danh từ loại thể concrete noun danh từ chỉ đơn vị abstract noun danh từ trừu tượng numeral danh từ số lượng locative noun danh từ vị trí transitive verb động từ ngoại động intransitive verb động từ nội động impression verb động từ cảm nghĩ orientation verb động từ chỉ hướng state verb động từ tồn tại transformation verb động từ biến hoá volotive verb động từ ý chí acceptation verb động từ tiếp thụ comparative verb động từ so sánh move verb động từ chuyển động ―là‖ verb động từ "là" transitive-impression verb động từ ngoại động cảm nghĩ transitive-acceptation verb động từ ngoại động tiếp thụ transitive-comparative verb động từ ngoại động so sánh transitive-transformation verb động từ ngoại động biến hoá transitive-orientation verb động từ ngoại động chỉ hướng động từ ngoại động tồn tại transitive-state verb động từ ngoại động chuyển động transitive-move verb động từ ngoại động ý chí transitive-volotive verb
Phụ lục B Nguyễn Quốc Đạt
Vitim Vitb Vits Vitc Vitm Aa An Pp Pd Pn Pa Pi Jt Jd Jr Ja Ji Cm Cc E I X động từ nội động cảm nghĩ động từ nội động biến hoá động từ nội động tồn tại động từ nội động so sánh động từ nội động chuyển động tính từ hàm chất tính từ hàm lượng đại từ xưng hô đại từ không gian, thời gian đại từ số lượng đại từ hoạt động, tính chất đại từ nghi vấn phụ từ chỉ thời gian phụ từ chỉ mức độ phụ từ so sánh phụ từ khẳng định, phủ định phụ từ mệnh lệnh giới từ liên từ cảm từ trợ từ không xác định intransitive-impression verb intransitive-transformation verb intransitive-state verb intransitive-comparative verb intransitive-move verb quality adjective quantity adjective personal pronoun demonstrative pronoun quantity pronoun quality pronoun interrogative pronoun time adjunct degree adjunct rapport adjunct adjunct of negation and acceptation imperative adjunct major/minor conjunction combination conjunction emotion word introductory word
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ụ lục C Nguyễn Quốc Đạt
Phụ lục C. Danh sách câu hỏi thực nghiệm
Danh sách 60 câu hỏi dùng để thực nghiệm:
1. Nguyễn Quốc Đạt là ai?
2. Cái gì là mã sinh viên?
3. Điểm trung bình là như thế nào?
4. Những sinh viên có quê ở Hà Tây là ai?
5. Ai là những sinh viên có quê ở Hà Tây?
6. Sinh viên nào có quê ở Hà Tây?
7. Môn học được học bởi Nguyễn Quốc Đạt là gì?
8. Quê của sinh viên nào ở Hà Tây?
9. Nguyễn Quốc Đạt học lớp nào?
10. Ai là sinh viên của lớp khoa học máy tính?
11. Hà Tây là quê của ai?
12. Ai có quê ở Hà Tây?
13. Quê của những người nào ở Hà Tây?
14. Nguyễn Quốc Đạt có mã sinh viên là gì?
15. Danh sách các sinh viên của lớp khoa học máy tính?
86
16. Lớp nào có sinh viên Nguyễn Quốc Đạt?
Phụ lục C Nguyễn Quốc Đạt
17. Số lượng sinh viên của lớp khoa học máy tính là bao nhiêu?
18. Tồn tại sinh viên có tên là Nguyễn Quốc Đạt phải không?
19. Nguyễn Quốc Đạt có quê ở Hà Tây phải không?
20. Tồn tại sinh viên là Nguyễn Quốc Đạt phải không?
21. Nguyễn Quốc Đạt là sinh viên phải không?
22. Quê quán của Nguyễn Quốc Đạt là Hà Tây phải không?
23. Những sinh viên có quê ở Hà Tây mà học lớp khoa học máy tính là ai?
24. Ai là những sinh viên có quê là Hà Tây và học lớp khoa học máy tính?
25. Sinh viên của lớp khoa học máy tính mà có quê ở Hà Tây là những ai?
26. Ai có quê ở Hà Tây và học lớp khoa học máy tính?
27. Có quê ở Hà Tây và học lớp khoa học máy tính là những ai?
28. Nguyễn Quốc Đạt có mã sinh viên là gì và có quê ở đâu?
29. Nguyễn Quốc Đạt có quê ở đâu và học lớp nào?
30. Sinh viên nào có quê là Hà Tây và học lớp khoa học máy tính?
31. Liệt kê các sinh viên học lớp khoa học máy tính và có quê ở Hà Tây?
32. Số lượng sinh viên của lớp khoa học máy tính mà có quê ở Hà Tây là bao nhiêu?
33. Những sinh viên có quê ở Hà Tây hoặc có quê ở Hà Nội là ai?
34. Số lượng sinh viên có quê ở Hà Tây hoặc có quê ở Hà Nộ là bao nhiêu?
35. Ai có quê ở Hà Tây hoặc có quê ở Hà Nội?
36. Có quê ở Hà Tây hoặc có quê ở Hà Nội là những ai?
87
37. Sinh viên nào có điểm trung bình lớn hơn 7?
Phụ lục C Nguyễn Quốc Đạt
38. Sinh viên nào có điểm trung bình cao nhất lớp khoa học máy tính?
39. Ai có quê ở Hà Tây và ai học lớp khoa học máy tính?
40. Sinh viên học lớp khoa học máy tính thì có mã sinh viên là gì?
41. Lớp khoa học máy tính có bao nhiêu sinh viên có quê ở Hà Tây?
42. Danh sách điểm trung bình của sinh viên của lớp khoa học máy tính?
43. Ai là sinh viên của lớp khoa học máy tính của trường đại học Công Nghệ?
44. Có phải Nguyễn Quốc Đạt của lớp khoa học máy tính của trường đại học công
nghệ?
45. Tồn tại sinh viên có quê ở Hà Tây và học lớp khoa học máy tính đúng không?
46. Lớp có sinh viên Nguyễn Quốc Đạt là lớp nào?
47. Sinh viên nào học lớp khoa học máy tính của trường đại học công nghệ?
48. Sinh viên lớp khoa học máy tính là những ai?
49. Cho biết số lượng các sinh viên học ở lớp khoa học máy tính?
50. Sinh viên nào học lớp nào?
51. Sinh viên nào học môn xử lý ảnh?
52. Số lượng sinh viên lớp khoa học máy tính là bao nhiêu?
53. Tồn tại sinh viên của lớp khoa học máy tính mà có quê ở Hà Tây phải không?
88
54. Nguyễn Quốc Đạt học lớp nào của trường đại học Công Nghệ?
Phụ lục C Nguyễn Quốc Đạt
55. Số lượng sinh viên của lớp nào là 45?
56. Lớp khoa học máy tính có 45 sinh viên phải không?
57. Lớp mà Nguyễn Quốc Đạt học là gì?
58. Môn học mà Nguyễn Quốc Đạt học là gì?
59. Học lớp khoa học máy tính là những sinh viên nào?
89
60. Lớp nào có số lượng sinh viên lớn hơn 45?
Tài liệu tham khảo Nguyễn Quốc Đạt
Tài liệu tham khảo
[1]. Androutsopoulos I., Ritchie G. D., Thanisch P. Natural Language Interfaces to Databases - An Introduction. In Natural Language Engineering, vol 1, part 1, pages 29—81, 1995.
[2]. Antonio C., Francesco F., Maria S., Ro T. PIQASso: Pisa question answering
system. In TREC 2001.
[3]. Bird S., Liberman M. A Formal Framework for Linguistic Annotation. Technical Report MS-CIS-99-01, Department of Computer and Information Science,University of Pennsylvania, 1999.
[4]. Clark S., Steedman M., Curran R. Object-Extraction and Question-Parsing using CCG. Proceedings of the SIGDAT Conference on Empirical Methods in Natural Language Processing, pp.111-118, 2004.
[5]. Damljanovic D., Tablan V., Bontcheva K. A text-based query interface to owl ontologies. In 6th Language Resources and Evaluation Conference (LREC), Marrakech, Morocco, ELRA, May, 2008.
[6]. Das S., Charkrabarti S. Issues in Question Answering. M.Tech. Seminar Report.
[7]. Filipe P.P., Mamede N.J. Databases and natural language interfaces. In JISBD
2000, pages 321–332, 2000.
[8]. Frumkina R. M., Mikhejev A. V. Meaning and Categorization. New York:
Nova Science Publishers, Inc, 1996.
[9]. Grishman R. TIPSTER Architecture Design Document Version 2.3. Technical
90
report, DARPA, 1997.
Tài liệu tham khảo Nguyễn Quốc Đạt
[10]. Harabagiu M., Moldovan I., Pasca M., Mihalcea R., Surdeanu M., Bunescu C., Girju R., Rus V., Morarescu P. FALCON: Boosting Knowledge for Answer Engines. TREC 2000.
[11]. Harabagiu H., Maiorano J., Pasca A. Open-Domain Textual Question Answering Techniques. Natural Language Engineering, 1(1):1-38, 2003.
[12]. Hirschman L., Gaizauskas R. Natural Language Question Answering: The View
from Here. Natural Language Engineering. 2001.
[13]. Jelinek F., Statistical Methods for Speech Recognition.
[14]. Katz B., Borchardt G., Felshin S. Natural Language Annotations for Question the 19th International FLAIRS Conference
Answering. Proceedings of (FLAIRS 2006), May 2006.
[15]. Katz B., Borchardt G., Felshin S. Syntactic and Semantic Decomposition Strategies for Question Answering from Multiple Resources. Proceedings of the AAAI 2005 Workshop on Inference for Textual Question Answering, 35-41, July 2005.
[16]. Kocik K. Question classification using maximum entropy models. Honours
thesis, University of Sydney, 2004.
[17]. Li W. Question Classification Using Language Modeling. In CIIR Technical
Report: University of Massachusetts, Amherst, 2002.
[18]. Li X., Roth D. Learning question classifiers: the role of semantic information.
Natural Language Engineering, v.12 n.3, p.229-249, 9- 2006.
[19]. Li X., Roth D. Learning Question Classifiers. In Proceedings of the 19th
International Conference on Computational Linguistics (COLING'02), 2002.
[20]. Lopez V., Uren V., Motta E., Pasin M. AquaLog: An ontology-driven question answering system for organizational semantic intranets. Journal of Web Semantics, 5, 2, pp.72-105, Elsevier, 2007.
[21]. Lopez V., Motta E. PowerAqua: An Ontology Question Answering System for
91
the Semantic Web. Workshop: Ontologias y Web Semantiica 2005.
Tài liệu tham khảo Nguyễn Quốc Đạt
[22]. Manning C., Schutze H., Schutze H. Foundations of Statistical Natural
Language Processing.
[23]. Manning D., Raghavan P., Schütze H. Introduction to Information Retrieval.
Cambridge University Press. 2008.
[24]. Mitchell T. Machine Learning. McGraw Hill. ISBN 0-07-042807-7.
[25]. Narayanan S., Harabagiu S. Question answering based on semantic structures. Proceedings of the 20th international conference on Computational Linguistics, p.693-es, August 23-27, 2004.
[26]. Nguyen K., Le H. Natural Language Interface Construction Using Semantic
Grammars. PRICAI 2008:728-739.
[27]. Nguyen M.L., Shimazu A., Nguyen T.T. Subtree mining for question classification problem. Twentieth International Joint Conference on Artificial Intelligence (IJCAI 2007) Hyderabad, India, January 6-12, 2007.
[28]. Nguyen T.T., Nguyen L.M., Shimazu A. Using Semi-supervised Learning for Question Classification. Information and Media Technologies, Vol. 3, No. 1, pp.112-130, 2008 .
[29]. Ogden W., Bernick T. Using natural language interfaces. In: M. Helander,
Editor, Handbook of Human–Computer Interaction, Elsevier, 1996.
[30]. Ryan J., Smith A. General Question Categorization for Question and Answer
Systems. (Unpublished report.).
[31]. Paggio P., Hansen D.H., Basili R., Pazienza M.T., Zanzotto F.M. Ontology- based question analysis in a multilingual environment: the MOSES case study. Proceedings of OntoLex 2004: Ontologies and Lexical Resources in Distributed Environments s. 1-8. Lisboa 2004.
[32]. Popescu A., Etzioni O., Kautz H. Towards a theory of natural language
92
interfaces to databases. New York, NY, USA: ACM (2003).
Tài liệu tham khảo Nguyễn Quốc Đạt
[33]. Saxena A., Sambhu G., Kaushik S., Subramaniam L. IITD-IBMIRL System for Question Answering Using Pattern Matching, Semantic Type and Semantic Category Recognition. TREC 2007.
[34]. Templeton M., Burger J. Problems in Natural Language Interface to DBMS with Examples from EUFID. In Proceedings of the 1st Conference on Applied Natural Language Processing, Santa Monica, California, pages 3–16, 1983.
[35]. Woods W.A., Kaplan R.M., Webber B.N. The Lunar Sciences Natural Language Information System: Final Report. BBN Report 2378, Bolt Beranek and Newman Inc., Cambridge, Massachusetts, 1972.
[36]. Wu M., Zheng X., Duan M., Liu T., Strzalkowski T. Question answering by pattern matching, web-proofing, semantic form proofing. TREC 2003.
[37]. Zhang D., Lee W. S. Question classification using support vector machines.
Proceedings of SIGIR2003, 2003.
[38]. Diệp Quan Ban, Hoàng Văn Thung. Ngữ pháp tiếng Việt. Nhà xuất bản giáo dục, 1999.
[39]. Đinh Điền. So sánh trật tự từ của định ngữ giữa tiếng Anh và tiếng Việt.
[40]. Hồ Bảo Quốc, Hồ Tú Bảo, Đinh Điền. Nghiên cứu và đề xuất một kiến trúc
khung cho xử lý tài liệu tiếng Việt.
[41]. Nguyễn Minh Tuấn, Đặng Quang Vinh, Nguyễn Cẩm Tú. Phân lớp câu hỏi tiếng Việt sử dụng nguyên lý Entropy cực đại. Báo cáo nghiên cứu khoa học sinh viên 2008, Coltech.
[42]. Nguyễn Quốc Đại. Phương pháp xây dựng hệ thống hỏi đáp tiếng Việt dựa trên
Ontology. Khóa luận tốt nghiệp 2009, Coltech.
[43]. Nguyễn Bá Đạt. Nhận dạng thực thể trong văn bản tiếng Việt. Khóa luận tốt
nghiệp 2009, Coltech.
[44]. Phạm Đức Đăng. Phương pháp phân đoạn từ tiếng Việt sử dụng gán nhãn từ
loại. Khóa luận tốt nghiệp 2009, Coltech.
93
[45]. http://www.gate.ac.uk