TỔNG QUAN VỀ CÁC GIAO DIỆN TRUY VẤN CSDL QUAN HỆ
Các giao diện truy vấn CSDL
Hiện nay hầu hết mọi hệ thống thông tin đều chứa một cơ sở dữ liệu (CSDL – database) để lưu trữ thông tin, thì cần thiết phải có một hệ quản trị cơ sở dữ liệu (DBMS – Database Management System) để tổ chức lưu trữ CSDL đó Người dùng nếu muốn lấy thông tin trong CSDL thì yêu cầu phải truy vấn vào CSDL bằng một ngôn ngữ truy vấn CSDL (database query language) thông qua một giao diện truy vấn Câu truy vấn khi qua giao diện này sẽ được biến đổi thành câu truy vấn mà DBMS có thể hiểu được.
Như vậy mỗi một giao diện truy vấn CSDL giúp người dùng truy nhập một cách dễ dàng vào dữ liệu được lưu trong DBMS Nó sẽ xác định làm thế nào để kết nối tới DBMS, trích dữ liệu (một danh sách các CSDL, các bảng…) cũng như cách để thực thi các câu lệnh truy vấn và hiển thị kết quả.
1.1.1 Giao diện dựa trên ngôn ngữ lệnh
Ngôn ngữ lệnh hay còn gọi là ngôn ngữ thao tác dữ liệu (DML – Data Manipulation Language), được hệ quản trị cơ sở dữ liệu hỗ trợ.
Giao diện dựa trên ngôn ngữ lệnh thực chất nó chỉ là giao diện truy vấn cơ sở dữ liệu mà hệ quản trị cơ sở dữ liệu hỗ trợ Sở dĩ gọi nó là ngôn ngữ lệnh, vì câu truy vấn chính là các câu lệnh mà hệ quản trị cơ sở dữ liệu dùng để tìm kiếm thông tin Có hai loại ngôn ngữ lệnh, đó là ngôn ngữ truy vấn SQL và QBE.
1.1.1.1.Ngôn ngữ truy vấn SQL
Truy vấn thông tin lưu trong một CSDL thường bằng cách sử dụng các ngôn ngữ thao tác dữ liệu được DBMS hỗ trợ, như là ngôn ngữ truy vấn SQL.
SQL (Structured Query Language) là một ngôn ngữ máy tính chuẩn ANSI (American National Standards Institute) để truy cập và thao tác các hệ thống cơ sở dữ liệu Các câu lệnh SQL dùng để khai thác và cập nhật dữ liệu trong một CSDL. SQL làm việc với các chương trình CSDL như MS Access, DB2, Informix, MS SQL Server, Oracle, Sybase,… Nó là một ngôn ngữ rất dễ học.
Ngôn ngữ SQL có rất nhiều phiên bản khác nhau, nhưng vì là một chuẩn của ANSI nên nó phải hỗ trợ cùng các từ khóa chính với cùng cách thức (như là SELECT, UPDATE, DELETE, INSERT, WHERE…)
1.1.1.2.Ngôn ngữ truy vấn QBE
Một ngôn ngữ thao tác dữ liệu khác, được gọi là truy vấn theo mẫu (Query
By Example - QBE) Trong ngôn ngữ này, người dùng có thể kết hợp một số lượng tùy ý các form, trong đó mỗi form phản ánh cấu trúc của một bảng CSDL.
1.1.2.Giao diện dựa theo form
Có một loại giao diện được sử dụng khá phổ biến hiện nay là giao diện dựa theo form Trong các giao diện dựa trên form, ta sử dụng các form chứa các trường đã được xác định trước Người dùng điền các thông tin đã biết trong các trường tương ứng, và hệ điền vào các trường còn lại bằng việc truy vấn vào CSDL
Nếu nhiều phương án trả lời, hệ thống sẽ trả lời bằng cách tạo ra một ngăn xếp các form được điền đầy đủ thông tin, mỗi form tương ứng với một câu trả lời đúng.
Cách tiếp cận cuối cùng được đề cập đến đó là giao diện đồ họa, đầu tiên người dùng phải chọn các bảng CSDL được sử dụng trong câu truy vấn Mỗi bảng xuất hiện trên màn hình là một khung chứa các hàng thuộc tính Người dùng sau đó điền vào các hàng thuộc tính bằng việc gõ vào từ bàn phím, họ có thể kết hợp các thuộc tính ở các bảng khác nhau sử dụng chuột, hoặc họ cũng có thể hạn chế các thuộc tính bằng cách sử dụng chuột và menu.
Đánh giá các ngôn ngữ và giao diện truy vấn
Ta nhận thấy ưu điểm của các loại ngôn ngữ và giao diện truy vấn trên chính là tốc độ nhanh, các truy vấn được thiết kế để tìm kiếm một số lượng lớn các bản ghi từ một CSDL một cách nhanh chóng và hiệu quả.
Các ngôn ngữ thao tác dữ liệu có cấu trúc chặt chẽ, logic, có thể thực hiện được bất kỳ yêu cầu nào theo ý muốn của người dùng (tất nhiên là phải dúng cú pháp) Nhưng nhược điểm của nó đó chính là việc người dùng phải biết cú pháp của SQL, QBE, hay biết cách sử dụng các giao diện dựa theo form hay đồ họa Cũng như không những phải nắm vững các thuật ngữ chuyên môn mà cần phải hiểu rõ về cấu trúc của cơ sở dữ liệu đang sử dụng.
Sinh viên thực hiện: Trần Bích Diệp – Khóa: K50 Lớp: Hệ thống thông tin
Như trong ví dụ trên, người dùng phải biết tên gọi – thuật ngữ của các bảng, các cột, khóa và quan hệ giữa các bảng Điều này rõ ràng là không hề tiện lợi cho những người dùng không chuyên hoặc không hiểu rõ về CSDL đang sử dụng.
Do đó để khắc phục những hạn chế của các loại truy vấn trên, ta sẽ nghiên cứu một loại giao diện ngôn ngữ truy vấn gần gũi hơn rất nhiều với nhiều đối tượng sử dụng, đó là giao diện ngôn ngữ tự nhiên.
Giao diện truy vấn ngôn ngữ tự nhiên
Các giao diện sử dụng ngôn ngữ truy vấn tự nhiên gọi là các giao diện truy vấn ngôn ngữ tự nhiên (NLIDB – Natural Language Interface Database) Như ta đã biết giao diện truy vấn ngôn ngữ tự nhiên tức là giao diện nhận đầu vào là một yêu cầu bằng ngôn ngữ tự nhiên, và trả ra kết quả cũng một một câu ngôn ngữ tự nhiên. Chính vì vậy mà nó là một bộ phận trung gian giữa người dùng và CSDL Nó dịch các câu truy vấn dạng ngôn ngữ tự nhiên sang dạng biểu diễn hình thức logic, tìm kiếm trong CSDL và đưa ra các thông tin phù hợp cho người dùng.
Hình 1.1 Mô hình trao giữa CSDL và người dùng qua NL Query
Trong loại giao diện này người dùng không cần biết tất cả các bảng có liên quan trong câu truy vấn Họ chỉ cần đưa ra các giá trị, các khái niệm có liên quan đến bảng đích và nguồn khi đó hệ thống sẽ tự tìm kiếm các bảng trung gian, các liên kết giữa chúng, gọi là các đường dẫn (Ta sẽ trình bày kĩ hơn ở các phần sau).
Không phải là ngôn ngữ nhân tạo Đây là môt ưu điểm khá rõ ràng của các hệ thống NLIDB đó là người dùng không cần phải học một ngôn ngữ giao tiếp nhân tạo nào Các ngôn ngữ thao tác dữ liệu gây nhiều khó khăn cho việc học hoặc trở thành chuyên gia, đặc biệt đối với những người không phải là chuyên gia máy tính. Các giao diện đồ họa và các giao diện dựa trên form thì dễ dàng sử dụng hơn đối với những người dùng không chuyên, tuy nhiên việc gọi các form, kết nối các khung, chọn các giới hạn từ các menu,… chính là các ngôn ngữ giao tiếp nhân tạo, mà người dùng phải học để biết sử dụng nó Trái với nó, hệ thống NLIDB cho phép các câu truy vấn được trình bày bằng ngôn ngữ của người dùng Có nghĩa là hệ
1 4 thống NLIDB sẽ thích hợp hơn với những người dùng không chuyên, bởi vậy sẽ không cần thiết bỏ thời gian để học ngôn ngữ giao tiếp của hệ thống.
Tốt hơn đối với một số câu hỏi Có những dạng câu hỏi (ví dụ như phủ định, hoặc lượng từ) có thể dễ dàng biểu diễn bằng ngôn ngữ tự nhiên, nhưng dường như nó có vẻ khó khăn (hay ít nhất là dài dòng) khi biểu diễn bằng các giao diện đồ họa hay dựa theo form Ví dụ các câu sau “Tìm các giáo viên không ở Hà Nội” (phủ định), hoặc “Cho biết sinh viên có điểm tất cả các môn đều lớn hơn 8” (lượng từ toàn bộ), có thể dễ dàng biểu diễn bằng ngôn ngữ tự nhiên, nhưng lại khó biểu diễn trong hầu hết các giao diện truy vấn dựa theo form hay đồ họa Các câu hỏi dạng như trên, tất nhiên là có thể biểu diễn bằng các ngôn ngữ thao tác dữ liệu như SQL, nhưng đó sẽ là các biểu thức ngôn ngữ truy vấn CSDL phức tạp.
Tính liên tục Ưu điểm khác của các hệ thống NLIDB đó là nó hỗ trợ các hiện tượng lặp và các câu tỉnh lược Các hệ thống NLIDB kiểu này thường hiểu được các câu hỏi ngắn gọn, không rõ ràng, tại đó ý nghĩa của mỗi câu hỏi được bổ sung dựa vào bối cảnh liên tục của nó Trong các ngôn ngữ thao tác dữ liệu, các giao diện dựa theo form, đồ họa thì không tồn tại khái niệm bối cảnh liên tục.
Thông tin ngôn ngữ thường không rõ ràng Đây là một nhược điểm dễ thấy của các hệ thống NLIDB đó là khả năng ngôn ngữ không rõ ràng đối với người dùng Như đã nói ở trên thì các hệ thống NLIDB hiện nay chỉ giới hạn trong những tập nhỏ của ngôn ngữ tự nhiên Người dùng cũng có thể rất khó khăn để hiểu và nhớ các dạng câu hỏi mà hệ thống có thể trả lời được Ví dụ hệ thống có thể hiểu được câu “Tìm các giáo viên dạy môn CSDL và dạy môn CTDLGT”, điều đó sẽ dẫn đến việc người dùng cho rằng hệ thống có thể trả lời được các câu hỏi dạng nối (gọi là hiện tượng “suy đoán tích cực nhầm”) bởi câu hỏi “Tìm các giáo viên dạy môn CSDL và CTDLGT” hệ thống không trả lời được Tương tự việc không trả lời được một truy vấn đặc biệt nào đó sẽ khiến người dùng nghĩ rằng các câu truy vấn tương tự cũng không thể trả lời được, trong khi thực tế thì nó có thể trả lời (“suy đoán tiêu cực nhầm”)
Các giao diện dựa trên ngôn ngữ lệnh, các giao diện dựa theo form, đồ họa thường không gặp phải vấn đề này Trong các ngôn ngữ thao tác dữ liệu, cú pháp của ngôn ngữ truy vấn đều được quy định rất tốt, và bất cứ một câu truy vấn đúng cú pháp nào cũng đều đảm bảo sẽ đưa ra một câu trả lời Trong trường hợp của các giao diện dựa theo form và đồ họa, người dùng có thể biết dạng câu hỏi chính xác bằng cách xem qua các tùy chọn trên màn hình; và bất cứ một câu hỏi nào có thể đưa vào được đều đảm bảo sẽ có câu trả lời
Thiếu khả năng về ngôn ngữ và khái niệm Khi một hệ thống NLIDB không thể hiểu được một câu hỏi, thì nó thường không rõ ràng ở chỗ người dùng không
Sinh viên thực hiện: Trần Bích Diệp – Khóa: K50 Lớp: Hệ thống thông tin biết được lỗi là nằm ở thông tin về ngôn ngữ hay về khái niệm Vì thế người dùng thường cố gắng đánh lại các câu hỏi liên quan đến các khái niệm mà hệ thống không hiểu (ví dụ cố gắng hỏi các câu hỏi về thuốc trong khi đó hệ thống lại không biết gì về y tế), bởi vì họ cho rằng lỗi nằm ở khả năng ngôn ngữ hạn chế của hệ thống Trong các trường hợp khác thì người dùng lại không cố gắng đánh lại các câu hỏi mà hệ thống có thể hiểu được dựa trên khái niệm, bởi vì họ không nhận ra rằng cách diễn đạt một khái niệm nằm ngoài khả năng ngôn ngữ của hệ thống, và chỉ cần một cách diễn đạt khác về khái niệm đó thì hệ thống có thể trả lời được Một số hệ thống cố gắng giải quyết vấn đề này bằng cách sử dụng các hộp hội thoại, chỉ ra nguyên nhân câu hỏi không thể được trả lời (ví dụ, các từ không biết unknown word, cú pháp quá phức tạp, khái niệm không biết unknown concept,…).
Người dùng luôn cho rằng một hệ thống NLIDB đồng nghĩa với việc nó là một hệ thống thông minh Người dùng luôn nhận thức sai lầm về khả xử lý ngôn ngữ tự nhiên của hệ thống, họ cho rằng hệ thống là thông minh, rằng nó có một trí thông minh nhất định nào đó, hoặc nó có thể suy diễn các sự kiện, trong khi thực chất hầu hết các hệ thống NLIDB đều không có khả năng suy diễn Ta sẽ không gặp vấn đề này trong các giao diện theo ngôn ngữ lệnh, các giao diện dựa theo form và đồ họa, tại đây khả năng của hệ thống rõ ràng hơn đối với người dùng.
Phương tiện không thích hợp là một khó khăn tiếp theo vì ngôn ngữ tự nhiên được coi như là một phương tiện không thích hợp để giao tiếp với máy tính Ngôn ngữ tự nhiên bản chất của nó là đa nghĩa và quá nhập nhằng trong việc tương tác người – máy Người dùng NLIDB phải gõ các câu hỏi dài, trong khi đó các giao diện dựa theo form chỉ cần điền vào các trường cần thiết, và hầu hết các việc phải làm trong giao diện đồ họa đó là click chuột Các câu hỏi dạng ngôn ngữ tự nhiên, thậm chí luôn luôn nhập nhằng, trong khi đó các câu hỏi trong các giao diện dạng khác không bao giờ có đa nghĩa
Một nhược điểm khác là định dạng dài dòng Các hệ thống NLIDB thường yêu cầu các giai đoạn định dạng dài dòng trước khi chúng có thể được sử dụng Trái lại,hầu hết các hệ thống CSDL thương mại thường gắn liền với các bộ phiên dịch ngôn ngữ thao tác dữ liệu, và việc thực hiện các giao diện truy vấn dựa theo form đều gần như tự động.
Các hệ thống NLIDB hiện nay
Như vậy các hệ thống NLIDB chính là các hệ thống tìm kiếm thông tin Cách thức hoạt động của nó là: người dùng đưa ra một câu truy vấn trên một ngôn ngữ tự nhiên nào đó (tiếng Anh, Pháp, Việt…) trên một CSDL, hệ thống sẽ tự động dịch câu truy vấn này thành một câu truy vấn phù hợp viết bằng ngôn ngữ thao tác dữ liệu được DBMS hỗ trợ DBMS sẽ thực hiện câu truy vấn này trên CSDL và trả lại kết quả cho người dùng.
Sau đây ta sẽ xem xét các vấn đề về các hệ thống NLIDB đã tồn tại trên thế giới từ trước đến nay:
1.4.1.Phân loại các hệ thống NLIDB
1.4.1.1.Các hệ thống dựa trên mẫu
Một số hệ thống NLIDB trước đây sử dụng các kĩ thuật gọi là dựa trên mẫu để trả lời các câu hỏi của người dùng Để minh họa cho cách tiếp cận dựa trên mẫu đơn giản này ta giả sử có các bảng chứa thông tin về các quốc gia:
Hình 1.2 Bảng chứa thông tin quốc gia
Một hệ thống dựa trên mẫu có thể sử dụng các luật sau:
Thực hiện : Đưa ra CAPITAL của các hàng mà tại đó COUNTRY
Thực hiện : Đưa ra CAPITAL và COUNTRY của mỗi hàng
Luật thứ nhất nói rằng nếu yêu cầu của một người dùng có chứa từ “capital” theo sau là tên của một nước (có nghĩa là một tên xuất hiện trong cột COUNTRY), hệ thống sẽ xác định hàng chứa tên nước, và in ra thủ đô tương ứng
Tương tự như thế đối với luật thứ hai, các yêu cầu người dùng chứa các từ
“capital” theo sau đó là từ “country” sẽ được xử lý bằng việc in ra thủ đô của các nước, như đã được liệt kê trong bảng CSDL Ví dụ “What is the capital of each country?”, “List the capital of every country ”, “ capital and country please”… sẽ được xử lý bằng mẫu thứ hai. Ưu điểm chính của cách tiếp cận dựa trên mẫu chính là sự đơn giản của nó. Không cần phải phân tích phức tạp, không cần các modul dịch Ngoài ra các hệ thống dựa trên mẫu cũng có thể trả lời được các câu hỏi có lý, thậm chí nếu như dạng câu hỏi không nằm trong các mẫu của hệ thống được thiết kế Trở lại ví dụ trên, luật thứ hai sẽ cho phép hệ thống trả lời câu hỏi sau “Is it true that the capital of each country is Athens?”, bằng việc liệt kê thủ đô của mỗi nước, nó sẽ gián tiếp trả lời phủ định đối với câu hỏi này.
Sinh viên thực hiện: Trần Bích Diệp – Khóa: K50 Lớp: Hệ thống thông tin
Tuy các hệ thống này hoạt động khá ấn tượng trong một số ứng dụng, nhưng nhìn chung do không phân tích sâu câu hỏi nên nó thường dẫn đến các câu trả lời sai ý người dùng
1.4.1.2.Các hệ thống dựa trên cú pháp
Trong các hệ thống dựa theo cú pháp các câu của người dùng được phân tích (tức là phân tích cú pháp), kết quả trả về là một cây phân tích, cây phân tích này sau đó được ánh xạ trực tiếp đến một câu trong một ngôn ngữ truy vấn CSDL nào đó. Một ví dụ điển hình của cách tiếp cận này là hệ thống LUNAR.
Các hệ thống dựa theo cú pháp sử dụng một văn phạm miêu tả các cấu trúc cú pháp có thể đối với các câu hỏi người dùng Ví dụ sau đây là một số văn phạm được đơn giản hóa từ một hệ thống mô phỏng LUNAR:
Văn phạm trên chỉ ra rằng một câu (S) chứa một cụm danh từ (NP) theo sau đó là một cụm động từ (VP), trong đó cụm danh từ bao gồm một từ hạn định (Det) như là “what”, “which” theo sau đó là một danh từ Sử dụng văn phạm này hệ thống có thể chỉ ra được cú pháp của câu hỏi “which rock contains magnesium?” như hình dưới đây.
Hình 1.3 Cây phân trong hệ thống dựa trên cú pháp
NLIDB có thể ánh xạ cây phân tích này thành truy vấn CSDL sau (X là một biến):
Sau đó nó sẽ được tính toán bởi hệ thống CSDL nằm ở dưới Việc ánh xạ này được thực hiện bằng các luật, và được hoàn chỉnh dựa vào các thông tin cú pháp của cây phân tích Trong ví dụ này sử dụng các luật ánh xạ được phát biểu như sau:
Ánh xạ của “which” là for_every X
Ánh xạ của “rock” là (is_rock X).
Ánh xạ của một cụm danh từ NP là Det’ N’, trong đó Det’ N’ là các ánh xạ của từ hạn định và danh từ Vì vậy, ánh xạ của cây con NP trong ví dụ này for_every X (is_rock X).
Ánh xạ của “contains” là contains.
Ánh xạ của “magnesium” là magnesium.
Ánh xạ của VP là (V’ X N’), trong đó V’ là ánh xạ của động từ, và N’ là ánh xạ của danh từ có liên quan với động từ Vì vậy, ánh xạ của cây con VP trong ví dụ của ta là (contains X magnesium).
Ánh xạ của một S là (NP’ VP’ ; (printout X)), tại đó NP’, VP’ chính là ánh xạ của NP và VP.
Các hệ thống dựa trên cú pháp thường làm giao diện cho các hệ thống CSDL ứng dụng xác định, chúng cung cấp các ngôn ngữ truy vấn CSDL được thiết kế cẩn thận để dễ dàng ánh xạ từ cây phân tích thành truy vấn CSDL Vấn đề khó khăn nhất trong các ứng dụng này đó là việc tạo ra các luật ánh xạ từ cây phân tích thành các câu ngôn ngữ thao tác dữ liệu (ví dụ như SQL).
1.4.1.3.Các hệ thống văn phạm ngữ nghĩa
Trong các hệ thống văn phạm ngữ nghĩa, việc trả lời các câu hỏi vẫn được thực hiện bằng cách phân tích đầu vào và ánh xạ cây phân tích thành một truy vấn CSDL Điểm khác trong trường hợp này đó chính là các loại văn phạm (có nghĩa là các nút không phải là lá xuất hiện trong cây phân tích) không cần thiết phải tương ứng với các khái niệm cú pháp.Hình sau thể hiện một văn phạm ngữ nghĩa có thể cho ví dụ trên.
Sinh viên thực hiện: Trần Bích Diệp – Khóa: K50 Lớp: Hệ thống thông tin
Hình 1.4 Một số dạng văn phạm ngữ nghía
Dễ dàng thấy rằng một số loại văn phạm (ví dụ Substance, Radiation, Specimen_question) không tương ứng với các phần tử cú pháp (ví như cụm danh từ, danh từ, câu ) Thông tin ngữ nghĩa về miền tri thức (ví dụ một câu hỏi có thể về trường học hay bệnh viện) được kiểm soát bằng các văn phạm ngữ nghĩa Các loại văn phạm ngữ nghĩa thường được chọn lựa để tạo ra các ràng buộc về ngữ nghĩa.
Các loại văn phạm cũng có thể được lựa chọn để dễ dàng ánh xạ từ cây phân tích đến các đối tượng CSDL Ví dụ, đối với câu phân tích cho “which rock contains magnesium”, được chỉ ra ở hình sau, việc tồn tại nút Specimen-question sẽ hướng hệ thống đến việc tham khảo thông tin trong các bảng về specimen hơn là các bảng về departure hay arrival Tương tự cây con có nút gốc là Contains-info sẽ hướng hệ thống đi tìm kiếm các bảng gọi là Contains-info, và tìm các hàng có giá trị cột Substance là magnesium Kiến trúc này được sử dụng trong các hệ như PLANES, LADDER, và REL Văn phạm ngữ nghĩa cũng đồng thời được sử dụng trong hệ EUFID.
Hình 1.5 Cây phân tích trong văn phạm
GIAO DIỆN TRUY VẤN NGÔN NGỮ TỰ NHIÊN TIẾNG VIỆT
Các đặc điểm của tiếng Việt
So với các ngôn ngữ tự nhiên khác, tiếng Việt có một số đặc thù ảnh hưởng tới thiết kế của các hệ thống NLIDB tiếng Việt.
Tiếng Việt là một ngôn ngữ đa âm tiết Khác với các ngôn ngữ khác (như tiếng Anh, tiếng Pháp…) mà ở đó muốn xác định một từ có nghĩa người ta chỉ cần căn cứ vào các dấu hiệu phân cách trong câu, trong tiếng Việt, một từ có nghĩa có thể do nhiều âm tiết tạo nên Điều này tạo nên sự nhập nhằng khi một câu có thể được tách theo nhiều cách khác nhau Đặc điểm này ảnh hưởng tới giải thuật tách từ của hệ thống.
Trong tiếng Việt không có hiện tượng biến thể của từ Với một số ngôn ngữ (Anh, Pháp…) cùng một thì nhưng dùng được ở các thì (tense) khác nhau nó sẽ có dạng khác nhau và hệ thống cần phải xác định được từ gốc của chúng Đặc điểm này giúp cho việc tổ chức từ điển trong các hệ thống sử dụng tiếng Việt đơn giản hơn.
Từ của tiếng Việt có các dấu thanh Bởi vậy đưa câu truy vấn vào hệ thống thường xảy ra lỗi gõ sai từ Hệ thống cần phải có khả năng trợ giúp người dùng phát hiện và khắc phục những lỗi này
2.1.2.Cú pháp Đặc điểm nổi bật của tiếng Việt là hệ thống cú pháp vô cùng phong phú và phức tạp Hơn nữa trật tự của các đơn vị cú pháp trong câu khá thoải mái chứ không chặt chẽ như trong một số ngôn ngữ khác (ví dụ trong tiếng Anh) Bởi vậy nếu căn cứ vào các cấu trúc cú pháp để xác định nghĩa của câu thì hệ thống sẽ hoạt động kém hiệu quả Do đó hệ thống của ta sẽ không sử dụng các luật cú pháp như đã trình bày ở chương I, mà thay vào đó ta sẽ sử dụng các văn phạm ngữ nghĩa để hiểu rõ ngữ nghĩa của câu.
Các vấn đề cần giải quyết
Với mục đích xây dựng được một hệ thống như vậy, ta sẽ trình bày sau đây một số vấn đề về lý thuyết cũng như các kĩ thuật được sử dụng.
Sinh viên thực hiện: Trần Bích Diệp – Khóa: K50 Lớp: Hệ thống thông tin
Người sử dụng đầu cuối (end-user) đưa ra một câu truy vấn tiếng Việt trên
CSDL là trường Đại học Bách Khoa Hà Nội được thu gọn, nếu câu truy vấn đúng thì hệ thống sẽ tiến hành dịch cây truy vấn đó thành một câu truy vấn SQL phù hợp.
Trong trường hợp câu truy vấn của hệ thống không hoàn chỉnh thì hệ thống sẽ đưa ra các phương pháp hiệu chỉnh để phản hồi lại cho người dùng (gọi là các feedback) Hệ thống sẽ yêu cầu người dùng lựa chọn và tiếp tục phân tích với lựa chọn đó.
Vì là một hệ thống truy vấn ngôn ngữ tự nhiên, nên việc giải quyết được những trường hợp đa nghĩa nhập nhằng là rất quan trọng, và rất khó khăn, đòi hỏi nhiều công sức.
Khác với các hệ thống đã tồn tại trước đây, tức là các hệ thống mà từ vựng được phân biệt với từ loại của nó, trong hệ thống này ta sẽ sử dụng một loại từ điển mà từ vựng được kết hợp với một phạm trù của nó trong câu, gọi là từ điển từ vựng – phạm trù Ví dụ trong miền tri thức về trường học thì “sinh viên” trước đây được hiểu theo nghĩa “danh từ” nhưng bây giờ trong hệ thống của chúng ta, “sinh viên” sẽ kết hợp với phạm trù “thực thể” Việc xây dựng chính xác một từ điển từ vựng - phạm trù sẽ giúp cho việc phân tích và hiểu nghĩa câu truy vấn một cách đúng đắn
Sau khi người dùng nhập câu truy vấn ngôn ngữ tự nhiên, hệ thống sẽ tiến hành chỉnh sửa dịch câu truy vấn thành truy vấn SQL Kết quả trả về cho người dùng dưới dạng bảng.
Kiến trúc của hệ thống
Từ các đặc trưng của tiếng Việt, và sau khi đã nghiên cứu các kiến trúc NLIDB trên thế giới hiện nay Ta sẽ xây dựng một hệ thống NLIDB tiếng Việt kết hợp được ưu điểm của các kiến trúc trên: thứ nhất, đó là nó không phụ thuộc miền, thứ hai là nó rất dễ ánh xạ từ mô hình biểu diễn trung gian sang câu truy vấn SQL, và cuối cùng đó là sự khá đơn giản trong kiến trúc của hệ thống. Để làm được điều này thì đòi hỏi phải xây dựng được một tập văn phạm ngữ nghĩa không phụ thuộc miền Điều này được giải quyết vì từ điển ta sử dụng là từ điển từ vựng – phạm trù (sẽ nói kĩ hơn trong phần sau).
Hình sau mô tả kiến trúc của hệ thống NLIDB tiếng Việt được xây dựng.
Dưới đây ta sẽ trình bày lần lượt chức năng của các thành phần trong kiến trúc trên, các vấn đề phát sinh khi xây dựng chúng cùng với những giải pháp được sử dụng để giải quyết các vấn đề này.
Hình 2.10 Kiến trúc hệ thống NLIDB tiếng Việt
Cơ sở tri thức của hệ thống có 4 từ điển chính Một loại được sử dụng bởi bộ tách từ - gọi là từ điển từ vựng – phạm trù, thứ hai là từ điển đồng nghĩa và từ điển viết tắt, thứ ba là tập luật văn phạm nghĩa nghĩa được dùng bởi bộ phân tích cú pháp và loại cuối cùng được dùng khi phân tích ngữ nghĩa của câu truy vấn: từ điển ánh xạ cơ sở dữ liệu Trong hệ thống nó được phân loại như sau:
2.3.2.1.Cơ sơ tri thức phụ thuộc miền
2.3.2.1.1.Từ điển đồng nghĩa và từ điển viết tắt
Từ điển đồng nghĩa và từ điển viết tắt được tổ chức như sau:
Sinh viên thực hiện: Trần Bích Diệp – Khóa: K50 Lớp: Hệ thống thông tin
Các từ đồng nghĩa hoặc từ viết tắt
Từ chính là các từ chỉ các thực thể, các thuộc tính hay tên các vai trò quan hệ của cơ sở dữ liệu Do một từ thì có thể có nhiều từ đồng nghĩa và nhiều cách viết tắt, mà cơ sở dữ liệu thì chỉ biểu thị được một trong số những từ đó, nên từ điển đồng nghĩa, từ điển viết tắt làm phong phú số lượng câu truy vấn mà hệ thống có thể xử lý, tuy nhiên nó cũng có thể gây ra trường hợp từ đồng âm khác nghĩa hay trong hệ thống xử lý truy vấn ngôn ngữ tự nhiên chính là trường hợp một từ có nhiều phạm trù khác nhau.
Từ điển đồng nghĩa và từ điển viết tắt phụ thuộc vào miền ứng dụng và được xây dựng bằng tay.
Từ điển đồng nghĩa được lưu trong file TuDienDongNghia.xml
Từ điển viết tắt được lưu trong file Tudienviettat.xml
2.3.2.1.2.Từ điển ánh xạ dữ liệu
Từ điển ánh xạ cơ sở dữ liệu cung cấp các thông tin về cấu trúc của CSDL mà ta đang làm việc bao gồm :
Từ điển ánh xạ dữ liệu được xây dựng một phần tự động và phụ thuộc vào từng miền ứng dụng Nó được lưu trong file AXDL.xml
Tổ chức tập tin lưu trữ được tổ chức cụ thể như sau:
Bảng : bao gồm tên chính (tên đầy đủ tiếng Việt), tên bảng trong CSDL, thuộc tính mặc định
Thuộc tính : bao gồm tên chính (tên đầy đủ tiếng Việt), tên thuộc tính lưu trong CSDL, tên bảng chứa thuộc tính, kiểu giá trị của thuộc tính
Tên bộ môn
Vai trò ngữ nghĩa (SR) bao gồm tên bảng biểu diễn liên kết, tên thực thể 1, tên thực thể 2, quan hệ thực thể 1 – thực thể 2 (SR12), quan hệ thực thể 2 – thực thể 1 (SR21).
Giá trị bao gồm tên đầy đủ của giá trị, tên giá trị trong CSDL, thuộc tính chứa giá trị, thực thể chứa giá trị.
An ninh mạng
Tên môn học
Sinh viên thực hiện: Trần Bích Diệp – Khóa: K50 Lớp: Hệ thống thông tin
Cách tổ chức, chọn các trường để lưu trữ trong từ điển ánh xạ dữ liệu giúp khai thác một cách tối ưu nhất các thông tin trong CSDL và mô hình thực thể liên kết, nó được sử dụng trong quá trình hoàn chỉnh cú pháp và ngữ nghĩa để kiểm tra sự chính xác của dữ liệu nhập vào, kiểm tra sự ràng buộc dữ liệu và bổ sung những thông tin khuyết thiếu một cách chính xác nhất.
2.3.2.1.3.Từ điển từ vựng – phạm trù
Một hệ thống làm nhiệm vụ dịch giữa hai (hay nhiều ngôn ngữ) bất kì nào đó bao giờ cũng phải có một vốn từ nhất định và các hệ thống NLIDB cũng không phải là một ngoại lệ Khác với các từ điển trước đây thường cung cấp từ vựng và nghĩa loại của từ (ví dụ từ “giảng viên” sẽ cung cấp một nghĩa loại là “danh từ”), bây giờ ta sử dụng từ điển từ vựng – phạm trù, tức là từ điển cung cấp vốn từ vựng và phạm trù của nó trong câu (như theo ví dụ trên, từ “giảng viên” sẽ cung cấp thêm không phải nghĩa loại là “danh từ” mà là phạm trù “thực thể” Vì “giảng viên” trong câu truy vấn ám chỉ đến bảng Giảng viên trong cơ sở dữ liệu) Vốn từ vựng này giúp cho hệ thống có thể giao tiếp được với người sử dụng.
Từ điển từ vựng – phạm trù được lưu trong file TVPTT.xml Với chức năng đã nói ở trên thì tất nhiên mỗi phần tử của từ điển sẽ chứa các thông tin như sau:
Từ điển từ vựng-phạm trù tự được xây dựng một phần tự động từ mô hình quan hệ trong cơ sở dữ liệu, tổng hợp từ điển đồng nghĩa, từ điển viết tắt và một số từ vựng không phụ thuộc miền.
Tương ứng, tổ chức tập tin của một từ điển từ vựng có dạng như hình sau:
Hệ thống thông tin
Cách xây dựng từ điển từ vựng-phạm trù từ của hệ thống làm nó chứa đựng khá đầy đủ tất cả các tri thức liên quan đến lĩnh vực đang xem xét hay mô hình thế giới thực và cả các tri thức về ngôn ngữ, về từ vựng của miền ứng dụng đang xem xét và của những người sử dụng hệ thống, nó làm phong phú hơn số lượng câu mà hệ thống có thể xử lý nhưng đôi khi nó cũng làm tăng tính phức tạp khi xử lý một câu truy vấn khi trong câu tồn tại những từ thuộc nhiều phạm trù khác nhau.
2.3.2.2 Cơ sở tri thức độc lập miền
2.3.2.2.1.Tập luật văn phạm ngữ nghĩa Đây là một phần quan trọng trong cơ sở tri thức của hệ thống mà ta đã đề cập đến Bản thân của nó chính là luật ngữ nghĩa Về mặt ngữ nghĩa mỗi câu truy vấn của người sử dụng đều có một dạng văn phạm Mỗi vị trí của từ trong câu truy vấn có một phạm trù nhất định (phạm trù đó có thể là: đối tượng mà người sử dụng cần hỏi, thuộc tính của đối tượng, hay giá trị của người sử dụng nhập vào…) Việc xác định tất cả các văn phạm ngữ nghĩa là hoàn toàn có thể SG là nhóm tri thức không phụ thuộc miền (domain independent knowledge), các tri thức thuộc nhóm này có ý nghĩa không thay đổi dù hệ thống làm việc với các miền tri thức khác
Các luật này đã được mã hóa và lưu trong file SG.xml Các luật được lưu dưới dạng như sau:
Các luật SG (Các luật in đậm là những luật đã chuẩn)
Các luật quy định các dạng câu truy vấn có thể có:
TV à
Sinh viên thực hiện: Trần Bích Diệp – Khóa: K50 Lớp: Hệ thống thông tin
TVTL à
Các luật diễn tả đích tìm kiếm:
à
à
à
à
à ‘, ‘
à ‘và’
Các luật diễn tả điều kiện của câu truy vấn:
à
à
à
à
Các luật điều kiện nối:
à
à ‘chỉ’
à
Các luật điều kiện chọn:
à
à
à
à
à
à
Các luật diễn tả giá trị trong câu truy vấn:
à
à ‘giữa’ ‘và’
à ‘từ’ ‘đến’
à ‘lớn hơn’ ‘và’ ‘nhỏ hơn’
Các luật diễn tả nguồn:
à
Các luật diễn tả các thành phần phụ trong câu truy vấn:
à
à
à
à ‘đưa ra’/ ‘lấy ra’/ ‘tính’/…
à ‘mọi’/ ‘tất cả’/
à
à ‘bằng’/ ‘hơn’/ ‘kém’/
Việc đưa ra nhiều mẫu câu giúp hệ thống phân tích được nhiều cách diễn đạt khác nhau với cùng một câu truy vấn nhưng cũng chính vì thế mà gây ra tình trạng số lượng cây truy vấn là khá nhiều, trong đó phần lớn là các cây không sát với ý người dùng.
Bộ tách từ có nhiệm vụ tách các từ có mang phạm trù khác nhau trong câu truy vấn của người sử dụng Đầu ra của nó làm đầu vào cho bộ chuẩn hóa câu.
Sinh viên thực hiện: Trần Bích Diệp – Khóa: K50 Lớp: Hệ thống thông tin
Ví dụ với câu đầu vào “Tìm tên giáo viên hướng dẫn học sinh Nguyễn Văn A”, sau khi qua bộ tách từ ta sẽ được một dãy sau: với dãy phạm trù tương ứng sau: .
Như vậy ta nhận thấy hệ thống chỉ có khả năng tách các từ đã có trong từ điển và gán phạm trù cho chúng Tuy nhiên vì đây là một hệ thống giao tiếp với con người bằng ngôn ngữ tự nhiên nên phát sinh rất nhiều các trường hợp ngoài mong muốn
PHƯƠNG PHÁP PHÂN TÍCH VÀ HOÀN CHỈNH NGỮ NGHĨA
Tính không đầy đủ trong luật văn phạm ngữ nghĩa
Hệ thống cú pháp tiếng Việt vô cùng phong phú và phức tạp, hơn nữa trật tự của các đơn vị cú pháp trong câu khá thoải mái, các thành phần trong câu có thể được rút gọn, tỉnh lược Tập luật văn phạm ngữ nghĩa phải đủ mạnh để bao phủ một lượng lớn các truy vấn thường gặp ở người dùng nên sẽ tồn tại nhiều luật văn phạm ngữ nghĩa ứng với những trường hợp rút gọn đó, so với một luật áp dụng cho câu truy vấn đầy đủ, trong sáng và rõ nghĩa thì đó là những luật chưa chuẩn.
3.1.1 Tính không đầy đủ đối với điều kiện chọn Điều kiện chọn nhằm hạn chế số lượng của thực thể theo những yêu cầu của người sử dụng, điều kiện chọn luôn gắn với một thực thể để tạo thành nguồn Điều kiện chọn đối với một thực thể phải đầy đủ ba thành phần theo thứ tự: thuộc tính, phép so sánh và giá trị Chẳng hạn: “sinh viên có điểm trung bình lớn hơn 8.3” là một câu trong sáng và đầy đủ ý, trong đó điểm trung bình là thuộc tính của thực thể sinh viên, lớn hơn là phép so sánh và 8.3 là giá trị.
à : luật chuẩn
Cùng một yêu cầu như trên, nhưng với cách biểu đạt kém hơn: “sinh viên lớn hơn 8.3 ở điểm trung bình” hoặc những câu truy vấn khuyết phép so sánh bằng
“sinh viên tên A” thì ta vẫn hiểu được Các luật diễn tả những kiểu câu truy vấn này:
à
à
à
à
Phức tạp hơn là những câu truy vấn khuyết thuộc tính và có thể cả phép so sánh, nhưng ta vẫn hiểu được do giá trị nằm trong thuộc tính mặc định của thực thể, chẳng hạn khi nói: “sinh viên Nguyễn Văn A” thì mọi người đều hiểu “sinh viên tên là Nguyễn Văn A” Luật diễn tả:
Sinh viên thực hiện: Trần Bích Diệp – Khóa: K50 Lớp: Hệ thống thông tin
à
3.1.2 Tính không đầy đủ đối với điều kiện nối Điều kiện nối thể hiện mối liên hệ của các thực thể, điều kiện nối phải chỉ ra được thực thể có quan hệ là gì với một thực thể khác, điều kiện nối gồm hai thành phần theo thứ tự: vai trò ngữ nghĩa và nguồn, chẳng hạn: “sinh viên được hướng dẫn bởi giáo viên” thì được hướng dẫn là vai trò ngữ nghĩa, còn giáo viên là thực thể thuộc nguồn Ta có các điều kiện nối chuẩn:
à ‘chỉ’
à
Nhưng với cách diễn đạt “sinh viên được giáo viên hướng dẫn” hoặc “sinh viên không được giáo viên hướng dẫn” ta vẫn hiểu được ý đồ của câu truy vấn, các luật biểu thị điều kiện nối chưa chuẩn:
à
Ngoài ra, còn có trường hợp hai thực thể không có quan hệ trực tiếp mà phải thông qua thực thể thứ ba nhưng người dùng lại hiểu nhầm hai thực thể có quan hệ trực tiếp, chẳng hạn: sinh viên học lớp, lớp thuộc khoa, nhưng người dùng lại ngầm hiểu sinh viên thuộc khoa , trong trường hợp này ta cần bổ sung điều kiện nối cần thiết.
3.1.3 Tính không đầy đủ với nguồn
Nguồn chỉ ra thực thể và các điều kiện có liên quan đến thực thể cần tìm kiếm, nguồn gồm thực thể và các điều kiện, có thể là điều kiện chọn, điều kiện nối hoặc cả hai: ví dụ “giảng viên tên B” gồm thực thể giảng viên và điều kiện chọn Các luật văn phạm biểu thị nguồn:
Nhưng trong một miền tri thức đủ nhỏ, khi nhắc đến một giá trị nằm trong thuộc tính mặc định của thực thể thì mọi người vẫn hiểu được ý đồ của câu truy vấn, chẳng hạn: “tìm sinh viên học công nghệ thông tin” thì ai cũng hiểu là “sinh viên học ngành công nghệ thông tin” Luật biểu thị:
Cây cú pháp không hoàn chỉnh
Cây cú pháp không hoàn chỉnh là những cây đúng cú pháp nhưng được dựng lên từ tập luật văn phạm ngữ nghĩa mà trong đó có ít nhất một luật không chuẩn. Một cây cú pháp chuẩn thường có dạng như sau:
Hình 3.13 Cây cú pháp hoàn chỉnh
Một số ví dụ về các cây cú pháp không hoàn chỉnh:
Cây cú pháp có điều kiện chọn ứng với luật:
VD: “Tìm giảng viên dạy sinh viên Tạ Ngọc Mai”
Sau khi hoàn chỉnh cú pháp và ngữ nghĩa, câu trên sẽ chuyển về câu đầy đủ
“Tìm giảng viên dạy sinh viên tên là Tạ Ngọc Mai”
Sinh viên thực hiện: Trần Bích Diệp – Khóa: K50 Lớp: Hệ thống thông tin
Hình 3.14 Cây cú pháp không hoàn chỉnh điều kiện chọn
Cây cú pháp có nguồn áp dụng luật:
VD: Tìm sinh viên học công nghệ thông tin.
Sau khi hoàn chỉnh, câu truy vấn đầy đủ thu được “Tìm sinh viên học khoa có tên khoa là công nghệ thông tin”
Hình 3.15 Cây cú pháp không hoàn chỉnh nguồn
Cây cú pháp có điều kiện nối áp dụng luật:
VD: “Tìm sinh viên được giáo viên Hoàng Mai hướng dẫn”.
Sau khi hoàn chỉnh, câu truy vấn thu được “Tìm sinh viên được hướng dẫn bởi giáo viên tên là Hoàng Mai”.
Hình 3.16 Cây cú pháp không hoàn chỉnh điều kiện nối
Kỹ thuật bổ sung, hoàn chỉnh ngữ nghĩa với cây cú pháp không hoàn chỉnh
Một hệ cơ sở dữ liệu hỗ trợ giao diện tự nhiên cho người dùng sẽ không hoàn toàn tự nhiên nếu nó đòi hỏi một người sử dụng phải biết các dữ liệu được biểu diễn như thế nào trong cơ sở dữ liệu Hơn thế nữa, hệ không những phải có khả năng hiểu ý của người sử dụng mà còn phải cung cấp các giải thích với nhiều thông tin hữu ích hơn cho người dùng Do vậy, mục tiêu chính mà một hệ thống hỏi đáp ngôn ngữ tự nhiên cần đạt được là cho phép những người dùng có thể không cần đào tạo vẫn rút ra được các thông tin mong muốn.
Trong thực tế thì những câu truy vấn của người dùng thường không đúng như cú pháp chuẩn mà hệ thống đặt ra, vì vậy ta áp dụng các kỹ thuật bổ sung, hoàn chỉnh ngữ nghĩa để đưa về cây cú pháp hoàn chỉnh, làm đầu vào cho bộ dịch Các kĩ thuật bổ sung, hoàn chỉnh ngữ nghĩa sử dụng từ điển ánh xạ dữ liệu, là từ điển lưu trữ thông tin trong CSDL và mô hình thực thể liên kết ta đang làm việc.
Tiến hành duyệt cây cú pháp theo chiều từ trái qua phải, từ nút lá về nút gốc, nếu gặp các nút có nhãn “Điều kiện chọn”, “Điều kiện nối” hoặc “Nguồn” ta tiến hành theo các luật dịch Để tiện theo dõi và ngắn gọn về cách biểu diễn trong luật dịch, ta tạm kí hiệu các thông tin trong từ điển ánh xạ dữ liệu về thực thể Entity (E) gồm: tên thực thể (e) và tên thuộc tính mặc định (a_macdinh); Thuộc tính Attribute (A) gồm: tên thuộc tính (a), tên bảng lưu thuộc tính (e), kiểu lưu trữ dữ liệu (Kieu); Giá trị Value
Sinh viên thực hiện: Trần Bích Diệp – Khóa: K50 Lớp: Hệ thống thông tin
(V) gồm: tên giá trị (v), tên thuộc tính chứa giá trị (a), tên thực thể chứa giá trị (e); Vai trò ngữ nghĩa Semantic Rule (SR) gồm: tên thực thể 1 (e1), tên thực thể 2 (e2), quan hệ theo chiều từ thực thể 1 sang thực thể 2 (r12), quan hệ theo chiều từ thực thể 2 sang thực thể 1 (r21); Các phạm trù từ trong câu truy vấn của người dùng: thực thể (e’), thuộc tính (a’), giá trị (v’), vai trò ngữ nghĩa (r’); Hàm nhận dạng số nguyên, số thực, định danh tạm gọi là hàm xác định kiểu: Kieu(x), với x là giá trị cần xác định kiểu; Hàm kiểm tra phép so sánh: nếu kiểu giá trị là kí tự và phép so sánh là “bằng” hoặc “khác” thì trả về True Bao trong cặp ngoặc nhọn < > là phạm trù trong câu truy vấn.
3.3.1 Chuẩn hóa điều kiện chọn
Khi gặp một nút có nhãn là điều kiện chọn, ta duyệt cây xuống dưới lấy tất cả các nút lá của điều kiện chọn và duyệt cây lên trên để xác định thực thể gắn với điều kiện chọn.
à
Khi gặp điều kiện chọn chuẩn ta tiến hành kiểm tra ngữ nghĩa, gồm những bước sau: -Kiểu giá trị có phù hợp với kiểu lưu trữ giá trị của thực thể.
-Kiểm tra phép so sánh
-Kiểm tra thuộc tính chứa giá trị có là thuộc tính trong câu truy vấn.
-Kiểm tra thực thể chứa thuộc tính có là thực thể trong câu truy vấn. Đầu vào Các trường hợp xử lý