Tải bản đầy đủ (.pdf) (134 trang)

Luận văn công nghệ thông tin hệ thống trả lời tự động tiếng việt cho công tác tuyển sinh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.77 MB, 134 trang )



TRƢỜNG ĐẠI HỌC LẠC HỒNG
TRUNG TÂM THÔNG TIN TƢ LIỆU



BÁO CÁO
NGHIÊN CỨU KHOA HỌC GIÁO VIÊN

ĐỀ TÀI:
HỆ THỐNG TRẢ LỜI TỰ ĐỘNG TIẾNG VIỆT CHO
CÔNG TÁC TUYỂN SINH ĐẠI HỌC




NGUYỄN BÌNH TRỌNG



ĐỒNG NAI, THÁNG 5/2012


TRƢỜNG ĐẠI HỌC LẠC HỒNG
TRUNG TÂM THÔNG TIN TƢ LIỆU




BÁO CÁO


NGHIÊN CỨU KHOA HỌC GIÁO VIÊN

ĐỀ TÀI:
HỆ THỐNG TRẢ LỜI TỰ ĐỘNG TIẾNG VIỆT CHO
CÔNG TÁC TUYỂN SINH ĐẠI HỌC



Thực hiện: Nguyễn Đình Liên
Lƣơng Quốc Sơn
Nguyễn Bình Trọng


ĐỒNG NAI, THÁNG 5/2012


MỤC LỤC
DANH MỤC TỪ VIẾT TẮT
DANH MỤC HÌNH
CHƢƠNG 1: TỔNG QUAN 1
1.1 Mục tiêu của đề tài 1
1.1.1 Đặt vấn đề 1
1.1.2 Mục tiêu của đề tài 2
1.2 Phạm vi nghiên cứu 3
1.3 Phương pháp nghiên cứu 4
1.3.1 Các nội dung cần triển khai 4
1.3.2 Điểm mới của đề tài 5
1.3.3 Kết quả dự kiến đạt được của đề tài 5
1.4 Bố cục của đề tài 5
CHƢƠNG 2: KIẾN TRÚC HỆ THỐNG 7

2.1 Mô hình chức năng của hệ thống 7
2.2 Các thành phần cơ bản của hệ thống 8
2.2.1 Thành phần dữ liệu 8
2.2.2 Thành phần xử lý 10
2.2.3 Thành phần giao tiếp người dùng. 10
2.3 Quy trình xử lý câu hỏi 11
2.3.1 Tiền xử lý câu hỏi 11
2.3.2 Phân tích câu hỏi 12
2.3.3 Tổng hợp dữ liệu trên cây truy vấn để tiến hành truy vấn CSDL 13
2.3.4 Nhận kết quả và hiển thị lên cho người dùng 13
CHƢƠNG 3: PHÂN TÍCH CÚ PHÁP CÂU HỎI DỰA TRÊN DCG 14
3.1 Cơ bản về CFG và DCG 14
3.1.1 Cơ bản về CFG 14
3.1.1.1 Định nghĩa 14


3.1.1.2 Cây cú pháp 15
3.1.1.3 Sự mơ hồ (nhập nhằng) trong văn phạm phi ngữ cảnh. 16
3.1.2 Cơ bản về DCG 20
3.1.2.1 Định nghĩa 20
3.1.2.2 Quy tắc cú pháp: 20
3.1.2.3 Đối số trong DCG. 21
3.1.2.4 Cây cú pháp trong DCG. 21
3.2 Xây dựng cú pháp các câu hỏi tuyển sinh dựa trên DCG. 21
3.2.1 Ý tưởng xây dựng cây cú pháp 21
3.2.2 Xây dựng các thành phần cơ bản cho việc xây dựng cú pháp 39
3.2.2.1 Từ điển từ đơn 40
3.2.2.2 Định nghĩa các từ tổ và từ ghép 41
3.2.2.3 Định nghĩa từ có thể “khuyết” 42
3.2.2.4 Định nghĩa nhóm từ đại diện cho các từ đồng nghĩa 43

