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.
23
Ví 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ó
24
cá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ưanot yet/khôngno‟
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
25
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?”
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.
26
Ví 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ọ.