phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng việt - Pdf 10

ĐẠ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Ệ

To My Family

Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt Nguyễn Quốc Đạt
i Lời cảm ơn
Đầu tiên, tôi xin gửi lời cảm ơn sâu sắc đến giảng viên hướng dẫn của tôi là tiến
sĩ Phạm Bảo Sơn. Thầy đã hướng dẫn, hỗ trợ cũng như truyền đạt những kinh nghiệm
quý báu giúp tôi hoàn thành khóa luận của mình.
Tôi xin chân thành cảm ơn tiến sĩ Bùi Thế Duy. Thầy đã giúp đỡ và tạo điều
kiện thuận lợi cho tôi trong quá trình thực hiện khóa luận.
Tôi xin chân thành cảm ơn các bạn: Nguyễn Quốc Đại, Nguyễn Bá Đạt, Phạm
Đức Đăng, Trần Bình Giang. Những người bạn cùng thực tập với tôi trong phòng thí
nghiệm. Các bạn đã đóng góp cho tôi nhiều ý kiến bổ ích.
Tôi xin chân thành cảm ơn hai bạn: Ngô Thị Thảo và Tạ Thị Bích Huyền đã
giúp đỡ tôi trong lúc tôi khó khăn.
Xin cám ơn những người bạn đã luôn ở bên cạnh đã quan tâm, động viên và


Mục lục
Lời cảm ơn i
Tóm tắt ii
Mục lục iii
Danh sách từ viết tắt v
Danh sách hình vẽ vi
Danh sách bảng viii
Chƣơng 1. Giới thiệu 1
Chƣơng 2. Phân tích câu hỏi trong các hệ thống hỏi đáp 3
2.1. Phân loại câu hỏi 3
2.1.1. Sự phân loại câu hỏi 4
2.1.2. Phân loại câu hỏi dựa trên loại câu trả lời 5
2.1.3. Giới thiệu các phương pháp phân loại câu hỏi 6
2.1.4. Phân loại câu hỏi sử dụng mô hình biểu thức chính quy 6
2.1.4.1. Giới thiệu về biểu thức chính quy 6
2.1.4.2. Phân loại câu hỏi sử dụng biểu thức chính quy 9
2.1.5. Phân loại câu hỏi sử dụng mô hình ngôn ngữ 10
2.1.5.1. Phân lớp câu hỏi sử dụng mô hình unigram 11
2.1.5.2. Phân lớp câu hỏi sử dụng mô hình bigram 13
2.1.5.3. Kết hợp hai mô hình unigram và bigram 14
2.1.6. Kết hợp mô hình ngôn ngữ với mô hình biểu thức chính quy 15
2.1.7. Phân loại câu hỏi sử dụng các thuật toán học máy 16
2.2. Phân tích câu hỏi trong các hệ thống hỏi đáp sử dụng cơ sở dữ liệu 18
2.2.1. Các hệ thống so khớp mẫu 18
2.2.2. Các hệ thống dựa trên cú pháp 20
2.2.3. Các hệ thống sử dụng văn phạm ngữ nghĩa 22
2.3. Chú giải ngữ nghĩa phục vụ phân tích câu hỏi trong các hệ thống hỏi đáp 26
Chƣơng 3. GATE 28
3.1. Giới thiệu GATE 28

Chƣơng 5. Kết quả thực nghiệm 76
Chƣơng 6. Kết luận và hƣớng phát triển 80
Phụ lục A. Chƣơng trình nhúng Java vào JAPE 82
Phụ lục B. Bảng nhãn từ loại tiếng Việt 84
Phụ lục C. Danh sách câu hỏi thực nghiệm 86
Tài liệu tham khảo 90 Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt Nguyễn Quốc Đạt
v Danh sách từ viết tắt
ANNIE
API
GATE
IE
JAPE
NER
A New-Nearly Information Extraction
Application Program Interface
General Architecture for Text Engineering
Information Extraction
Java Annotations Pattern Engine
Named Entity Recognitioin
SRW
Sematically Related Words