3.2.2.5 Định nghĩa thành phần “tên” hoặc “giá trị” cho một đối tượng
trong câu hỏi. 45
3.2.2.6 Định nghĩa các thành phần WHERE. 47
3.2.2.7 Định nghĩa các thành phần mặc định 47
3.2.2.8 Định nghĩa các thành phần SELECT 47
3.2.2.9 Định nghĩa các thành phần sử dụng chung của các câu hỏi 48
3.2.2.10 Các thành phần chung khác 49
3.2.2.11 Định nghĩa thành phần đại diện chung cho đối tượng nghi vấn 50
3.3 Cú pháp các câu hỏi sử dụng trong hệ thống 51
CHƢƠNG 4: XÂY DỰNG CHƢƠNG TRÌNH 52
4.1 Các thành phần trong hệ thống 52
4.2 Thành phần dữ liệu 52
4.3 Thành phần xử lý 54
4.3.1 Tiền xử lý câu hỏi 54
4.3.1.1 Loại bỏ các ký tự thừa 55


4.3.1.2 Chuyển mã tiếng việt 55
4.3.2 Phân tích cú pháp câu hỏi 57
4.3.4 Tổng hợp dữ liệu để tiến hành truy vấn CSDL 58
4.3.4.1 Tổng hợp các nút lá lại trên mỗi nút WHERE 59
4.3.4.2 Phát sinh câu truy vấn SQL 62
4.3.5 Xử lý kết quả trả lời 63
4.3.5.1 Câu lệnh SQL trả về giá trị 64
4.3.5.2 Lệnh SQL không trả về giá trị 64
4.3.5.3 Tìm được cấu trúc gần đúng 64
4.3.5.4 Không tìm được cấu trúc gần đúng 65
4.3.6 Ví dụ mô tả lại các bước của thành phần xử lý 65
4.4 Thành phần giao diện người dùng 67
4.4.1 Các công nghệ và nền tảng mà hệ thống sử dụng 67

4.4.2 Giao diện của hệ thống 68
4.5 Thử nghiệm và đánh giá 71
4.5.1 Một số câu hỏi thử nghiệm trong hệ thống 71
4.5.2 Đánh giá hệ thống 72
CHƢƠNG 5: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 74
5.1 Kết quả đạt được của hệ thống 74
5.2 Những điểm hạn chế của hệ thống 75
5.3 Hướng phát triển 75
TÀI LIỆU THAM KHẢO
PHỤ LỤC 1: ĐỊNH NGHĨA CÚ PHÁP CHO CÁC THÀNH PHẦN
CỦA CÂU HỎI
PHỤ LỤC 2: ĐỊNH NGHĨA CÚ PHÁP CHO CÁC DẠNG CÂU HỎI
TRONG HỆ THỐNG
PHỤ LỤC 3: CÁC LƢU ĐỒ XỬ LÝ TRONG HỆ THỐNG
PHỤ LỤC 4: CÁC CÂU HỎI CHUẨN CỦA HỆ THỐNG


DANH MỤC TỪ VIẾT TẮT
CFG: Context Free Grammar
DCG: Definite Clause Grammar
CSDL: Cơ Sở Dữ Liệu
SQL: Structured Query Language



DANH MỤC HÌNH
Hình 2.1: Mô hình chức năng của hệ thống. 7
Hình 2.2: Quy trình xử lý câu hỏi. 11
Hình 2.3: Công đoạn tiền xử lý. 11
Hình 2.4: Công đoạn phân tích câu hỏi. 12

Hình 2.5: Công đoạn tổng hợp dữ liệu và truy vấn dữ liệu. 13
Hình 2.6: Công đoạn hiển thị kết quả. 13
Hình 3.1 Cây cú pháp câu hỏi 16
Hình 3.2 Cây cú pháp câu hỏi – dạng cây thứ nhất. 17
Hình 3.3 Cây cú pháp câu hỏi – dạng cây thứ hai 18
Hình 3.4 Cây cú pháp câu hỏi – dạng cây thứ ba 18
Hình 3.5 Cây cú pháp câu hỏi – dạng cây thứ tư 19
Hình 3.6 Cây cú pháp câu hỏi. 24
Hình 3.7 Cây truy vấn của câu hỏi. 30
Hình 3.8 Cây truy vấn của câu hỏi – đã được tối ưu 32
Hình 3.9 Cây truy vấn của câu hỏi. 37
Hình 3.10 Cây truy vấn của câu hỏi. 39
Hình 4.1 Các thành phần trong hệ thống 52
Hình 4.2 Mô hình cơ sở dữ liệu của hệ thống. 53
Hình 4.3 Mô hình quy trình xử lý công việc của hệ thống. 54
Hình 4.6 Cây truy vấn của câu hỏi. 59
Hình 4.7 Kết quả trả về dưới dạng một danh sách. 69
Hình 4.8 Trả lời cho dạng câu hỏi “có/không”. 69
Hình 4.9 Khi câu hỏi nhập vào với tham số xác định bị sai. 70
Hình 4.10 Thông báo khi không phân tích được câu hỏi. 70
Hình 4.11 Gợi ý những câu hỏi liên quan đến từ được nhập. 71

