2. Giải quyết bài toán dịch ngôn ngữ tự nhiên sang ngôn ngữ đặc tả
3.2.3. Giải quyết vấn đề chuyển mẫu câu thành dạng tiền đặc tả
Để chuyển mẫu câu thành ngôn ngữ tiền đặc tả ta phải đọc mẫu câu từ file XML CSDL mẫu câu có sẵn và mỗi mẫu câu là các thành phần chính như ta đã phân tích ở mục 3.2.1.
File XML CSDL mẫu câu được tổ chức như sau: <dataroot> <Maucau> <Cau>...</Cau> </Maucau> </dataroot> Ví dụ: <dataroot> <Maucau> <Cau>cho|ten|là|dacdiem|doituong|ten</Cau> </Maucau> <Maucau> <Cau>cho|doituong|ten</Cau> </Maucau> <Maucau> <Cau>cho|doituong|ten|là|doituong</Cau> </Maucau> ... </dataroot>
Có hai dạng mẫu câu: mẫu câu giả thiết và mẫu câu kết luận.
Mẫu câu giả thiết là các mẫu câu nêu lên các đối tượng, sự kiện liên quan thường bắt đầu với các từ: cho, biết... hoặc bắt đầu bằng một đối tượng:
Ví dụ:
cho tam giác ABC -> cho|đối tượng|tên
từ mẫu câu trên ta đưa ra dạng tiền đặc tả như sau: cho|[tên, đối tượng]
cho ABC là tam giác -> cho|tên|là|đối tượng Cho|[tên,“đối tượng”]
cho tam giác ABC, cạnh AB = 5 cm, cạnh BC = 10 cm.
Cho|đối tượng|tên|đối tượng|tên|tính chất|số lượng|đối tượng|tên|tính chất|số lượng.
Cho|[tên,“đối tượng”]|[tên,“đối tượng”]|tính chất|số lượng|[tên,“đối tượng”]|tính chất|số lượng.
Mẫu câu kết luận là các mẫu câu đưa ra các yêu cầu của bài toán thường bắt đầu bằng các từ: tính, so sánh, chứng minh, tìm,... và chúng sẽ được đưa về đặc tả riêng cho mẫu câu kết luận
Ví dụ:
Tính chu vi tam giác ABC → Tính|thuộc tính|đối tượng|tên Tiền đặc tả sẽ có dạng: [“Tính”, [tên,“đối tượng”].thuộc tính] Tìm số đo góc ABC → Tìm|thuộc tính|của|đối tượng|tên Tiền đặc tả sẽ có dạng: [“Tìm”,[tên,“đối tượng”].thuộc tính] Thuật toán sơ bộ như sau:
B1: đọc file XML CSDL mẫu câu lấy từng loại mẫu câu. B2: Kiểm tra mẫu câu nếu là mẫu câu kết luận nhảy đến B4
B3: Gán tiền đặc tả bắt đầu định nghĩa theo mẫu câu giả thiết nhảy đến B5 B4: Gán tiền đặc tả bắt đầu định nghĩa theo mẫu câu kết luận
B5: duyệt mẫu câu theo từ loại đưa về dạng tiền đặc tả đã định nghĩa ở mục B6: lưu mẫu câu với đặc tả vào file XML
Hình 3.2 sơ đồ giải thuật chuyển mẫu câu thành dạng tiền đặc tả.
File mẫu câu với đặc tả được thiết kế như sau: <dataroot> <Maucau> <Cau>...</Cau> <Tdacta>...</Tdacta> </Maucau> </dataroot>
Lấy từng mẫu câu CSDL mẫu
câu
Gán chuỗi đặc tả bắt dầu theo mẫu câu kết luận
Mẫu câu với tiền đặc tả Kết luận
Kiễm tra mẫu
câu
Chuyển mẫu câu thành dạng tiền đặc tả Gán chuỗi đặc tả bắt đầu
theo mẫu câu giả thiết Giả thiết
Ví dụ: <dataroot> <Maucau> <Cau>cho|doituong|ten</Cau> <Tdacta>cho|[ten, “doituong”]</Tdacta> </Maucau> <Maucau> <Cau>tính|thuoctinh|cua|doituong|ten</Cau> <Tdacta>[“tính”,[ten, “doituong”].thuoctinh]</Tdacta> </Maucau> ... </dataroot>