Hình 4-3: Đầu ra của module phân tích câu hỏi tiếng Việt 41
Hình 4-4: Giao diện GATE khi sử dụng Coltech.NLP.Tokenizer 42
Hình 4-5: Một số từ để hỏi đã được xác định lại bằng cách sử dụng JAPE 44
Hình 4-6: Kiểu chú giải TokenVn cho những từ đặc biệt 47
Hình 4-7: Kiểu chú giải TokenVn sau khi đã thay đổi giá trị của đặc trưng category 48
Hình 4-8: Cụm danh từ trong một số câu hỏi tiếng Việt 49
Hình 4-9: Từ mang ý nghĩa so sánh trong câu hỏi tiếng Việt 52
Hình 4-10: Một ví dụ về kiểu chú giải Danhngu 53
Hình 4-11: Ví dụ về “mối quan hệ” 54
Hình 4-12: Tách từ trong câu hỏi: “Nguyễn Quốc Đạt và Nguyễn Quốc Đại có quê ở
Hà Tây phải không?” 55
Hình 4-13: Kiểu chú giải Moiquanhe 57
Phương pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt Nguyễn Quốc Đạt
vii Hình 4-14: Một ví dụ về kiểu chú giải Tudehoi 58
Hình 4-15: Ví dụ về bộ biểu diễn trung gian của câu hỏi 64
Hình 4-16: Một ví dụ về kiểu chú giải Maucauhoi 72
Hình 4-17: Đầu ra của một câu hỏi có cấu tạo dạng Unknterm 73
Hình 4-18: Đầu ra của một câu hỏi có cấu tạo dạng And 74
Hình 4-19: Đầu ra của một câu hỏi có cấu tạo dạng AffirmNeg_3Term 75
Hình 5-1: Ví dụ về một phần câu hỏi được khớp mẫu 77
Hình 5-2: Kết quả phân tích đúng - câu hỏi thỏa mãn tiêu chí 2 78
Hình 5-3: Ví dụ về câu hỏi thỏa mãn tiêu chí 3 78
Hình 5-4: Một ví dụ về phân tích sai – câu hỏi thỏa mãn tiêu chí 1 nhưng không thỏa
mãn tiêu chí 2 79


1 Chƣơng 1. Giới thiệu
Những cỗ máy tìm kiếm hiện nay trả về một danh sách gồm rất nhiều các tài liệu liên
quan tới câu hỏi của người sử dụng. Nó yêu cầu người sử dụng phải lướt qua các tài
liệu này để tìm kiếm thông tin cần thiết. Điều này gây ra sự không hài lòng của người
dùng khi thời gian dành cho việc tìm kiếm là không nhiều.
Các hệ thống hỏi đáp được tạo ra để giải quyết vấn đề nêu trên. Hệ thống hỏi
đáp đưa ra một câu trả lời chính xác đáp ứng mong muốn của người sử dụng. Thành
phần xử lý câu hỏi là thành phần đầu tiên trong bất cứ một hệ thống hỏi đáp nào.
Nhiệm vụ của thành phần này là tạo ra một biểu diễn trung gian của câu hỏi để dùng
trong các thành phần còn lại của hệ thống.
Những nghiên cứu về hệ thống hỏi đáp trên thế giới đã phát triển, được ứng
dụng từ lâu và đem lại nhiều lợi ích. Nhưng tại Việt Nam, chưa có nhiều nghiên cứu
về hệ thống hỏi đáp. Bởi vậy, trong khóa luận này, chúng tôi giới thiệu: “Phương
pháp phân tích câu hỏi cho hệ thống hỏi đáp tiếng Việt” nhằm mục đích góp phần
tạo ra một hệ thống hỏi đáp tiếng Việt.
Trong khóa luận của mình, chúng tôi đề xuất một phương pháp phân tích câu
hỏi tiếng Việt dựa trên các chú giải ngữ nghĩa. Phương pháp của chúng tôi tạo ra một
biểu diễn trung gian của mỗi câu hỏi đầu vào thông qua một loạt các quá trình xử lý
như: tiền xử lý, phân tích cú pháp, phân tích ngữ nghĩa, phân loại câu hỏi. Mỗi bộ biểu
diễn trung gian của câu hỏi chứa đựng: dạng (nguyên tắc) cấu tạo của câu hỏi, phân
lớp của câu hỏi, các từ khóa có trong câu hỏi cũng như những ràng buộc ngữ nghĩa
giữa các từ khóa đó.
Phương pháp của chúng tôi đem lại một kết quả khả quan trong việc phân tích
các câu hỏi ngôn ngữ tự nhiên. Ngoài phương pháp của mình, chúng tôi còn nghiên cứu
và tìm hiểu những lý thuyết liên quan đến phân tích câu hỏi trong các hệ thống hỏi đáp.
Chương 1. Giới thiệu Nguyễn Quốc Đạt