1


CHƢƠNG 1: TỔNG QUAN
1.1 Mục tiêu của đề tài
1.1.1 Đặt vấn đề
Thông tin tuyển sinh của các trường đại học đều được phổ biến rộng rãi
trên internet ở một số tờ báo mạng, diễn đàn và được đưa lên website chính của

từng trường. Tuy nhiên, các thông tin trên các diễn đàn và các báo mạng thường
là ý kiến của nhiều người nên có thể sẽ trái chiều nhau gây ra cảm giác ngờ vực,
phân vân nơi người sử dụng. Mặt khác, cách trình bày nội dung của mỗi website
của từng trường lại khác nhau nên sẽ gây khó khăn cho người quan tâm muốn
có được câu trả lời mong muốn. Người dùng sẽ tốn nhiều thời gian và công sức
để truy cập mỗi website của từng trường, duyệt qua nội dung của các trang web
trong mỗi website đó, mong muốn tìm được câu trả lời cần thiết.
Hiện nay chưa có công cụ tìm kiếm chuyên dụng nào cho các thông tin
tuyển sinh của các trường. Học sinh và phụ huynh của học sinh muốn tìm kiếm
thông tin về trường học và ngành nghề tương lai thì có thể dùng các công cụ tìm
kiếm web để tìm kiếm thông tin. Nhưng để có được câu trả lời ưng ý cũng đòi
hỏi nhiều thời gian và công sức để duyệt qua các câu gợi ý từ những hệ thống
tìm kiếm trên.
Đề tài “Hệ thống trả lời tự động tiếng Việt cho công tác tuyển sinh đại học”
đưa ra một giải pháp cho vấn đề tìm kiếm thông tin dựa trên ngôn ngữ tự nhiên
bằng tiếng Việt nhằm giúp giải quyết cho những nhu cầu trên. Người dùng chỉ
cần đưa ra những câu hỏi bằng ngôn ngữ tự nhiên, hệ thống sẽ đáp trả lại câu trả
lời tương ứng với câu hỏi cho người dùng. Hệ thống ra đời cũng với mục đích
làm giảm công việc cho bộ phận tuyển sinh của trường đại học và cũng giúp cho
các em học sinh lớp 12 có thể tìm hiểu, lựa chọn được ngành nghề và trường
phù hợp với mình trong tương lai.
2


Việc xây dựng các hệ thống tìm kiếm ngữ nghĩa bằng tiếng việt cũng là
hướng nghiên cứu của các công trình [1], [2], [3], [4], [5], [6], [7], [8], [9].
1.1.2 Mục tiêu của đề tài
Đề tài tập trung xây dựng mô hình công cụ tìm kiếm bằng truy vấn tiếng
Việt cho các vấn đề liên quan đến tuyển sinh, áp dụng cho trường Đại học Lạc
Hồng và có thể mở rộng thêm cho nhiều trường khác. Đề tài không tìm kiếm

dựa trên từ khoá hay cụm từ, do đó sẽ không trả về nội dung chứa từ khoá hay
cụm từ đó, mà sẽ nhận một câu hỏi bằng tiếng Việt do người dùng nhập vào
phân tích, xử lý để trả về câu trả lời chính xác đối với câu hỏi đặt ra.
Hệ thống cho phép người dùng đặt ra các câu hỏi bằng tiếng Việt để tìm
kiếm thông tin về tuyển sinh. Đó là các câu hỏi đơn liên quan đến những thông
tin mô tả về ngành học, khoa, điểm chuẩn, khối thi, chuẩn đầu ra, chuyển ngành,

Câu hỏi đặt cho hệ thống phải thỏa những điều kiện sau:
- Là câu hỏi đơn liên quan đến vấn đề tuyển sinh như: thông tin về trường,
ngành, khoa, điểm chuẩn, chuẩn đầu ra, học phí,
- Câu hỏi phải đúng chuẩn cú pháp của ngôn ngữ tự nhiên không chứa các
từ viết tắt.
- Hệ thống không xử lý câu hỏi đa nghĩa hoặc các câu hỏi có nhiều điều
kiện lọc kết hợp “OR” với nhau.
Việc hỗ trợ người dùng tìm kiếm các thông tin tuyển sinh bằng các câu
truy vấn dưới dạng ngôn ngữ tự nhiên có những thuận lợi sau:
- Người dùng dễ dàng đưa ra các câu hỏi ở mức đơn giản phù hợp với nhu
cầu hiện tại của bản thân.
- Các câu hỏi bằng ngôn ngữ tự nhiên có thể diễn đạt được các thông tin
3


