Chương 1. Tổng quan: Giới thiệu tổng quan về đề tài như mục tiêu đạt được, phạm vi nghiên cứu, và phương pháp nghiên cứu. Kiến trúc hệ thống: Trình bày tổng quát về hệ thống gồm chức năng, kiến trúc và đề ra các giải pháp để giải quyết vấn đề đặt ra. Phân tích cú pháp câu hỏi tuyển sinh bằng DCG: Đi sâu phân tích phương pháp xây dựng bộ văn phạm hạn chế cho hệ thống bằng văn phạm DCG.
Đây là thành phần quan trọng nhất trong các hệ thống xử lý ngôn ngữ tự nhiên. Xây dựng chƣơng trình: Trình bày từng bước để xây dựng hoàn thiện hệ thống. Giới thiệu chương trình thử nghiệm của hệ thống. Tiến hành đánh giá hệ thống.
- Chương 5: Kết luận và hƣớng phát triển. - Phần tài liệu tham khảo và phụ lục. 7 CHƢƠNG 2: KIẾN TRÚC HỆ THỐNG 2.1 Mô hình chức năng của hệ thống Với tập cú pháp được định nghĩa trước, hệ thống tiếp nhận câu hỏi tiếng việt từ người dùng thông qua giao diện chương trình(Web). Tiến hành phân tích cú pháp để hiểu được nội dung người dùng muốn hỏi, sau đó sẽ truy vấn CSDL để tìm ra kết quả và hiển thị lên cho người dùng.
Đặt câu hỏi Nhận câu trả lời Trả về kết quả Hình 2.1: Mô hình chức năng của hệ thống. Hệ thống chỉ hỗ trợ xử lý những câu hỏi đơn và “thuần” với ngôn ngữ tự nhiên. Những câu hỏi mà hệ thống hỗ trợ được là các câu hỏi đơn về thông tin của trường đại học, khoa, ngành học, thông tin về điểm chuẩn, về khối thi, về chuẩn đầu ra,. Ví dụ một số câu hỏi sử dụng hỏi đáp trong hệ thống: - Trường đại học Lạc Hồng có những ngành nào? - Ngành công nghệ thông tin thi khối nào? - Chuẩn đầu ra ngành xxxx của trường yyyy là gì? - Điểm chuẩn của ngành xxx của trường yyyy là bao nhiêu điểm? Ngoài chức năng cơ bản là trả lời câu hỏi của người dùng.
Hệ thống còn hỗ trợ đưa ra những lời gợi ý gần giống với câu hỏi sai cú pháp và một số chức năng khác hỗ trợ tốt cho việc nhập lại câu hỏi cũ, xem những câu hỏi mà nhiều người khác quan tâm,.2 Các thành phần cơ bản của hệ thống 2.1 Thành phần dữ liệu Sau khi tiến hành khảo sát tổng thể thành phần dữ liệu phục vụ trả lời cho các câu hỏi liên quan đến vấn đề tuyển sinh. Thành phần dữ liệu chủ yếu cần lưu trữ để trả lời là: các thông tin về Trường, khoa, ngành, chuyển ngành, khối thi, điểm chuẩn, chuẩn đầu ra,. Các trường thông tin cụ thể của các đối tượng được liệt kê trong bảng: Tên Field Ý nghĩa Bảng: tblTruong TruongID Mã của trường TenTruong Tên trường DiaChi Địa chỉ của trường PhuongCham Phương châm đào tạo của trường. MoTa Giới thiệu khái quát về trường Bảng: tblKhoa KhoaID Mã của khoa TenKhoa Tên của khoa MoTaKhoa Giới thiệu khái quát về khoa Bảng: tblNganh NganhID Mã của ngành TenNganh Tên của ngành TenTat Tên viết tắt MoTaNganh Giới thiệu khái quát về ngành Bảng: tblKhoiThi KhoiID Mã của khối thi TenKhoi Tên của khối thi Bảng: tblHeDaoTao 9 HeDaoTaoID Mã của hệ đào tạo TenHeDaoTao Tên của hệ đào tạo Bảng: tblMonHoc MonHocID Mã môn học TenMH Tên môn học HeSo Số đơn vị học trình hay số tín chỉ LyThuyet Số tiết lý thuyết ThucHanh Số tiết thực hành.
Bảng: tblGiangVien GiangVienID Mã của giảng viên TenGiangVien Tên của giảng viên CoHuu Là cơ hữu hay là thỉnh giảng DiaChi Nơi ở của giảng viên Bảng: tblHocHamHocVi HHHVID Mã học hàm học vị TenHHHV Tên học hàm học vị ChuyenMon Chuyên môn của học hàm học vị Một số Filed khác SoNamDaoTao Số năm đào tạo của một ngành ứng với một hệ đào tạo Các thông tin về chuẩn đầu ra của một ngành của một hệ ChuanDauRa đào tạo Điểm chuẩn của một ngành của một hệ bậc đào tạo tại một DiemChuan năm nào đó. Số lượng sinh viên đầu vào của một ngành của một hệ bậc ChiTieu đào tạo trong một năm .1: Bảng mô tả các trường dữ liệu. Ngoài những thông tin cơ bản trên, trong CSDL còn có những Filed khác chứa các thông tin về cơ sở vật chất của trường, các mối quan hệ giữa các 10 ngành, mối quan hệ giữa các ngành với hệ đào tạo, ngành với khối thi, .2 Thành phần xử lý Đây là thành phần quan trọng nhất của hệ thống. Bao gồm các thành phần chi tiết sau: - Một tập các khai báo cú pháp cho các dạng câu hỏi liên quan đến vấn đề tuyển sinh được xây dựng dựa trên văn phạm DCG.
- Một trình biên dịch của Prolog hỗ trợ phân tích câu hỏi do người dùng nhập với tập cú pháp đã được định nghĩa trước. Kết quả trả về là một cây truy vấn nếu câu của người dùng nhập trùng khớp với cú pháp. Trả về False nếu người dùng nhập sai cú pháp đã định nghĩa trước đó. - Một công cụ hỗ trợ nhúng trình biên dịch của Prolog vào trong C#.
Để từ đó có thể phân tích cú pháp lấy được dữ liệu cần thiết rồi truy vấn dữ liệu và hiển thị kết quả cho người dùng. - Trước khi đưa vào phân tích cú pháp, câu hỏi phải qua một công đoạn tiền xử lý để đưa câu hỏi do người dùng nhập về gần đúng với cú pháp của ngôn ngữ tự nhiên. Tức là loại bỏ những ký tự đặc biệt, loại bỏ những khoảng trắng thừa,. có trong câu hỏi.3 Thành phần giao tiếp ngƣời dùng.
- Người dùng và hệ thống giao tiếp với nhau thông qua giao diện Web. - Hệ thống được xây dựng dựa trên Microsoft Studio 2010 với nền. - Sử dụng thư viện JQuery để xử lý các thao tác trên web browser, làm giảm công việc cho server. - Sử dụng công nghệ AJAX để kết nối giữa web browser và server, giúp cho giao diện được mượt mà và trơn tru hơn.
- Hệ thống hoạt động tốt trên các trình duyệt web thông dụng như: FireFox, Internet Exploer,.3 Quy trình xử lý câu hỏi Tiền Câu hỏi Phân tích Cây Tổng hợp Câu hỏi xử lý câu hỏi dữ liệu “chuẩn” truy vấn Hiển thị kết quả Kết quả truy vấn Hình 2.2: Quy trình xử lý câu hỏi. Quy trình xử lý câu hỏi bao gồm các công việc chính của thành phần xử lý trong hệ thống. Quy trình này sẽ được mô tả chi tiết ở chương 4. Sau đây là những mô tả cơ bản về từng công đoạn.1 Tiền xử lý câu hỏi Có nhiệm vụ loại bỏ những “rác” trong câu, đó là những khoảng trắng thừa, những ký tự đặc biệt không phải ký tự chữ cái hoặc số.
Đồng thời ở bước này cũng xử lý chuyển mã các ký tự unicode của các từ tiếng việc có dấu thành không dấu dưới dạng mã của kiểu gõ VNI. Ví dụ, từ “tên”= “te6n”. Loại bỏ các Chuyển ký ký tự đặc tự có dấu Câu hỏi Câu hỏi biệt và thành mã khoảng trắng “chuẩn” VNI thừa Hình 2.3: Công đoạn tiền xử lý.2 Phân tích câu hỏi Ở công đoạn này công việc được đưa lại cho trình biên dịch của prolog xử lý. Với tập cú pháp được định nghĩa trước đó, các câu hỏi sẽ được phân tách ra thành các thành phần trong một danh sách(list) trước khi đưa vào Prolog.
Sau đó Prolog sẽ tiến hành so khớp các thành phần trong danh sách với tập cú pháp của câu hỏi đã được định nghĩa. Kết quả trả về là một tập các cây truy vấn nếu so khớp thành công hoặc trả về FALSE nếu không thành công. Các cây truy vấn này có thể trùng nhau. Cây truy Tách câu So sánh Câu hỏi danh sách hỏi ra thành vấn danh sách và tập cú “chuẩn” pháp Trình biên dịch của Prolog False Hình 2.4: Công đoạn phân tích câu hỏi.
Trong trường hợp ở công đoạn trên trả về FALSE mà không trả về cây truy vấn. Hệ thống sẽ quay lại so khớp để đề xuất ra các câu hỏi có ý gần giống với câu hỏi do người dùng nhập vào.3 Tổng hợp dữ liệu trên cây truy vấn để tiến hành truy vấn CSDL Với các cây truy vấn nhận được từ công đoạn trên, tác giả tiến hành tổng hợp các nút lá lại để được dữ liệu hoàn chỉnh, sau đó phát sinh câu truy vấn SQL tự động dựa trên các nút WHERE và SELECT. Cây Tổng hợp Phát sinh Truy vấn dữ liệu trên câu truy vấn truy vấn các nút lá SQL dữ liệu Hình 2.5: Công đoạn tổng hợp dữ liệu và truy vấn dữ liệu.4 Nhận kết quả và hiển thị lên cho ngƣời dùng - Tiếp nhận và kiểm tra kết quả: tùy thuộc vào câu truy vấn mà cấu trúc dữ liệu trả về có thể khác nhau, do đó việc xử lý kết quả cũng sẽ phải khác nhau. Cần lưu ý tới trường hợp kết quả trả về là rỗng.
- Đưa ra câu trả lời tương ứng với kết quả: các câu trả lời cũng có sự khác biệt tùy thuộc vào dạng câu hỏi mà người dùng đặt ra cho hệ thống. Xử kết quả truy vấn Truy vấn Kết quả dữ liệu truy vấn Hiển thị kết quả Hình 2.6: Công đoạn hiển thị kết quả. 14 CHƢƠNG 3: PHÂN TÍCH CÚ PHÁP CÂU HỎI DỰA TRÊN DCG 3.1 Cơ bản về CFG và DCG 3.1 Cơ bản về CFG Nhưng kiến thức cơ bản về CFG được tác giả tham khảo ở [10], [14], [17] 3.1 Định nghĩa Văn phạm phi ngữ cảnh (CFG) là một hệ thống gồm bốn thành phần, ký hiệu là văn phạm G (V, T, P, S), trong đó : - V là tập hữu hạn các ký hiệu chưa kết thúc( non – terminal). - T là tập hữu hạn các ký hiệu kết thúc (terminal), V ∩ T = ∅.
- P là tập hữu hạn các luật sinh mà mỗi luật sinh có dạng A → α với A ∈ V và α ∈ (V ∪ T). - S là ký hiệu bắt đầu văn phạm. Ví dụ: phân tích cú pháp của câu sau: “Trường ĐH Lạc Hồng giảng dạy sinh viên tốt”. Ta có các luật sinh sau: câu_đơn chủ_ngữ, vị_ngữ.
chủ_ngữ tên_riêng. vị_ngữ động_từ, bổ_ngữ. bổ_ngữ danh_từ, tính từ. tên_riêng ‟Trường ĐH Lạc Hồng‟.
danh_từ „sinh viên‟. động_từ „giảng dạy‟. tính_từ „tốt‟. Trong đó : 15 V={chủ_ngữ, vị_ngữ, tên_riêng, danh_từ, động_từ, bổ_ngữ, tính_từ} là tập các ký hiệu chưa kết thúc tức là còn có thể phân tích được nữa.
T={„Trường ĐH Lạc Hồng‟,‟Sinh viên‟,‟giảng dạy‟, „tốt‟} là tập các ký hiệu tử kết thúc. P là tập hợp các luật sinh bởi các phần tử của V với các phần tử của V ∪ T. S=‟câu_đơn‟ là ký hiệu bắt đầu văn phạm. Một định nghĩa khác: CFG là một tập các luật để xây dựng nên cấu trúc ngữ pháp của ngôn ngữ tự nhiên.