Vấn đề xử lý câu hỏi ngôn ngữ tự nhiên trong hệ thống hỏi đáp có thể trở nên dễ dàng
hơn bằng cách thực hiện phân loại [30]. Điều này có nghĩa là, quá trình tìm ra sự khác
nhau hoặc giống nhau giữa các câu hỏi là cơ sở cho sự tổng quát sau đó [8].
Chúng ta định nghĩa phân loại câu hỏi là nhiệm vụ ánh xạ một câu hỏi cho
trước vào một trong lớp. Nghĩa là với một câu hỏi đầu vào, quá trình phân loại sẽ
đưa ra lớp tương ứng của câu hỏi, các lớp này cung cấp những ràng buộc ngữ nghĩa
dựa trên câu trả lời mong muốn.
Sự kết hợp của các từ nhằm tạo ra một câu hỏi dường như là vô tận. Phương
pháp trả lời tất cả các câu hỏi, mà hệ thống hỏi đáp có thể bắt gặp, nằm ngoài khả năng
tính toán hiện nay. Một hướng tiếp cận, cố gắng làm cho vấn đề này trở nên dàng hơn,
là khái quát hóa các câu hỏi thành một số lượng hữu hạn các lớp câu hỏi. Với cách làm
như vậy, vấn đề sẽ bớt phức tạp hơn. Tính phức tạp được giảm đi bao nhiêu còn phụ
thuộc vào phương pháp phân loại được sử dụng để làm đơn giản hóa vấn đề. Nhưng có
một mặt không tốt của việc phân loại câu hỏi đó là luôn luôn mất một vài thông tin
trong câu hỏi, điều này dẫn đến một hệ thống trả lời câu hỏi có thể đưa ra câu trả lời
sai hoặc không đưa ra bất kỳ một câu trả lời nào.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt

4 2.1.1. Sự phân loại câu hỏi
Hầu hết các cách phân loại hiện nay phân loại câu hỏi dựa trên các từ để hỏi và/hoặc
một số từ khóa trong các câu hỏi dựa trên cơ sở tri thức hiện có. Phân loại dựa trên từ
để hỏi chuẩn (trong tiếng Anh là: who, what, when, where, why, how) không cho biết
bất cứ thông tin về câu hỏi ngoại trừ loại câu trả lời mong muốn. Trong khi câu hỏi
còn cho biết nhiều thông tin liên quan đến cơ sở tri thức và các thông tin này vô cùng


2.1.2. Phân loại câu hỏi dựa trên loại câu trả lời
Các câu hỏi chứa đựng thông tin liên quan đến loại câu trả lời mong muốn. Thông tin
này rất quan trọng đối với hệ thống hỏi đáp, bởi vì nó xác định hình thức của một câu
trả lời hợp lý và sẽ có những xử lý cần thiết để đưa ra câu trả lời đó cho câu hỏi. Câu
trả lời của câu hỏi có thể có các loại sau:
Không đƣợc xử lý (Unprocessed)- các câu trả lời chỉ đơn thuần là tìm kiếm
trong miền tri thức để đưa ra thông tin được hỏi.
Số - các câu hỏi mà có câu trả lời là một con số, chúng thường yêu cầu một số
phép tính toán để thu được câu trả lời. Ví dụ, “số lượng sinh viên của lớp k50 khoa
học máy tính là bao nhiêu?”. Những con số này không có nhiều ý nghĩa, vì thế một hệ
thống hỏi đáp thông minh sẽ trả về một số kiểu đơn vị kèm theo câu trả lời.
Câu hỏi đúng sai (Boolean) - đó là dạng câu hỏi mà muốn một câu trả lời là
Đúng hoặc Không (Sai), yêu cầu xử lý cơ sở tri thức.
Lời chỉ dẫn (Intructions) - một câu hỏi phức tạp, ví dụ như một danh sách các
bước để hoàn thành một nhiệm vụ hoặc là một giải thích. Ví dụ, “Làm thế nào để đi từ
thành phố Hà Nội vào thành phố Hồ Chí Minh?”, câu trả lời sẽ phụ thuộc vào ngữ
cảnh, nhưng nó nên là một danh sách các bước giúp chúng ta có thể đi từ thành phố Hà
Nội vào thành phố Hồ Chí Minh.
Các bảng tóm tắt (Summaries) – dữ liệu thô được sắp xếp để đưa ra tất cả các
thông tin liên quan thành một chủ đề đặc biệt. Ví dụ, “What does Nguyễn Quốc Đạt
like?”, câu trả lời mong muốn sẽ là bảng tóm tắt của tất cả những dữ liệu về Nguyễn
Quốc Đạt, mà cơ sở tri thức chứa đựng, có liên quan tới ngữ cảnh của câu hỏi.
Xác định kiểu của câu trả lời mong muốn từ một câu hỏi chỉ bằng cách tìm
kiếm các từ để hỏi: who, what, when là một nhiệm vụ hết sức cơ bản, dễ dàng phân
tích và thực thi bởi vì số lượng từ để hỏi là giới hạn. Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt


