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
Trang 1Nguyễ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
Trang 2Nguyễ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
Giảng viên hướng dẫn: TS Phạm Bảo Sơn
HÀ NỘI – 2009
Trang 3To My Family
Trang 4Lời cảm ơn
Đầu tiên, tôi xin gửi lời cảm ơn sâu sắc đến giảng viên hướng dẫn của tôi là tiến
sĩ Phạm Bảo Sơn Thầy đã hướng dẫn, hỗ trợ cũng như truyền đạt những kinh nghiệm quý báu giúp tôi hoàn thành khóa luận của mình
Tôi xin chân thành cảm ơn tiến sĩ Bùi Thế Duy Thầy đã giúp đỡ và tạo điều kiện thuận lợi cho tôi trong quá trình thực hiện khóa luận
Tôi xin chân thành cảm ơn các bạn: Nguyễn Quốc Đại, Nguyễn Bá Đạt, Phạm Đức Đăng, Trần Bình Giang Những người bạn cùng thực tập với tôi trong phòng thí nghiệm Các bạn đã đóng góp cho tôi nhiều ý kiến bổ ích
Tôi xin chân thành cảm ơn hai bạn: Ngô Thị Thảo và Tạ Thị Bích Huyền đã giúp đỡ tôi trong lúc tôi khó khăn
Xin cám ơn những người bạn đã luôn ở bên cạnh đã quan tâm, động viên và ủng hộ tôi
Con cảm ơn bố mẹ đã sinh thành, nuôi dưỡng, chăm sóc và động viên con Con cảm ơn bố mẹ rất nhiều
Hà Nội, ngày 23 tháng 5 năm 2009
Nguyễn Quốc Đạt
Trang 5Tóm tắt
Thay vì trả về một danh sách các tài liệu liên quan chứa đựng các từ có trong câu hỏi giống như các cỗ máy tìm kiếm, thì hệ thống hỏi đáp đưa ra câu trả lời chính xác đáp lại mong muốn của người dùng Phân tích câu hỏi là thành phần đầu tiên của bất kỳ một hệ thống hỏi đáp nào Mục tiêu của thành phần này là tạo ra một bộ biểu diễn trung gian để
sử dụng trong phần còn lại của hệ thống Trong khóa luận này, chúng tôi xin giới thiệu
một phương pháp phân tích câu hỏi Phương pháp của chúng tôi đem lại một kết quả
khả quan, góp phần xây dựng nên một hệ thống hỏi đáp tiếng Việt
Trang 6Mục lục
Lời cảm ơn i
Tóm tắt ii
Mục lục iii
Danh sách từ viết tắt v
Danh sách hình vẽ vi
Danh sách bảng viii
Chương 1 Giới thiệu 1
Chương 2 Phân tích câu hỏi trong các hệ thống hỏi đáp 3
2.1 Phân loại câu hỏi 3
2.1.1 Sự phân loại câu hỏi 4
2.1.2 Phân loại câu hỏi dựa trên loại câu trả lời 5
2.1.3 Giới thiệu các phương pháp phân loại câu hỏi 6
2.1.4 Phân loại câu hỏi sử dụng mô hình biểu thức chính quy 6
2.1.4.1 Giới thiệu về biểu thức chính quy 6
2.1.4.2 Phân loại câu hỏi sử dụng biểu thức chính quy 9
2.1.5 Phân loại câu hỏi sử dụng mô hình ngôn ngữ 10
2.1.5.1 Phân lớp câu hỏi sử dụng mô hình unigram 11
2.1.5.2 Phân lớp câu hỏi sử dụng mô hình bigram 13
2.1.5.3 Kết hợp hai mô hình unigram và bigram 14
2.1.6 Kết hợp mô hình ngôn ngữ với mô hình biểu thức chính quy 15
2.1.7 Phân loại câu hỏi sử dụng các thuật toán học máy 16
2.2 Phân tích câu hỏi trong các hệ thống hỏi đáp sử dụng cơ sở dữ liệu 18
2.2.1 Các hệ thống so khớp mẫu 18
2.2.2 Các hệ thống dựa trên cú pháp 20
2.2.3 Các hệ thống sử dụng văn phạm ngữ nghĩa 22
2.3 Chú giải ngữ nghĩa phục vụ phân tích câu hỏi trong các hệ thống hỏi đáp 26
Chương 3 GATE 28
3.1 Giới thiệu GATE 28
Trang 73.2 Trích chọn thông tin trong GATE 31
3.3 JAPE 33
3.3.1 Giới thiệu về JAPE 33
3.3.2 Thiết lập lựa chọn 33
3.3.3 Khớp mẫu 34
3.3.3.1 Thành phần thay thế (Macro) 35
3.3.3.2 Ngữ cảnh trong văn phạm 36
3.3.4 Một ví dụ đơn giản về JAPE 36
3.3.5 Sử dụng độ ưu tiên 37
3.3.6 Sử dụng Java cho JAPE 37
Chương 4 Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt 38
4.1 Kiến trúc hệ thống 38
4.2 Tiền xử lý 42
4.2.1 Xác định cụm từ để hỏi chuẩn trong câu hỏi ngôn ngữ tự nhiên 43
4.2.2 Tạo chú giải ngữ nghĩa cho các từ đặc biệt 47
4.3 Phân tích cú pháp 49
4.3.1 Xác định cụm danh từ trong câu hỏi 49
4.3.2 Mối quan hệ 54
4.4 Phân tích ngữ nghĩa 58
4.4.1 Phân loại câu hỏi 58
4.4.2 So khớp mẫu 63
4.4.2.1 Cấu tạo của câu hỏi 65
4.4.2.2 Bộ biểu diễn trung gian của câu hỏi 71
Chương 5 Kết quả thực nghiệm 76
Chương 6 Kết luận và hướng phát triển 80
Phụ lục A Chương trình nhúng Java vào JAPE 82
Phụ lục B Bảng nhãn từ loại tiếng Việt 84
Phụ lục C Danh sách câu hỏi thực nghiệm 86
Tài liệu tham khảo 90
Trang 9Danh sách hình vẽ
Hình 2-1: Văn phạm mô tả cấu trúc cú pháp câu 20
Hình 2-2: Cây cú pháp trong một hệ thống dựa trên cú pháp 20
Hình 2-3: Một văn phạm ngữ nghĩa 22
Hình 2-4: Cây cú pháp-ngữ nghĩa trong một văn phạm ngữ nghĩa 23
Hình 2-5: Cây cú pháp ngữ nghĩa của câu hỏi: “Tìm các sinh viên học ít nhất 2 môn do giáo viên A dạy?” 25
Hình 2-6: Kiến trúc của Aqualog 27
Hình 3-1: Kiến trúc của GATE 28
Hình 3-2: Chú giải ngữ nghĩa trong GATE 30
Hình 4-1: Kiến trúc chung của một hệ thống trả lời ngôn ngữ tự nhiên 38
Hình 4-2: Các module của thành phần xử lý câu hỏi ngôn ngữ tự nhiên 39
Hình 4-3: Đầu ra của module phân tích câu hỏi tiếng Việt 41
Hình 4-4: Giao diện GATE khi sử dụng Coltech.NLP.Tokenizer 42
Hình 4-5: Một số từ để hỏi đã được xác định lại bằng cách sử dụng JAPE 44
Hình 4-6: Kiểu chú giải TokenVn cho những từ đặc biệt 47
Hình 4-7: Kiểu chú giải TokenVn sau khi đã thay đổi giá trị của đặc trưng category 48
Hình 4-8: Cụm danh từ trong một số câu hỏi tiếng Việt 49
Hình 4-9: Từ mang ý nghĩa so sánh trong câu hỏi tiếng Việt 52
Hình 4-10: Một ví dụ về kiểu chú giải Danhngu 53
Hình 4-11: Ví dụ về “mối quan hệ” 54
Hình 4-12: Tách từ trong câu hỏi: “Nguyễn Quốc Đạt và Nguyễn Quốc Đại có quê ở Hà Tây phải không?” 55
Hình 4-13: Kiểu chú giải Moiquanhe 57
Trang 10Hình 4-14: Một ví dụ về kiểu chú giải Tudehoi 58
Hình 4-15: Ví dụ về bộ biểu diễn trung gian của câu hỏi 64
Hình 4-16: Một ví dụ về kiểu chú giải Maucauhoi 72
Hình 4-17: Đầu ra của một câu hỏi có cấu tạo dạng Unknterm 73
Hình 4-18: Đầu ra của một câu hỏi có cấu tạo dạng And 74
Hình 4-19: Đầu ra của một câu hỏi có cấu tạo dạng AffirmNeg_3Term 75
Hình 5-1: Ví dụ về một phần câu hỏi được khớp mẫu 77
Hình 5-2: Kết quả phân tích đúng - câu hỏi thỏa mãn tiêu chí 2 78
Hình 5-3: Ví dụ về câu hỏi thỏa mãn tiêu chí 3 78
Hình 5-4: Một ví dụ về phân tích sai – câu hỏi thỏa mãn tiêu chí 1 nhưng không thỏa mãn tiêu chí 2 79
Hình A-1: Chương trình nhúng Java vào JAPE 83
Hình B-1: Nhãn từ loại trong tiếng Việt được dùng trong bộ tách từ trong Coltech.NLP.Tokenizer 85
Trang 11Danh sách bảng
Bảng 4-1: Cấu tạo của cụm danh từ trong câu hỏi tiếng Việt 50 Bảng 4-2: Cấu trúc cụm danh từ được mô tả trong văn phạm JAPE 51 Bảng 5-1: Kết quả đánh giá 77
Trang 12Chương 1 Giới thiệu
Những cỗ máy tìm kiếm hiện nay trả về một danh sách gồm rất nhiều các tài liệu liên quan tới câu hỏi của người sử dụng Nó yêu cầu người sử dụng phải lướt qua các tài liệu này để tìm kiếm thông tin cần thiết Điều này gây ra sự không hài lòng của người dùng khi thời gian dành cho việc tìm kiếm là không nhiều
Các hệ thống hỏi đáp được tạo ra để giải quyết vấn đề nêu trên Hệ thống hỏi đáp đưa ra một câu trả lời chính xác đáp ứng mong muốn của người sử dụng Thành phần xử lý câu hỏi là thành phần đầu tiên trong bất cứ một hệ thống hỏi đáp nào Nhiệm vụ của thành phần này là tạo ra một biểu diễn trung gian của câu hỏi để dùng trong các thành phần còn lại của hệ thống
Những nghiên cứu về hệ thống hỏi đáp trên thế giới đã phát triển, được ứng dụng từ lâu và đem lại nhiều lợi ích Nhưng tại Việt Nam, chưa có nhiều nghiên cứu
về hệ thống hỏi đáp Bởi vậy, trong khóa luận này, chúng tôi giới thiệu: “Phương
pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt” nhằm mục đích góp phần
tạo ra một hệ thống hỏi đáp tiếng Việt
Trong khóa luận của mình, chúng tôi đề xuất một phương pháp phân tích câu hỏi tiếng Việt dựa trên các chú giải ngữ nghĩa Phương pháp của chúng tôi tạo ra một biểu diễn trung gian của mỗi câu hỏi đầu vào thông qua một loạt các quá trình xử lý như: tiền xử lý, phân tích cú pháp, phân tích ngữ nghĩa, phân loại câu hỏi Mỗi bộ biểu diễn trung gian của câu hỏi chứa đựng: dạng (nguyên tắc) cấu tạo của câu hỏi, phân lớp của câu hỏi, các từ khóa có trong câu hỏi cũng như những ràng buộc ngữ nghĩa giữa các từ khóa đó
Phương pháp của chúng tôi đem lại một kết quả khả quan trong việc phân tích các câu hỏi ngôn ngữ tự nhiên Ngoài phương pháp của mình, chúng tôi còn nghiên cứu
và tìm hiểu những lý thuyết liên quan đến phân tích câu hỏi trong các hệ thống hỏi đáp
Trang 13Phầ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
Trang 14Chương 2 Phân tích câu hỏi trong các hệ thống hỏi đáp
Phân tích câu hỏi là thành phần đầu tiên cho một hệ thống hỏi đáp Nó sinh ra một biểu diễn của câu hỏi để dùng trong phần còn lại của hệ thống Phân tích câu hỏi ở mức độ đơn giản nhất chính là phân loại câu hỏi Sau đó, những kỹ thuật xử lý ngôn ngữ tự nhiên được sử dụng để nhận biết chính xác các từ khóa cũng như các ràng buộc ngữ nghĩa trong câu hỏi nhằm mục tiêu đưa ra câu trả lời chính xác nhất
2.1 Phân loại câu hỏi
Vấn đề xử lý câu hỏi ngôn ngữ tự nhiên trong hệ thống hỏi đáp có thể trở nên dễ dàng hơn bằng cách thực hiện phân loại [30] Điều này có nghĩa là, quá trình tìm ra sự khác nhau hoặc giống nhau giữa các câu hỏi là cơ sở cho sự tổng quát sau đó [8]
Chúng ta định nghĩa phân loại câu hỏi là nhiệm vụ ánh xạ một câu hỏi cho trước vào một trong lớp Nghĩa là với một câu hỏi đầu vào, quá trình phân loại sẽ đưa ra lớp tương ứng của câu hỏi, các lớp này cung cấp những ràng buộc ngữ nghĩa dựa trên câu trả lời mong muốn
Sự kết hợp của các từ nhằm tạo ra một câu hỏi dường như là vô tận Phương pháp trả lời tất cả các câu hỏi, mà hệ thống hỏi đáp có thể bắt gặp, nằm ngoài khả năng tính toán hiện nay Một hướng tiếp cận, cố gắng làm cho vấn đề này trở nên dàng hơn,
là khái quát hóa các câu hỏi thành một số lượng hữu hạn các lớp câu hỏi Với cách làm như vậy, vấn đề sẽ bớt phức tạp hơn Tính phức tạp được giảm đi bao nhiêu còn phụ thuộc vào phương pháp phân loại được sử dụng để làm đơn giản hóa vấn đề Nhưng có một mặt không tốt của việc phân loại câu hỏi đó là luôn luôn mất một vài thông tin trong câu hỏi, điều này dẫn đến một hệ thống trả lời câu hỏi có thể đưa ra câu trả lời sai hoặc không đưa ra bất kỳ một câu trả lời nào
Trang 152.1.1 Sự phân loại câu hỏi
Hầu hết các cách phân loại hiện nay phân loại câu hỏi dựa trên các từ để hỏi và/hoặc một số từ khóa trong các câu hỏi dựa trên cơ sở tri thức hiện có Phân loại dựa trên từ
để hỏi chuẩn (trong tiếng Anh là: who, what, when, where, why, how) không cho biết
bất cứ thông tin về câu hỏi ngoại trừ loại câu trả lời mong muốn Trong khi câu hỏi còn cho biết nhiều thông tin liên quan đến cơ sở tri thức và các thông tin này vô cùng
có ích để tìm câu trả lời cho câu hỏi, thì cách phân loại dựa trên từ để hỏi chuẩn không đưa ra bất cứ mối quan hệ ngữ nghĩa nào giữa các câu hỏi và cơ sở tri thức
Sử dụng các từ khóa với mục đích phân loại câu hỏi làm tăng sự phức tạp cho
hệ thống Hầu hết các hệ thống sử dụng hướng tiếp cận này thực hiện tốt trong một miền mà có không nhiều sự phức tạp Tuy nhiên, đây không phải là một phương pháp tồi Trong thực tế, nhiều hệ thống đã đưa ra những kết quả tốt với cách phân loại dựa trên từ khóa nhưng không hệ thống nào hoàn thành việc hiểu đúng ngữ nghĩa của câu hỏi được hỏi
Hệ thống phân loại các câu hỏi cần dựa trên các kiểu thông tin có trong câu hỏi
và loại câu trả lời mong muốn Hơn nữa, hệ thống cần thực hiện phân loại một cách hoàn toàn độc lập với cơ sở tri thức Hướng phân loại dựa hoàn toàn vào cơ sở tri thức đáng lẽ rất quan trọng, bởi vì một câu hỏi được hỏi sẽ được phân loại theo cùng một cách dù tri thức mà hệ thống có là gì đi chăng nữa Điều đó không có nghĩa là một câu hỏi sẽ có nhiều nghĩa khác nhau, do đó nó có nhiều câu trả lời khác nhau phụ thuộc vào ngữ cảnh của câu hỏi Tuy nhiên, chúng ta có thể thấy rằng đó chỉ là một kết quả của một cách mà cơ sở tri thức hiểu câu hỏi Và những câu trả lời được đưa ra có thể hoàn toàn khác từ một cơ sở tri thức khác
Ví dụ, cùng một câu hỏi được hỏi tới hai người khác nhau, chẳng hạn như, cùng
một câu hỏi “Can I have a shot?” được hỏi tới một ông bác sĩ và một anh bồi bàn
trong quán rượi Câu hỏi sẽ được hiểu theo nhiều cách khác nhau, ông bác sĩ sẽ nghĩa
là “tiêm thuốc”, còn người phục vụ sẽ nghĩ là “ly rượi”
Bởi vậy cùng một câu hỏi nhưng sẽ bị phân vào các lớp khác nhau giống như ví
dụ trên
Trang 162.1.2 Phân loại câu hỏi dựa trên loại câu trả lời
Các câu hỏi chứa đựng thông tin liên quan đến loại câu trả lời mong muốn Thông tin này rất quan trọng đối với hệ thống hỏi đáp, bởi vì nó xác định hình thức của một câu trả lời hợp lý và sẽ có những xử lý cần thiết để đưa ra câu trả lời đó cho câu hỏi Câu trả lời của câu hỏi có thể có các loại sau:
Không đƣợc xử lý (Unprocessed)- các câu trả lời chỉ đơn thuần là tìm kiếm
trong miền tri thức để đưa ra thông tin được hỏi
Số - các câu hỏi mà có câu trả lời là một con số, chúng thường yêu cầu một số
phép tính toán để thu được câu trả lời Ví dụ, “số lượng sinh viên của lớp k50 khoa
học máy tính là bao nhiêu?” Những con số này không có nhiều ý nghĩa, vì thế một hệ
thống hỏi đáp thông minh sẽ trả về một số kiểu đơn vị kèm theo câu trả lời
Câu hỏi đúng sai (Boolean) - đó là dạng câu hỏi mà muốn một câu trả lời là
Đúng hoặc Không (Sai), yêu cầu xử lý cơ sở tri thức
Lời chỉ dẫn (Intructions) - một câu hỏi phức tạp, ví dụ như một danh sách các
bước để hoàn thành một nhiệm vụ hoặc là một giải thích Ví dụ, “Làm thế nào để đi từ
thành phố Hà Nội vào thành phố Hồ Chí Minh?”, câu trả lời sẽ phụ thuộc vào ngữ
cảnh, nhưng nó nên là một danh sách các bước giúp chúng ta có thể đi từ thành phố Hà Nội vào thành phố Hồ Chí Minh
Các bảng tóm tắt (Summaries) – dữ liệu thô được sắp xếp để đưa ra tất cả các
thông tin liên quan thành một chủ đề đặc biệt Ví dụ, “What does Nguyễn Quốc Đạt
like?”, câu trả lời mong muốn sẽ là bảng tóm tắt của tất cả những dữ liệu về Nguyễn Quốc Đạt, mà cơ sở tri thức chứa đựng, có liên quan tới ngữ cảnh của câu hỏi
Xác định kiểu của câu trả lời mong muốn từ một câu hỏi chỉ bằng cách tìm
kiếm các từ để hỏi: who, what, when là một nhiệm vụ hết sức cơ bản, dễ dàng phân
tích và thực thi bởi vì số lượng từ để hỏi là giới hạn
Trang 172.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 <PERSON>?” mà không làm mất thông tin có
ích để xác định loại câu hỏi
Có nhiểu phương pháp phân loại câu hỏi như sử dụng mô hình ngôn ngữ [23][17], hoặc các thuật toán học máy [24] như SVM (Support Vector Machine) [37], hoặc nguyên lý Entropy cực đại [16][41],… Phương pháp được áp dụng trong các hệ thống phân loại đầu tiên, và thường được kết hợp để sử dụng trong các hệ thống phân loại hiện nay là phương pháp phân loại sử dụng mô hình biểu thức chính quy [17]
2.1.4 Phân loại câu hỏi sử dụng mô hình biểu thức chính quy
2.1.4.1 Giới thiệu về biểu thức chính quy
Một biểu thức chính quy thường gọi một mẫu, tức là một biểu thức mà mô tả một tập các xâu Chúng thường được dùng để đưa ra một biểu diễn ngắn gọn của một tập hợp
mà không phải liệt kê các phần tử Ví dụ mẫu [Dd][Aa]t sẽ biểu diễn một tập hợp gồm
4 xâu: “dat”, “DAt”, “dAt”, “Dat” Hầu hết các hệ thống hình thức đều cung cấp các
toán tử dưới đây để tạo ra các biểu thức chính quy:
* Lặp 0 hoặc nhiều lần của một biểu thức chính quy cho trước Ví dụ: ab* sẽ
khớp với các xâu “a”, “ab”, “abb”, “abbb”, …
+ Lặp ít nhất 1 lần của một biểu thức chính quy cho trước Ví dụ biểu thức chính
quy ab+ sẽ khớp với ký tự „a‟ được theo sau ít nhất một ký tự „b‟, nghĩa là biểu thức này sẽ khớp với các xâu: “ab”, “abb”, “abbb”, … mà không khớp với xâu “a”
? Lặp 0 hoặc 1 lần Biểu thức chính quy: ab? Chỉ khớp với “a” hoặc “ab”
Trang 18*?, +? Đị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 “<H1>title</H1>” mà
không phải là “<H1>” 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 “<H1>title</H1>” thì biểu thức sẽ khớp với “<H1>” mà không phải là cả xâu
{m} Cho phép lặp lại đúng m lần của biểu thức chính quy cho trước Ví dụ, a{6} sẽ
khớp với đúng 6 ký tự ‗a‘ là “aaaaaa”
{m,n} Lặp từ m đến n lần của biểu thức chính quy cho trước Ví dụ a{3,5} sẽ khớp
với xâu có từ 3 đến 5 ký tự „a‟ Thiếu m thì sẽ lặp từ 0 đến n lần, còn nếu thiếu
n thì sẽ lặp ít nhất là m lần
| A | B là một biểu thức chính quy, với A và B là hai biểu thức chính quy bất kỳ
Biểu thức này là một biểu thức chính quy chỉ khớp với A hoặc B
"." (dấu chấm) Khớp với tất cả các ký tự trừ ký tự xuống dòng „\n‟
^ (dấu mũ) Khớp từ ký tự đầu một xâu
$ Khớp đến cuối xâu
\ Đây là một ký tự đặc biệt cho phép khớp các ký tự như „*‟, „?‟,…bằng cách
thêm ký tự này vào đằng trước, \* sẽ khớp với „*‟
[] Được sử dụng để xác định một tập các ký tự Các ký tự có thể được liệt kê
riêng lẻ hoặc một dãy các ký tự có thể được nhận biết bằng cách cho hai ký tự
và phân chia chúng bởi ‗-‘ Ví dụ, [bac] sẽ khớp với ba ký tự ‗a‟, „b‟, „c‟; [a-z]
sẽ khớp với tất cả ký tự viết thường từ a đến z Nếu ký tự ^ là ký tự đầu tiên
trong tập các ký tự thì biểu thức sẽ khớp với bất cứ ký tự nào không nằm trong
tập các ký tự đó Ví dụ, [^5] sẽ khớp với bất cứ ký tự nào ngoại trừ „5‟ và [^^]
sẽ khớp với bất cứ ký tự nào ngoại trừ „^‟
(biểu_thức) Khớp với bất cứ biểu thức chính quy nào bên trong hai dấu ngoặc đơn
Một số ký tự đặc biệt:
Trang 19\d Khớp với chữ số số bất kỳ, \d chính là [0-9]
\D Khớp với ký tự bất kỳ mà không phải là chữ số
\w \w chính là [a-zA-Z0-9] khớp với các ký tự viết thường, viết hoa và chữ số
\W \W chính là [^a-zA-Z0-9]
\s Khoảng trắng (space)
\S Ký tự bất kỳ không phải là khoảng trắng, \S chính là [^\s]
Ví dụ áp dụng: biểu thức chính quy <a[^>]*>.*?</a> sẽ khớp với các siêu liên kết
Trang 202.1.4.2 Phân loại câu hỏi sử dụng biểu thức chính quy
Ý tưởng cơ bản của hệ thống phân loại áp dụng mô hình biểu thức chính quy [17] là xác định lớp của câu hỏi dựa trên mẫu câu, bao gồm các từ để hỏi, dãy các từ nào đó
và một số từ thể hiện lớp của các câu hỏi đặc biệt Những mẫu đó được định nghĩa bởi biểu thức chính quy
Ví dụ, một câu hỏi bắt đầu với từ “where” là một câu hỏi về vị trí Đối với từ
“what ” chúng ta có thể tìm một số từ khóa để đưa ra xác định của chúng ta, chẳng
hạn như trong câu hỏi “what” mà có các từ “agency”, “company” và “university” thì
các câu hỏi đó liên quan đến một lớp tổ chức Sau đây là một số biểu thức chính quy
sử dụng cho các lớp nào đó của các câu hỏi:
Các câu hỏi bắt đầu với từ “what” và hỏi về một thực thể con người:
(actor | actresse? | attorne(y | ie) | teacher | … senator)s?
Các câu hỏi mà bắt đầu với từ “how” và hỏi về một thực thể đo lường:
long | short | wide | far | close | big.* (diameter | radius)
Hướng tiếp cận này rất hiệu quả và hữu ích trên một số các mẫu câu hỏi Nhưng
có nhiều trường hợp khó khăn khi sử dụng mẫu Chẳng hạn như, câu trả lời cho câu
hỏi “who” có thể là một người, một tổ chức, thậm chí là một địa điểm nào đó Ví dụ:
“Who is the largest producer of laptop computers in the world?”, chúng ta dễ dàng
nhận thấy đây là một câu hỏi về một tổ chức nhưng hệ thống của chúng ta không xác định được chính xác khi chỉ dựa trên mẫu câu hỏi
Từ ví dụ trên, chúng ta cần có thêm các thông tin ngữ nghĩa trong câu hỏi Hiện nay, thông tin ngữ nghĩa có thể được xác định bởi biểu thức chính quy thông qua văn
phạm JAPE trong GATE [45] Chúng ta sẽ tìm hiểu về GATE sâu hơn ở chương 3 và
áp dụng thực tế được trình bày trong chương 4 Tuy nhiên, trong mô hình biểu thức
chính quy hiện tại, các thông tin ngữ nghĩa lại không xuất hiện trong mô hình biểu thức chính quy Có một cách để giải quyết vấn đề này là xây dựng một tập mẫu đầy đủ
và chính xác hơn nhưng cách này tốn rất nhiều công sức của con người Thay vì xây đựng một mô hình mẫu câu hỏi ngày càng lớn chúng ta hướng tới một phương pháp
linh hoạt và tự động hơn: sử dụng mô hình ngôn ngữ [23][17]
Trang 212.1.5 Phân loại câu hỏi sử dụng mô hình ngôn ngữ
Mô hình ngôn ngữ [23][17]là phân bố xác suất trên tập dữ liệu huấn luyện Chúng ta xây dựng một mô hình ngôn ngữ cho mỗi lớp của các câu hỏi mẫu (chúng ta đã xác định các lớp trong bước đầu tiên khi thực hiện phân loại) Khi có một câu hỏi mới , chúng ta sẽ tính xác suất , nghĩa là tính xác suất để thuộc vào lớp Và lớp của là thỏa mãn:
Vì đã được xác định, nên chúng ta chỉ cần xác định tính xác suất Giải thiết rằng một truy vấn bao gồm từ: Chúng ta có:
Thông thường, mô hình n-gram được tạo ra để đơn giản hóa phép tính:
Công thức trên có nghĩa là xác suất xuất hiện của một từ trong lớp chỉ phụ thuộc vào từ đằng trước
Mô hình ngôn ngữ hơn mô hình biểu thức chính quy ở tính linh hoạt Biểu thức chính quy được soạn thảo theo các luật cứng (hard-coded), nó cần phải sửa đổi để giải quyết những trường hợp mới Trong khi đó, mô hình ngôn ngữ có thể tự động sửa đổi Với một tập hợp dữ liệu huấn luyện lớn, sự thực thi của mô hình ngôn ngữ sẽ được cải thiện
Mô hình n-gram [23] là mô hình ngôn ngữ trong xử lý ngôn ngữ tự nhiên dựa trên thống kê, n-gram là một dãy con gồm phần tử liên tiếp nhau của một dãy các
phần từ cho trước Ví dụ với đầu vào : ―Ba học sinh đi đá bóng‖
“Ba”, “học”, “sinh”, “đi”, “đá”, “bóng” gọi là các 1-gram hay unigram
“Ba học”, “học sinh”, “sinh đi”, “đi đá”, “đá bóng” gọi là các 2-gram hay bigram
Trang 222.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à
làm mịn để loại bỏ xác suất bằng 0 như sau:
Còn một cách khá phổ biến đó là sử dụng phương pháp làm mịn Good-Turing [13] Phương pháp làm mịn Good-Turing ước lượng xác suất cho các từ mà số lần xuất hiện nhỏ hoặc không xuất hiện, theo ước lượng Good-Turing, được tính theo công thức sau đây:
Trang 23Gọi là cỡ của tập dữ liệu chuẩn, là số lượng các từ mà xuất hiện đúng lần trong Ta có , , được tính theo các công thức dước đây:
M là số lớn nhất thỏa mãn:
trong đó Và:
Trang 242.1.5.2 Phân lớp câu hỏi sử dụng mô hình bigram
Áp dụng mô hình bigram ta có công thức:
Chúng ta cần xác định xác suất có điều kiện
Gọi là số lượng các từ không bao giờ xuất hiện đằng sau trong lớp C, và S là mức độ làm mịn Khi đó, công thức làm mịn để loại bỏ xác suất 0 được chỉ ra trong 2 trường hợp dưới đây
Xét trường hợp 1: , khi đó xác suất cho tất cả ẩn là S Vì thế
Xét trường hợp 2: , khi đó tất cả các là ẩn Vì thế
là giống nhau cho mọi :
Sử dụng mô hình Back-Off [22], chúng ta cũng có thể loại bỏ các xác suất 0
Mô hình Back-Off được phát triển để dùng trong mô hình bigram thay cho ước lượng
Good-Turing Ý tưởng của mô hình Back-Off là chỉ cho phép tỉ lệ thuận với khi sự xuất hiện của trong lớp C lớn hơn một số nào đó Mặt khác chúng ta sử dụng để ước lượng Ta có công thức:
Trang 25α là một sự trừ hao để trừ những xác suất của các bigram xuất hiện nhiều lần và chúng ta giảm tương tự như trong Good-Turing
β được lựa chọn để thỏa mãn công thức sau: , đây là một hàm của
K nên là một số nhỏ và chúng ta nhận thấy rằng K = 0 đưa ra sự thực hiện tốt nhất cho dữ liệu
2.1.5.3 Kết hợp hai mô hình unigram và bigram
Để có thể đánh giá chính xác hơn, chúng ta kết hợp 2 mô hình unigram và bigram với
nhau Công thức tính xác suất như sau:
Các giá trị khác nhau cho λ sẽ được kiểm tra, giá trị nào tốt nhất sẽ được chọn
Trang 262.1.6 Kết hợp mô hình ngôn ngữ với mô hình biểu thức chính quy
Mặc dù mô hình ngôn ngữ [23][17] có vẻ hấp hơn nhưng nó vẫn có tồn tại những mặt không tốt Một trong những mặt đó là tính không ổn định.Ví dụ, chúng ta ko có sự thu hẹp nào trong kết quả phân loại của mô hình ngôn ngữ, hệ thống có thể phân loại câu
hỏi bắt đầu với từ “how many” như câu hỏi về người Trong khi đó, mẫu câu này rất
dễ dàng được phân loại chính xác bởi mô hình biểu thức chính quy.Vì thế chúng ta cố gắng kết hợp chúng để cải thiện sự thực thi Mô hình ngôn ngữ được thay đổi để sinh
ra một danh sách được xếp hạng của các lớp dựa trên độ tin cậy và mô hình biểu thức chính quy đưa ra tất cả các lớp phù hợp với mẫu câu hỏi Sự kết hợp như vậy sinh ra lớp với thứ hạng cao nhất được chấp nhận bởi mô hình biểu thức chính quy chính là kết quả cuối cùng Theo cách như vậy chúng ta có thể tránh được sai lầm
Trang 272.1.7 Phân loại câu hỏi sử dụng các thuật toán học máy
Sử dụng các thuật toán học máy [24] như SVM (Support Vector Machine) [37], hoặc nguyên lý Entropy cực đại [16][41],… thuận lợi hơn các phương pháp thủ công vì
nhiều nguyên nhân Xây dưng bộ phân loại thủ công cho các câu hỏi là một nhiệm vụ thiếu hấp dẫn vì yêu cầu phân tích một số lượng rất lớn các câu hỏi Hơn nữa ánh xạ
các câu hỏi tới các lớp yêu cầu sử dụng các phần tử từ vựng (các từ đặc biệt) vì thế
một mô hình hóa của ánh xạ có thể sẽ rất lớn
Trong khi đó, phương pháp sử dụng các thuật toán học có thể chỉ cần một số lượng nhỏ các loại đặc trưng sau đó được mở rộng theo phương pháp hướng dữ liệu để
có khả năng thực hiện trên một lượng lớn các đặc trưng Ngoài ra, một hệ thống phân lớp sử dụng thuật toán học máy thì mềm dẻo và dễ tái sử dụng lại hơn một bộ phân lớp thủ công bởi vì nó có thể được huấn luyện theo một nguyên tắc phân loại mới chỉ trong thời gian ngắn
Sự khó khăn trong một bộ phân lớp thủ công là xem xét các biểu diễn khác nhau của cùng một câu hỏi Ví dụ:
Ai là sinh viên của lớp khoa học máy tính?
Lớp khoa học máy tính có những sinh viên nào?
Những sinh viên của lớp khoa học máy tính là ai?
Ai học lớp khoa học máy tính?
Các từ khác nhau, các cấu trúc cú pháp khác nhau có thể tạo khó khăn cho một
bộ phân lớp thủ công dựa trên một tập nhỏ các luật để sinh ra tất cả các ánh xạ cho cùng một loại câu trả lời
Mặc dù cần dữ liệu huấn luyện và cách chọn đặc trưng, nhưng với các thuật toán học tốt và các đặc trưng thích hợp, có thể không bị ảnh hưởng bởi số lượng lớn các đặc trưng ẩn, sẽ phân lớp chính xác các ví dụ nêu trên
Các đặc trưng thường được sử dụng trong các hệ thống phân lớp câu hỏi như:
Trang 28Các đặc trưng từ vựng biểu diễn các từ của một câu hỏi được xem như là một đặc trưng Các đặc trưng từ vựng bao gồm: các từ thô, các từ viết thường, các từ gốc (trong tiến Anh là các từ được loại bỏ hậu tố) và từ được bổ ngữ
Sử dụng n-gram bên trong một đặc trưng
Hai từ đầu tiên hoặc cụm danh từ đầu tiên của câu hỏi được biểu diễn như là một đặc trưng
Các đặc trưng cú pháp biểu diễn các khía cạnh cú pháp của một câu hỏi gồm có:
các nhãn từ loại, hoặc cấu trúc cụm cú pháp không đệ quy (non-recursive
grammatical phrase structure)
Các thực thể có tên (Named Entity)
Danh sách các từ liên quan đến nhau về mặt ngữ nghĩa (Sematically Related Words
hay SRW) [18][19]
Hệ thống phân loại áp dụng thuật toán học sử dụng (một hoặc nhiều trong) các đặc trưng nêu trên để tạo ra một mô hình phân loại dựa trên các câu hỏi mẫu dùng để huấn luyện Sau đó, sử dụng mô hình phân loại để đưa ra lớp tương ứng của một câu hỏi mới
Trang 292.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
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” … <country>
Hành động: Trả về Capital của hàng mà Country = <country>
Mẫu: “capital” “country”
Hành động: Trả về Capital và Country của mỗi hàng
Trang 30Luật đầu tiên có nghĩa là: nếu câu hỏi của người sử dụng chứa đựng từ
“capital” được theo sau bởi tên của một quốc gia (một cái tên xuất hiện trong cột Country) thì hệ thống xác định vị trí cột chứa đựng tên quốc gia đó và đưa ra tên thủ
đô tương ứng
Cho ví dụ, với câu hỏi: “What is the capital of Italy?”, hệ thống sẽ sử dụng luật đầu tiên và trả về kết quả là “Rome” Một luật có thể cho phép hệ thống xử lý nhiều câu hỏi như: “Print the capital of Italy”, “Could you please tell me what is the capital
of Italy?”, … Trong tất cả các trường hợp đó, câu trả lời được sinh ra là như nhau
Theo luật thứ hai, bất kỳ câu hỏi của người sử dụng chứa đựng từ “capital” được theo sau bởi từ “country” hệ thống sẽ trả về tên thủ đô của tất cả các quốc gia có
trong cơ sở dữ liệu
Ví dụ, “what is the capital of each country?”, “List the capital of every
country?”, “Captial and country please.”, … sẽ được xử lý bởi luật thứ hai
Lợi thế chính của hướng tiếp cận so khớp mẫu là tính đơn giản của nó và hệ thống có thể dễ dàng thực thi Ngoài ra, một số hệ thống so khớp mẫu thường thành công trong việc đưa ra một câu trả lời hợp lý Các hệ thống so khớp mẫu không nhất thiết phải dựa trên các kỹ thuật đơn giản như được trình bày phía trên Một số hệ thống so khớp mẫu có khả năng thực hiện tốt trong những ứng dụng nhất định Tuy nhiên tính chất không sâu của phương pháp so khớp mẫu thường dẫn tới những kết quả sai
Trang 312.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
Trang 32Sau đó, 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):
Ánh xạ của “which” là for_every X
Ánh xạ của ―rock‖ là (is_rock X)
Ánh xạ của một cụm danh từ (NP) là Det‟ N‟, trong đó Det‟ và N‟ lần lượt là các ánh xạ của từ xác định (Determiner) và danh từ Do đó, ánh xạ của cây con NP là
for_every X (is _rock X)
Ánh xạ của “contains” là contains
Ánh xạ của “magnesium” là magnesium
Ánh xạ của một cụm động từ (VP) là V‟ X N‟, trong đó V‟ là ánh xạ của động từ còn N‟ là ánh xạ của danh từ anh em với động từ Bởi vậy, ánh xạ của cây con VP
là (contains X magnesium)
Ánh xạ của S là (NP‟ VP‟; (printout X)), trong đó NP‟ và VP‟ lần lượt là ánh xạ của cây con NP và VP Vì thế, ánh xạ của câu trong ví dụ của chúng ta như được chỉ ra
phía trên
Các hệ thống NLIDB thường ghép nối tới các hệ thống cơ sở dữ liệu ứng dụng
cụ thể và các hệ thống cơ sở dữ liệu đó cung cấp các ngôn ngữ truy vấn cơ sở dữ liệu Thông thường rất khó khăn để đưa ra các luật ánh xạ, mà các luật này có thể ánh xạ
trực tiếp cây phân phân tích cú pháp tới một số biểu thức được biểu diễn trong một ngôn ngữ truy vấn cơ sở dữ liệu, ví dụ như SQL
Trang 332.2.3 Các hệ thống sử dụng văn phạm ngữ nghĩa
Vì những hạn chế của kỹ thuật phân tích dựa trên cú pháp, các hệ thống sau đó đã cải thiện bằng cách sử dụng văn phạm ngữ nghĩa Quá trình trả lời câu hỏi vẫn còn được thực hiện bằng cách phân tích câu hỏi thành cây cú pháp và ánh xạ cây cú pháp tới một truy vấn cơ sở dữ liệu Trong trường hợp này, sự khác biệt ở đây đó là các khái niệm ngữ nghĩa không nhất thiết phải tương ứng với các khái niệm cú pháp Một số luật ngữ nghĩa được chỉ ra trong hình 2-3 sau đây:
S → Specimen_question | Spacecraft_question
Specimen_question → Specimen Emits_info | Specimen Contains_ info
Specimen → “which rock” | “which specimen”
Emits_info → “emits” Radiation
Radiation → “radiation” | “light”
Contain_ info → “contains” Substance
Substance → “magnesium” | “calcium”
Spacecraft_question → Spacecraft Depart_info | Spacecraft Arrive_info
Spacecraft → “which vessel” | “which spacecraft”
Depart_info → “was launched on” Date | “departed on” Date
Arrive_info → “returns on” Date | “arrives on” Date
Hình 2-3: Một văn phạm ngữ nghĩa
Chúng ta có thể thấy rằng một khái niệm ngữ nghĩa (Substance, Radiation,
Specimen question) không tương ứng với các thành phần ngữ pháp (cụm danh từ, cụm động từ, câu)
Thông tin ngữ nghĩa về miền tri thức được gắn vào văn phạm Các loại văn phạm ngữ nghĩa thường được lựa chọn để tuân theo các ràng buộc về ngữ nghĩa
Trang 34Ví 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ó
Trang 35cá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 <conditions> <selection condition><conjunction><conditions>
2 <conditions> <joint condition><conditions>
3 <joint condition> <source> <negative> <SR>
4 <joint condition> <SR><source>
5 <negative> „chưa not yet /không no ‟
6 <joint condition> <negative> <SR><source>
7 <source> <quantity><entity><conditions>
8 <source> <values>
9 <quantity> <stress word><number>
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:
Trang 36Hình 2-5: Cây cú pháp ngữ nghĩa của câu hỏi: “Tìm các sinh viên học ít nhất 2 môn do
giáo viên A dạy?”
Một số hệ thống sử dụng các văn phạm ngữ nghĩa khác là Planes[5], Eufid [34],
hệ thống dựa trên cấu trúc ngữ nghĩa [25] …
Văn phạm ngữ nghĩa được giới thiệu như là một hệ phương pháp kỹ thuật cho phép tri thức ngữ nghĩa có thể dễ dàng được đưa vào trong hệ thống Tuy nhiên, khi các văn phạm ngữ nghĩa chứa đựng tri thức về một miền đặc biệt nào đó thì hệ thống dựa trên hướng tiếp cận này rất khó có thể tái sử dụng trong các miền tri thức khác Điều này có nghĩa là một văn phạm ngữ nghĩa mới cần được tạo ra bất cứ khi nào hệ
thống NLIDB được sử dụng cho miền tri thức khác
Trang 37Ví dụ, các luật ngữ nghĩa trong hình 2-3 là hoàn toàn vô dụng trong một ứng dụng mà cơ sở dữ liệu chứa đựng thông tin về nhân viên và tiền lương Trái lại, một số thông tin của cú pháp trong phần 2.2, ví dụ như một câu chứa đựng một cụm danh từ được theo sau bởi cụm động từ, vẫn còn được sử dụng trong một ứng dụng mà các câu hỏi liên quan tới nhân viên và tiền lương của họ
2.3 Chú giải ngữ nghĩa phục vụ phân tích câu hỏi trong các hệ thống hỏi đáp
Sự phát triển của các kỹ thuật phân tích câu hỏi không song song với sự phát triển của các hệ thống hỏi đáp Các hệ thống trả lời câu hỏi phát triển từ các hệ thống miền đóng (giải quyết những câu hỏi về một lĩnh vực nhất định) cho đến những hệ thống miền mở (giải quyết những câu hỏi về tất cả mọi thứ), từ những hệ thống sử dụng cơ
sở dữ liệu (NLIDB) cho đến những hệ thống sử dụng cơ sở tri thức (web ngữ nghĩa,
Ontology) Tuy các kỹ thuật được trình bày ở phần 2.2 được sử dụng trong các hệ
thống NLIDB, nhưng chúng lại được phát triển, mở rộng và áp dụng trên hầu hết các
loại hệ thống trả lời câu hỏi Phương pháp phân tích cú pháp của câu hỏi được dùng
trong cả các hệ thống miền mở như Falcon [10] hoặc [11] bằng cách sử dụng gán nhãn
từ loại (Part-of-Speech Tagging hay POS Tagging) Phương pháp so khớp mẫu được
dùng trong các hệ thống miền mở như trong [33][36]
Thời gian gần đây, phương pháp sử dụng chú giải ngữ nghĩa đã đem lại hiệu quả cao trong phân tích câu hỏi Hệ thống xử lý ngôn ngữ tự nhiên xây dựng các chú
giải được biết đến và được sử dụng nhiều nhất là GATE [40][45] (General
Architecture for Text Engineering) GATE được sử dụng trong rất nhiều hệ thống trả
lời câu hỏi như: Aqualog [20][21], QuestIO [5],…
Hệ thống Aqualog được giới thiệu bởi Vanessa Lopez và các tác giả khác là một
hệ thống trả lời câu hỏi được đánh giá rất cao trong thời điểm hiện nay Aqualog lấy các
câu hỏi được biểu diễn trong ngôn ngữ tự nhiên và một Ontology như đầu vào, sau đó trả về trả lời thu được từ những đánh dấu ngữ nghĩa phù hợp với Ontology có sẵn
Kiến trúc Aqualog có thể được mô tả như một mô hình thác nước, trong đó câu hỏi ngôn ngữ tự nhiên thông qua thành phần ngôn ngữ (Linguistic Component) được
Trang 38chuyển một tập các các biểu diễn dựa trên bộ ba trung gian được hiểu như là
Query-Triple Sau đó, thành phần phục vụ tương tự quan hệ (Relation Similarity Service) lấy
đầu vào là các Query-Triple và xử lý chúng để sinh ra các truy vấn phù hợp với Ontology được gọi là các Onto-Triple Kiến trúc của Aqualog được chỉ ra trong hình
2-6 dưới đây:
Hình 2-6: Kiến trúc của Aqualog
Aqualog thực hiện phân tích ngữ nghĩa và cú pháp của câu hỏi thông qua việc
sử dụng các tài nguyên xử lý của GATE [40][45] cho tách từ, phân đoạn câu, gán nhãn
từ loại, cụm động từ trong thành phần ngôn ngữ Khi một câu hỏi được hỏi, nhiệm vụ của thành phần ngôn ngữ là chuyển từ ngôn ngữ tự nhiên tới định dạng bộ ba biểu diễn
trung gian Query-Triple Một Query-Triple có dạng: <thuật ngữ chung, mối quan hệ,
từ thứ hai>, trong đó, “mối quan hệ” có thể thiếu tùy thuộc vào kiểu của câu hỏi Đầu
ra khi sử dụng GATE là một tập các các chú giải ngữ nghĩa được liên kết với câu hỏi đầu vào Thông qua việc sử dụng văn phạm JAPE (Java Annotations Pattern Engine) [40][45], AquaLog mở rộng tập các chú giải được trả về bởi GATE, bằng cách nhận
biết các thuật ngữ, các mối quan hệ, và kiểu của các câu hỏi
Một số hệ thống khác không sử dụng GATE phân tích câu hỏi nhưng vẫn dựa trên chú giải ngữ nghĩa là: START [14][15], PIQASso [2],…
Trang 39Chươ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
Trang 40GATE có 3 kiểu thành phần chính:
Tài nguyên ngôn ngữ (Language Resources) chứa một số loại dữ liệu ngôn ngữ
như: các tài liệu, các tập dữ liệu (corpus), các ontology và cung cấp những dịch vụ cho việc truy cập nó
Tài nguyên xử lý (Processing Resources) là những nguồn mà đặc trưng của chúng
chủ yếu là theo chưong trình hoặc thuật toán như gán nhãn từ loại hay tách từ
Tài nguyên trực quan (Visual Resources) là thành phần đồ hoạ hiển thị trên giao
diện người dùng
Mối quan hệ ngữ nghĩa được GATE xử lý thông qua chú giải Các chú giải ngữ nghĩa (Annotation) được lưu trữ trong các cấu trúc được gọi là các tập chú giải Các
tập chú giải cấu thành các tầng độc lập của chú giải trên toàn bộ nội dung của văn bản
Một chú giải được định nghĩa bởi (hình 3-2):
Điểm bắt đầu (Start) là một ví trí trong nội dung tài liệu
Điểm kết thúc (End) là một vị trí trong nội dung tài liệu
Kiểu (Type) là một giá trị String
Một tập các đặc trưng (Features) được biểu diễn giống như các cặp thuộc tính-giá trị Mỗi một đặc trưng (kiểu String) sẽ có một giá trị (kiểu đối tượng trong Java)
tương ứng
ID là một giá trị Integer ID của các chú giải là duy nhất trong một tập chú giải