cần tìm kiếm chính xác hơn việc dùng các từ khóa.
- Câu trả lời hệ thống đưa ra đáp ứng đúng theo yêu cầu của câu hỏi đặt ra
ban đầu.
- Tập các câu hỏi liên quan đến lĩnh vực tuyển sinh được tác giả tham khảo
tại [15], [16], [18], [19], Dưới đây là số ví dụ về các câu hỏi mà hệ thống sẽ
xử lý:
 Trường đại học Lạc Hồng có bao nhiêu ngành?
 Trường đại học Lạc Hồng có dạy Ngành công nghệ Thông tin không?

 Điểm chuẩn của ngành công nghệ thông tin năm 2011 của trường đại
học lạc hồng ở hệ đại học là bao nhiêu điểm?
 Chuẩn đầu ra của ngành công nghệ thông tin là gì?

1.2 Phạm vi nghiên cứu
Như mục tiêu của đề tài đã xác định ở trên, hệ thống chỉ giới hạn trong
việc truy vấn bằng tiếng Việt các thông tin về vấn đề tuyển sinh như: các thông
tin về trường, ngành học, điểm chuẩn, khối thi, chuẩn đầu ra, Kết quả tìm
kiếm vì vậy sẽ là một câu trả lời tương ứng với nội dung truy vấn được và các
dữ liệu có liên quan (nếu có).
Nội dung của các câu truy vấn bằng tiếng Việt phải đáp ứng được các yêu
cầu sau:
- Mỗi câu hỏi sẽ hỏi một vấn đề về trường, khoa, ngành, điểm chuẩn,
hoặc là một dạng câu hỏi khẳng định “có/không”.
- Chỉ xử lý các dạng câu hỏi được đề cập trực tiếp, không xử lý các câu hỏi
có tính gián tiếp hoặc chứa ẩn ý.
- Chỉ xử lý các câu truy vấn có cấu trúc đơn, câu không chứa nhiều thành
phần ghép với nhau bởi các liên từ như “và”, “hoặc”, “hay”, …
- Chỉ xử lý các câu truy vấn có nghĩa rõ ràng, không nhập nhằng, không
4


mơ hồ về nghĩa.
- Điều kiện lọc dữ liệu chỉ bao gồm phép toán AND đơn giản không xử lý
trong trường hợp các điều kiện OR với nhau.
Bộ văn phạm xây dựng cho hệ thống này do đó cũng chỉ được giới hạn
trong phạm vi truy tìm thông tin về vấn đề tuyển sinh và đáp ứng các câu hỏi
tuân thủ các yêu cầu đặt ra.
1.3 Phƣơng pháp nghiên cứu
1.3.1 Các nội dung cần triển khai

Để xây dựng hệ thống trả lời tự động bằng ngôn ngữ tự nhiên tiếng Việt
cho các câu hỏi liên quan đến vấn đề tuyển sinh như yêu cầu đặt ra, đề tài thực
hiện những nội dung cụ thể sau:
- Khảo sát các câu hỏi đơn liên quan đến vấn đề tuyển sinh nhằm xác định
chính xác các thông tin, từ đó sẽ tiến hành xây dựng một CSDL để lưu trữ các
thông tin cung cấp cho câu trả lời của hệ thống.
- Dựa vào thông tin khảo sát trên tiến hành xây dựng tập các câu hỏi tự
nhiên bằng tiếng Việt phù hợp với thông tin lưu trữ trong CSDL
- Dựa trên tập câu hỏi đã xác định được, tiến hành định nghĩa một bộ văn
phạm cú pháp hạn chế dựa trên DCG nhằm phân tích đầy đủ và chính xác tập
câu hỏi đã đề ra.
- Nghiên cứu các giải pháp tiền xử lý câu hỏi nhằm tách các thành phần
của câu, đồng thời giải quyết các vấn đề phát sinh khi hệ thống xử lý tiếng Việt.
- Phân tích kết quả trả về sau khi phân tích cú pháp, từ đó tiến hành tổng
hợp dữ liệu và truy vấn CSDL để tìm ra câu trả lời.
- Xử lý dữ liệu trả về sau khi truy vấn CSDL, phát sinh câu trả lời cùng các
thông tin liên quan, phù hợp với câu hỏi người dùng đặt ra.

