Chuyển từ ngôn ngữ tiền đặc tả sang ngôn ngữ đặc tả bài toán

Một phần của tài liệu Nghiên cứu xây dựng hệ thống dịch từ ngôn ngữ tự nhiên sang ngôn ngữ đặc tả với mô hình COKB (Trang 39)

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.5.Chuyển từ ngôn ngữ tiền đặc tả sang ngôn ngữ đặc tả bài toán

Đây là đích đến cuối cùng của bài toán “dịch từ ngôn ngữ tự nhiên sang ngôn ngữ đặc tả”. Sau khi chuyển từ ngôn ngữ tiền đặc tả sang ngôn ngữ đặc tả ta sẽ lưu vào file dacta.xml có cấu trúc như sau

<exsercise>

Mẫu câu và tiền đặc tả

Mẫu câu và tiền đặc tả

Tách câu chuyễn thành mẫu câu theo từ loại

Tách câu chuyễn thành mẫu câu theo từ loại

Đề bài toán

Đề bài toán

tách từ và gán nhãn từ loại

tách từ và gán nhãn từ loại

Tiền đặc tả tương ứng với mẫu câu

Tiền đặc tả tương ứng với mẫu câu

Duyệt tiền đặc tả lấy từ tương ứng với từ loại

Duyệt tiền đặc tả lấy từ tương ứng với từ loại

Ngôn ngữ tiền đặc tả bài toán

Ngôn ngữ tiền đặc tả bài toán

<problem> đề bài toán </problem>

<hypothesis> giả thiết bài toán cho </hypothesis> <goal> Yêu cầu bài toán (kết luận) </goal>

</exsercise >

Trước hết ta sẽ xem xét các ví dụ sau:

Ví dụ 1: cho tam giác ABC, cạnh AB = cạnh BC = 5 cm, góc BAC = 600. Tìm độ dài cạnh AC và chu vi tam giác ABC.

Qua các bước 4.2.3 và 4.2.4 ta được ngôn ngữ tiền đặc tả như sau:

cho|[ABC,“tam giác”]|[AB,“cạnh”]=[BC,“cạnh”]=5|[BAC,“góc”]=60|[[“tính”, [AC,“cạnh”].a], [“tính”, [ABC,“tam giác”].chu vi]]

từ ngôn ngữ tiền đặc tả trên ta phải chuyển sang ngôn ngữ đặc tả như sau:

giả thiết: [{},{[A,“DIEM”], [B,“DIEM”], [C,“DIEM”],[TAM_GIAC[A,B,C], “TAM_GIAC”]},{DOAN[A,B].a=DOAN[B,C].a=5,GOC[B,A,C].a=60}]

kết luận: [[“Tính”,DOAN[A,C].a],[“Tính”,TAM_GIAC[A,B,C].C]] kết quả đặc tả được lưu trữ vào file dacta.xml như sau:

<exsercise> <problem>

cho tam giác ABC, cạnh AB = cạnh BC = 5 cm, góc BAC = 600. Tìm độ dài cạnh AC và chu vi tam giác ABC.

</problem> <hypothesis> [{},{[A,“DIEM”],[B,“DIEM”],[C,“DIEM”], [TAM_GIAC[A,B,C],“TAM_GIAC”]}, {DOAN[A,B].a=DOAN[B,C].a=5,GOC[B,A,C].a=60}] </hypothesis>

<goal>

[[“Tính”,DOAN[A,C].a],[“Tính”,TAM_GIAC[A,B,C].C]] (adsbygoogle = window.adsbygoogle || []).push({});

</goal> </exsercise >

Ví dụ 2: Vẽ góc ABC có số đo bằng 560. Vẽ góc ABC’ kề bù với góc ABC. Hỏi số đo của góc ABC’?

Ngôn ngữ tiền đặc tả bài toán:

Vẽ|[ABC, “góc”].a=56|vẽ|[ABC’, “góc”],[“kề bù”, ABC, BAC’] | [“hỏi”, [ABC’, “góc”].a ] Ngôn ngữ đặc tả: Giả thiết: [{},{[A,“DIEM”],[B,“DIEM”],[C,“DIEM”],[C’,“DIEM”]},{GOC[A,B,C].a=56, [“KEBU”, GOC[A,B,C],GOC[A,B,C’]]}] Kết luận: [[“Hỏi”,GOC[A,B,C’].a]]

kết quả đặc tả được lưu trữ vào file Dacta.xml như sau:

<exsercise> <problem>

Vẽ góc ABC có số đo bằng 560. Vẽ góc ABC’ kề bù với góc ABC. Hỏi số đo của góc ABC’? </problem> <hypothesis> [{},{[A,“DIEM”],[B,“DIEM”],[C,“DIEM”],[C’,“DIEM”]},{GOC[A,B,C].a=56, [“KEBU”, GOC[A,B,C],GOC[A,B,C’]]}] </hypothesis> <goal>

[[“Hỏi”,GOC[A,B,C’].a]]

</goal> </exsercise >

Từ hai ví dụ trên ta đưa ra thuật toán sơ bộ như sau:

B1: tách chuỗi tiền đặc tả ra thành từng từ tại các kí hiệu đặc biệt trong chuỗi B2: duyệt từng từ trong chuỗi tiền đặc tả.

B3: định nghĩa các biến liên quan cấu thành đối tượng. B4: định nghĩa đối tượng theo dạng đặc tả

B5: định nghĩa các sự kiện của bài toán B6: định nghĩa các yêu cầu của bài toán

B7: duyệt đến hết chuỗi tiền đặc tả ta được các dữ kiện liên quan của bài toán theo ngôn ngữ đặc tả → lưu vào file Dacta.xml

Chuỗi tiền đặc tả

Chuỗi tiền đặc tả

Duyệt từng từ

Duyệt từng từ

Định nghĩa biến liên quan

Định nghĩa biến liên quan File lưu đặc tả bài File lưu đặc tả bài Tách chuỗi thành từng từ Tách chuỗi thành từng từ Định nghĩa đối tượng Định nghĩa đối tượng Định nghĩa các sự kiện Định nghĩa các sự kiện

Định nghĩa yêu cầu bài toán

Định nghĩa yêu cầu bài toán

Chuỗi đặc tả

Hình 3.4: sơ đồ giải thuật chuyển từ ngôn ngữ tiền đặc tả sang đặc tả

Một phần của tài liệu Nghiên cứu xây dựng hệ thống dịch từ ngôn ngữ tự nhiên sang ngôn ngữ đặc tả với mô hình COKB (Trang 39)