biểu thức này sẽ khớp với các xâu: “ab”, “abb”, “abbb”, … mà không khớp
với xâu “a”.
? Lặp 0 hoặc 1 lần. Biểu thức chính quy: ab? Chỉ khớp với “a” hoặc “ab”.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt

7 *?, +? Định tính của "*" và “+” là tham lam, có nghĩa chúng khớp với nhiều chữ nhất
có thể có. Trong một số trường hợp, hoạt động như vậy là không mong muốn.
Ví dụ, biểu thức chính quy <.*> sẽ khớp với cả xâu “<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 „*‟.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt

9 2.1.4.2. Phân loại câu hỏi sử dụng biểu thức chính quy
Ý tưởng cơ bản của hệ thống phân loại áp dụng mô hình biểu thức chính quy [17] là
xác định lớp của câu hỏi dựa trên mẫu câu, bao gồm các từ để hỏi, dãy các từ nào đó
và một số từ thể hiện lớp của các câu hỏi đặc biệt. Những mẫu đó được định nghĩa bởi
biểu thức chính quy.
Ví dụ, một câu hỏi bắt đầu với từ “where” là một câu hỏi về vị trí. Đối với từ
“what ” chúng ta có thể tìm một số từ khóa để đưa ra xác định của chúng ta, chẳng
hạn như trong câu hỏi “what” mà có các từ “agency”, “company” và “university” thì
các câu hỏi đó liên quan đến một lớp tổ chức. Sau đây là một số biểu thức chính quy
sử dụng cho các lớp nào đó của các câu hỏi:
Các câu hỏi bắt đầu với từ “what” và hỏi về một thực thể con người:
(actor | actresse? | attorne(y | ie) | teacher | …. senator)s?
Các câu hỏi mà bắt đầu với từ “how” và hỏi về một thực thể đo lường:
long | short | wide | far | close | big.* (diameter | radius)

Vì đã được xác định, nên chúng ta chỉ cần xác định tính xác suất .
Giải thiết rằng một truy vấn bao gồm từ: . Chúng ta có:

Thông thường, mô hình n-gram được tạo ra để đơn giản hóa phép tính:

Công thức trên có nghĩa là xác suất xuất hiện của một từ trong lớp chỉ phụ
thuộc vào từ đằng trước.
Mô hình ngôn ngữ hơn mô hình biểu thức chính quy ở tính linh hoạt. Biểu thức
chính quy được soạn thảo theo các luật cứng (hard-coded), nó cần phải sửa đổi để giải
quyết những trường hợp mới. Trong khi đó, mô hình ngôn ngữ có thể tự động sửa đổi.
Với một tập hợp dữ liệu huấn luyện lớn, sự thực thi của mô hình ngôn ngữ sẽ được cải
thiện.
Mô hình n-gram [23] là mô hình ngôn ngữ trong xử lý ngôn ngữ tự nhiên dựa
trên thống kê, n-gram là một dãy con gồm phần tử liên tiếp nhau của một dãy các
phần từ cho trước. Ví dụ với đầu vào : ―Ba học sinh đi đá bóng‖
“Ba”, “học”, “sinh”, “đi”, “đá”, “bóng” gọi là các 1-gram hay unigram.
“Ba học”, “học sinh”, “sinh đi”, “đi đá”, “đá bóng” gọi là các 2-gram hay bigram.
Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt

11 2.1.5.1. Phân lớp câu hỏi sử dụng mô hình unigram
Áp dụng mô hình unigram ta có:

Chúng ta cần ước lượng xác suất của một từ w xuất hiện trong lớp là .
Gọi là số lần xuất hiện của dãy trong

trong đó
Và:

Chương 2. Phân tích câu hỏi trong các hệ thông hỏi đáp Nguyễn Quốc Đạt

13 2.1.5.2. Phân lớp câu hỏi sử dụng mô hình bigram
Áp dụng mô hình bigram ta có công thức:

Chúng ta cần xác định xác suất có điều kiện .

Gọi là số lượng các từ không bao giờ xuất hiện đằng sau
trong lớp C, và S là mức độ làm mịn. Khi đó, công thức làm mịn để loại bỏ xác suất 0


Các giá trị khác nhau cho λ sẽ được kiểm tra, giá trị nào tốt nhất sẽ được chọn.

Trích đoạn Tiền xử lý Xác định cụm từ để hỏi chuẩn trong câu hỏi ngôn ngữ tự nhiên Xác định cụm danh từ trong câu hỏi Mối quan hệ
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status