5


1.3.2 Điểm mới của đề tài
Đề tài phát triển hệ thống tra cứu các dữ liệu liên quan quan đến tuyển sinh
với một số đặc thù riêng:
- Xây dựng mới hoàn toàn bộ văn phạm phân tích cú pháp cho các câu hỏi
trong phạm vi ứng dụng là các thông tin mô tả về vấn đề tuyển sinh của trường.
Bộ văn phạm được định nghĩa dựa trên DCG thay vì UBG hay CFG như các hệ
thống khác có chức năng trả lời tự động tương tự.
- Sử dụng ngôn ngữ Prolog để biểu diễn bộ văn phạm được xây dựng bằng
DCG ở trên.

- Xây dựng bộ cú pháp phát sinh trực tiếp ra cây truy vấn thay vì phải phát
sinh cây cú pháp rồi mới chuyển qua cây truy vấn.
- Truy vấn trực tiếp CSDL vì vậy nên thông tin có thể tìm kiếm sẽ chính
xác và đỡ tốn thời gian cho việc duyệt kết quả tìm kiếm.
1.3.3 Kết quả dự kiến đạt đƣợc của đề tài
- Xây dựng một CSDL hoàn chỉnh chứa các thông tin cơ bản về trường,
khoa, ngành, điểm chuẩn, của một số trường đại học.
- Cài đặt CSDL và website trên server để hỗ trợ cho người dùng sử dụng
web browser truy cập đến trang web của hệ thống và đặt câu hỏi.
- Xây dựng một trang web hỗ trợ cho người dùng có thể truy vấn các thông
tin liên quan đến vấn đề tuyển sinh bằng ngôn ngữ tự nhiên.
- Cập nhật lại các câu hỏi chưa xử lý được để có thể chỉnh sửa hoặc xây
dựng thêm cú pháp để đáp ứng nhu cầu sử dụng.
1.4 Bố cục của đề tài
Đề tài được chia thành 5 chương, bố cục cụ thể như sau:
- 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.
6


- Chương 2. 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.
- Chương 3. 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.
- Chương 4. 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.

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,
Đặt câu hỏi

Nhận câu trả lời
Trả về kết quả
8


2.2 Các thành phần cơ bản của hệ thống
2.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
ChuanDauRa
Các thông tin về chuẩn đầu ra của một ngành của một hệ
đào tạo
DiemChuan
Điểm chuẩn của một ngành của một hệ bậc đào tạo tại một
năm nào đó.

ChiTieu
Số lượng sinh viên đầu vào của một ngành của một hệ bậc
đào tạo trong một năm



Bảng 2.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.2.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.
2.2.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 .NET
Frameworks 4.0.
- 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,
11


2.3 Quy trình xử lý câu hỏi

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.
2.3.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”.

Hình 2.3: Công đoạn tiền xử lý.

Hiển thị
kết quả
Tiền

xử lý
Phân tích
câu hỏi
Tổng hợp
dữ liệu
Câu hỏi
Câu hỏi
“chuẩn”
Cây
truy vấn
Kết quả
truy vấn
Loại bỏ các
ký tự đặc
biệt và
khoảng trắng
thừa
Câu hỏi
Câu hỏi
“chuẩn”
Chuyển ký
tự có dấu
thành mã
VNI
12


2.3.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.

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.


Tách câu
hỏi ra thành
danh sách
Cây truy
vấn

False
Câu hỏi
“chuẩn”
So sánh
danh sách
và tập cú
pháp




Trình biên dịch của Prolog

13


2.3.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.

Hình 2.5: Công đoạn tổng hợp dữ liệu và truy vấn dữ liệu.

2.3.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.

Hình 2.6: Công đoạn hiển thị kết quả.

Tổng hợp
dữ liệu trên
các nút lá
Cây
truy vấn
Phát sinh
câu truy vấn
SQL
Truy vấn
dữ liệu
Hiển thị

