STT Tên trường Định dạng Bắt buộc Mô tả
1 Owner_Id int Có Khoá chính
2 Name nvarchar Có Tên của người chủ
3 Birth nvarchar Không Ngày sinh của người chủ
5 Male bit Có Giới tính, mặc định là nam
6 Nationality nvarchar Có Quốc tịch
7 Address nvarchar Không Địa chỉ liên lạc nếu có
8 Email nvarchar Không Hộp thư liên lạc nếu có
9 Description nvarchar Không Thông tin thêm về người chủ nếu có
1.5. Các hàm xây dựng
Các hàm liên quan đến xử lý input-text
public static void getquestion (string asktext): đầu vào là input-text, hàm có nhiệm vụ ghi input-text ra file txt để phục vụ việc tagger.
public static void tagger(): gọi vnqtag, phân tích cấu trúc của input-text thành các câu,
thành các từ được phân loại.
public static sentence_tagger[] readXmlFile(string istrPath): đọc file sau khi tagger,
đầu ra là một tập hợp câu đọc được.
public static string extract_keyword_M(sentence_tagger keyword): tìm các từ khóa
liên quan đến độ đo, dựa vào word_pos của các từ.
public static string extract_keyword_G_M(sentence_tagger keyword): tìm các từ liên quan đến trường phái chất liệu.
public static string extract_keyword_N(sentence_tagger keyword): tìm các danh từ
riêng với mặc định danh từ riêng là một tập hợp các từ được viết hoa.
public static bool is_content(string root_string, string word_compare): dùng để so
sánh xem nội dung XML node có chứa từ đang xét không.
public static void get_node_wait_list(ref XmlNode currentnode, int last_word_macth, ref nodewaitlist node_wait_list): lấy danh sách những XML node cùng mức với node
đang xét để đưa vào hàng đợi
public static string get_path_node(XmlNode node): sau khi tìm được node với EAT
khác rỗng, tìm ngược lại các node cha của nó, ta thu được danh sách id của các node của token.
public static string loadXmlTrie(string istrPath, sentence_tagger sentence, ref string[] keyword_list): chính là cách duyệt trie, kết quả trả về là EAT tìm được.
public static string AnswerString(string EAT, string[] KeyWord, sentence_tagger sentence): tìm ra các câu trả lời tương ứng với EAT tìm được sau khi gọi hàm
1.6. Sơ đồ khối cho việc hỏi - trả lời sử dụng trie.
Hình 11. Sơ đồ khối cho việc phân tích câu hỏi sử dụng trie. 1.7. Quá trình duyệt trie
− Lấy các thông tin về XML node đang xét, danh sách các node đợi xét, tổng số từ của câu, từ cuối cùng tìm thấy trong trie, từ đang xét
− Nếu tìm thấy một hoặc nhiều token: chọn token có nhiều node nhất, trích từ khóa theo token tìm được.
1.8. Nhận xét, đánh giá
Ưu điểm: − Đưa ra kết quả nhanh, chính xác
− Dễ hiểu, dễ cài đặt
Nhược điểm: Cách phân tích câu hỏi bằng trie tuy dễ hiểu nhưng lại không phù hợp với các hệ thống lớn
− Hiệu quả của hệ thống phụ thuộc trực tiếp vào cấu trúc Trie, cũng có nghĩa là phụ thuộc trực tiếp vào độ hiểu biết vào bao quát các trường hợp của người thiết kế.
− Luật viết lại câu thực hiện thủ công mà điều này không phải lúc nào cũng dễ dàng ngay cả đối với con người.
− Việc xây dựng cặp câu hỏi và dạng câu trả lời tương ứng không sử dụng phép lọc tự động mà phụ thuộc vào tập câu hỏi và dạng câu trả lời được thiết kế sẵn nên kém linh động.
− Cây trie chỉ nhận diện được những câu đầy đủ, đúng ngữ pháp mà không giả quyết được những trường hợp đặc biệt hay câu rút gọn, thướng bắt buộc phải có giai đoạn tiền xử lý để giải quyết vấn đề này.
− Xét ví dụ: câu “Ai đã vẽ bức tranh Mona Lisa?” và “Tác giả của tranh Mona Lisa là ai?”. Hai câu này khi duyệt trie đều trả về cùng EAT nhưng lại được lưu như 2 câu hoàn toàn khác biệt trong trie.
Đánh giá:
Như đã nói ở trên, hiệu quả của việc phân tích câu hỏi bằng trie phụ thuộc trực tiếp vào tập cấu trúc câu hỏi lưu trong trie, nghĩa là phụ thuộc trực tiếp vào độ hiểu biết vào bao quát các trường hợp của người thiết kế.
Kích thước và độ đa dạng của tập câu hỏi ảnh hưởng trực tiếp đến độ chính xác của việc phân tích. Có thể có trường hợp các câu hỏi có dạng giống nhau nhưng EAT mong muốn lại khác hoàn toàn nhau, ví dụ:
Hai câu này đều có dạng giống nhau nhưng EAT của chúng lại khác nhau. Câu thứ nhất yêu cầu hệ thống phải trả về danh sách các bức tranh có trường phái là trừu tượng, còn câu thứ hai lại cần đưa ra các thông tin về tranh có tên là Mona Lisa.
2. Ứng dụng IBiS1 vào lĩnh vực phòng tranh – viện bảo tàng. 2.1. Domain resource tài nguyên miền
Dialogue plan - kế hoạch hội thoại
Vì giới hạn là phòng tranh nên vấn đề đặt ra ở đây là user muốn tìm thông tin liên quan đến tranh và tác giả. Hệ thống sẽ có các kế hoạch để xử lý các vấn đề này. Issue: ?x.find_paint(x) PLAN: < findout(?x.genre(x)) findout(?x.material(x)) findout(?x.artist(x)) consultDB(?x.find_paint(x)) > Issue:?x.find_artist(x) PLAN: < findout(?x.have_paint(x)) raise(?x.nationality(x)) consultDB(?x.find_artist(x)) > Phân loại các từ
−Các từ chỉ trường phái: trừu tượng, lãng mạn,… −Các từ chỉ chất liệu: sơn dầu, sơn mài,…
−Các từ chỉ họa sĩ: Leonard Davinci, Tô Ngọc Vân,… −Các từ chỉ tên tranh: Mona Lisa, Thiếu nữ bên hoa huệ,..
−Các từ chỉ quốc tịch: Việt Nam, Mỹ,…
Các ràng buộc trong lĩnh vực phòng tranh-viện bảo tàng
Bảng 14.Các ràng buộc trong lĩnh vực phòng tranh-viện bảo tàng
Mệnh đề Ràng buộc
findout(?x.genre(x)) x thuộc từ chỉ trường phái raise(?x.material(x)) x thuộc từ chỉ chất liệu findout(?x.artist(x)) x thuộc từ chỉ tên họa sĩ raise(?x.nationality(x)) x thuộc từ chỉ quốc tịch findout(?x.have_paint(x)) x thuộc từ chỉ tên tranh
2.2. Lexicon resource - từ điển ngôn ngữ
Bảng 15. Các từ đồng nghĩa trong lĩnh vực phòng tranh-viện bảo tàng
Các từ Ngữ nghĩa
“tranh”, “bức”, “tác phẩm” Tranh
“họa sĩ”, “tác giả” Họa sĩ
Bảng 16. Mối liên hệ giữa các câu trả lời ngắn và các dialogue move trong lĩnh vực phòng tranh -viện bảo tàng
Câu – short answer Move Giới hạn
<tên riêng> answer(?x.artist(x)) x thuộc từ chỉ tên họa sĩ …..
<chào> greet
<cảm ơn>, <tạm biệt> quit
2.3. Database resource - CSDL
NEXT_MOVE=<> AGENDA= <greet> PLAN=<> BEL={} COM={} QUD=<> LU/SPEAKER= <> LU/MOVE=<> • selectOther() NEXT_MOVE=<greet> S> Chào bạn
U> Tôi muốn tìm thông tin về họa sĩ
• getLastestMove() LU/SPEAKER= <usr> LU/MOVE=<ask(?find_art)> AGENDA=<> • integrateUsrAsk() QUD=<?find_art > AGENDA=<respond ((?find_art)> • findPlan() AGENDA=<>
Set PLAN= <?findout(?.nationality), ?findout(?.have_panit), consultDB (?.find_art)>
• selectFromPlan()
AGENDA=<?findout(?.nationality)>
• selectAsk()
NEXT_MOVE=<ask(?.nationality)>
S> Họa sĩ bạn muốn tìm là người nước nào?
• getLastestMove() LU/SPEAKER= <sys> LU/MOVE=<ask(?.nationality)> AGENDA=<> • integrateSysAsk() QUD=<?.nationality, ?.find_art > U> Ý • getLastestMove() LU/SPEAKER= <usr> LU/MOVE=<answer(?.nationality)> AGENDA=<> • integrateAnswer()
COM={?.nationality(Ý) }
• downdateQUD
QUD=<?.find_art >
• removeFindout()
PLAN= < ?findout(?.have_panit), consultDB (?.find_art)>
• selectFormPlan()
AGENDA=<?.find_out(?.have_paint)>
• selectAsk
NEXT_MOVE=<ask(?.have_paint)>
S>Kể tên một bức tranh của họa sĩ?
• getLastestMove() LU/SPEAKER= <sys> LU/MOVE=<ask(?.have_paint)> AGENDA=<> • integrateSysAsk() QUD=<?.have_paint, ?.find_art >
U> Mona Lisa
• getLastestMove()
LU/SPEAKER= <usr>
LU/MOVE=<answer(?.have_paint)> AGENDA=<>
• integrateAnswer()
COM={?.have_paint(Mona Lisa), ?.nationality(Ý) }
• downdateQUD
QUD=<?.find_art >
• removeFindout()
PLAN= < consultDB (?.find_art)>
• execConsultDB() BEL={?.find_art(Leonard Davinci)} • selectRespond() AGENDA=<respond(?.find_art)> • selectAnswer() NEXT_MOVE=<answer(?.find_art)>
S> Họa sĩ đó là Leonard Davinci
• getLastestMove()
LU/SPEAKER= <sys>
LU/MOVE=<answer(?.find_art)> AGENDA=<>
COM={ ?.find_art( Leonard Davinci ) , ?.have_paint( Mona Lisa ), ?.nationality ( Ý) }
• downdateQUD()
Chương VI. KẾT LUẬN
Trong đồ án, em đã tập trung tìm hiểu kiến trúc của hệ thống hỏi đáp – tập trung vào cách phân tích câu hỏi, trích xuất từ khóa sử dụng cấu trúc trie. Ngoài ra em còn tìm hiểu về cơ chế quản lý hội thoại của hệ thống cụ thể là IBiS1 – hệ thống hướng chủ đề. Sau quá trình tìm hiểu lý thuyết em đã cài đặt ứng dụng dùng cho trong viện bảo tàng với tập câu hỏi là các vấn đề liên quan đến tranh và tác giả với các chức năng.
1) QA đơn giản sử dụng phân tích câu hỏi bằng trie trong đó hệ thống chỉ đóng vai trò trả lời các câu hỏi của người dùng.
2) Hội thoại dựa trên kiến trúc IBiS tập trung vào 2 vấn đề chính là tìm tên tranh và tên tác giả.
Các hạn chế và hướng phát triển:
• Phần phân tích câu hỏi dựa vào trie: như đã nói trong phần đánh giá chương trình cài đặt, hiệu quả của chương trình phụ thuộc trực tiếp vào tập câu hỏi – hay nói cách khác phụ thuộc vào người thiết kế hệ thống. Do em chưa nắm rõ hết các vấn đề liên quan đến lĩnh vực tranh, bảo tàng nên chương trình còn có nhiều hạn chế. Đối với hệ thống này, hướng phát triển là áp dụng học máy, để có thể nhận ra các dạng câu hỏi chưa có, lưu chúng vào trie.
• Hệ thống hội thoại dựa trên IBiS1: hệ thống này do có khá nhiều giả định, nó mặc định hiểu mọi phát biểu của người dùng và không xét đến các cấu trúc cú pháp của câu. Để thực hiện được điều đó thì module phân tích các phát biểu của người dùng- interpret module phải được xây dựng chính xác, kết quả của module này ảnh hưởng đến toàn bộ hệ thống. Muốn khắc phục được điều đó, có thể xây dựng thêm các cơ chế feed-back – xác nhận lại thông tin người dùng đưa ra, áp dụng các kỹ thuật phân tích câu hỏi – câu trả lời, kỹ thuật trích rút từ khóa, tập trung nhiều hơn vào cấu trúc ngữ pháp hơn là sử dụng các điều kiện ràng buộc có sẵn thuộc lĩnh vực.
TÀI LIỆU THAM KHẢO
1. Using a Trie-based Structure for Question Analysis -- Luiz Augusto Sangoi Pizzato Centre for Language Technology.
2. A syntactic strategy for filtering sentences in a question answering system - Vincent Barbier and Anne - Laure Ligozat
3. Issue - based Dialogue Management - Staffan Larsson- Department of Linguistics Goteborg University, Sweden, 2002
4. BÁO CÁO CHUYÊN ĐỀ TẬP QUY TẮC CÚ PHÁP TIẾNG VIỆT - Những người thực hiện: Lê Thanh Hương, Đỗ Bá Lâm, Đào Minh Thu, Nguyễn
Thị Minh Ngọc, Nguyễn Mai Vân, Lê Kim Ngân, Nguyễn Phương Thái
5. PiQASso: Pisa Question Answering System - Giuseppe Attardi, Antonio Cisternino, Francesco Formica, Maria Simi, Alessandro Tommasi -
Dipartimento di Informatica, Università di Pisa, Italy
6. AskMSR: Question Answering Using the Worldwide Web - Michele Banko, Eric Brili, Susan Dumais, Jimmy Lin.
7. Overview of the TREC 2005 Question Answering Trac - Ellen M. Voorhees , Hoa Trang Dang - National Institute of Standards and Technology Gaithersburg, MD 2009
8. Information Retrieval: Data Structures & Algorithms - edited by William B. Frakes and Ricardo Baeza-Yate
9. AN AGENDA-BASED DIALOG MANAGEMENT ARCHITECTURE FOR SPOKEN LANGUAGE SYSTEMS - A. Rudnicky, Xu W. - School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 15213s
10. EXAMPLE AND SITUATION BASED DIALOG MANAGEMENT FOR
SPOKEN DIALOGUE SYSTEM - Cheongjae Lee, Sangkeun Jung, Jihyun Eun, Minwoo Jeong, and Gary Geunbae Lee - Department of Computer Science