kết quả
Xử kết quả
truy vấn
Truy vấn
dữ liệu
Kết quả
truy vấn
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.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.1.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.
Văn phạm CFG là một văn phạm rất mạnh dùng để mô tả ngôn ngữ tự
nhiên của con người cũng như xây dựng nên bộ phận tích cú pháp cho các ngôn
ngữ lập trình.
3.1.1.2 Cây cú pháp
Kết quả sau khi so khớp câu hỏi với tập cú pháp được xây dựng dựa trên
văn phạm CFG sẽ là một cây cú pháp. Mà qua cây cú pháp này chúng ta sẽ biết
được câu hỏi đó có nhập đúng cú pháp không và nội dung của nó.
Cây cú pháp được định nghĩa như sau:
Cho văn phạm G (V, T, P, S). Cây dẫn xuất (hay cây phân tích cú pháp)
của G được định nghĩa như sau :
- Nút gốc có nhãn là ký hiệu bắt đầu S.
- Nếu nút trung gian có nhãn A thì A ∈ V.

- Nút lá có nhãn là X thì X ∈ T.
- Nếu nút lá x là con của nút n thì nút x là con duy nhất của nút n. Nghĩa
là nút n chỉ có duy nhất một con là nút lá x.
16


- Nếu nút n có nhãn A và có các nút con theo thứ tự từ trái qua là n1, n2,
n3, nn có lần lượt các nhãn là A1, A2, A3, An thì sẽ tồn lại 1 luật sinh: A
A1,A2,A3, An ∈ P.
Ví dụ: Với ví dụ ở trên ta có cây cú pháp sau:

Hình 3.1 Cây cú pháp câu hỏi “Trường ĐH Lạc Hồng giảng dạy sinh viên
tốt”.
Phân tích cú pháp của câu chính là việc đi xây dựng cây cú pháp cho câu
đó. Tức là thông qua cây cú pháp ta có thể biết được thông tin mà câu hỏi đặt ra.
3.1.1.3 Sự mơ hồ (nhập nhằng) trong văn phạm phi ngữ cảnh.
Khi xây dựng cú pháp với CFG nếu không ràng buộc rõ ràng thì kết quả
trả về sau khi so khớp có thể là nhiều cây cú pháp. Trong đó có thể có cây cú
pháp trùng nhau và cũng có thể không trùng nhau. Mỗi cây cú pháp không trùng
nhau sẽ mang một “nghĩa” khác nhau. Đây chính là sự nhập nhằng về “nghĩa
của câu” khi xây dựng cú pháp câu dựa trên văn phạm CFG.
Ví dụ: ta sẽ xét lại ví dụ trên nhưng có thay đổi trong luật sinh.
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”
câu đơn
chủ_ngữ
vị_ngữ
Tên_riêng
„giảng dạy‟
bổ_ngữ

động_từ
tính_từ
danh_từ
„Trường ĐH
Lạc Hồng‟
„sinh viên‟
„tốt
17



Ta có các luật sinh sau:
câu_đơn  chủ_ngữ, vị_ngữ.
chủ_ngữ  danh_từ.
vị_ngữ  động_từ, bổ_ngữ.
bổ_ngữ  danh_từ, tính từ.
danh_từ ‟Trường ĐH Lạc Hồng‟.
danh_từ  „sinh viên‟.
động_từ  „giảng dạy‟.
tính_từ  „tốt‟.
Nhận xét thấy là có sự khác biệt so với ví dụ trên ở luật sinh thứ hai.
Với tập luật sinh này sẽ có bốn cây cú pháp sau:



Hình 3.2 Cây cú pháp câu hỏi “Trường ĐH Lạc Hồng giảng dạy sinh viên
tốt” – dạng cây thứ nhất.
câu đơn
chủ_ngữ
vị_ngữ

Tên_riêng
„giảng dạy‟
bổ_ngữ
động_từ
tính_từ
danh_từ
„Trường ĐH
Lạc Hồng‟
„sinh viên‟
„tốt
18



Hình 3.3 Cây cú pháp câu hỏi “Trường ĐH Lạc Hồng giảng dạy sinh viên
tốt” – dạng cây thứ hai


Hình 3.4 Cây cú pháp câu hỏi “Trường ĐH Lạc Hồng giảng dạy sinh viên
tốt” – dạng cây thứ ba

câu đơn
chủ_ngữ
vị_ngữ
Tên_riêng
„giảng dạy‟
bổ_ngữ
động_từ
tính_từ
danh_từ

„Trường ĐH
Lạc Hồng‟
„Trường ĐH
Lạc Hồng ‟
„tốt
câu đơn
chủ_ngữ
vị_ngữ
Tên_riêng
„giảng dạy‟
bổ_ngữ
động_từ
tính_từ
danh_từ
„sinh viên‟
„sinh viên‟
„tốt

×