4.4.2.1 Khung luật
Vấn đề của học chuyển đổi khác cấp là làm ta sao cĩ thể xây dựng được
đường đi từ một nút đến vị trí mới của nĩ. Để làm được điều này, chúng em cung cấp cho bộ học khả năng hình thành đường đi từ nút cần chuyển đổi đến vị trí mới của nĩ bằng cách xác định cha chung cho hai nút (nút bắt đầu và kết thúc của thành phần cần chuyển đổi), tiếp theo sẽ đánh định danh tương đối cho các thành phần trên đường đi và hình thành nên đường di chuyển của thành phần cần chuyển đổi. Khung luật phải cĩ khả năng cho phép lưu trữđường đi này để cĩ thể làm điều kiện áp dụng trong quá trình áp dụng luật. Đây là thuộc tính đầu tiên, thuộc tính tiếp theo, khung luật cần phải lưu trữđược dãy từ loại trên đường đi này để xem đây là
đặc điểm của các “cột mốc” trên đường di chuyển. Các thuộc tính cịn lại là dãy từ
loại của thành phần bắt đầu, dãy từ loại của thành phần kết thúc, từ cụ thể và số
lượng con trực tiếp của thành phần bắt đầu.
STT Thành phần Ý nghĩa
1 route Đường đi của thành phần cần chuyển vị trí, từ điểm bắt đầu
đến thành phần kết thúc 2 pos Dãy từ loại trên đường đi
3 posb Dãy từ loại của thành phần bắt đầu 4 pose Dãy từ loại của thành phần kết thúc 5 posw Từ loại của một từ cụ thể trong thành phần bắt đầu 6 wrd Một từ cụ thể trong thành phần bắt đầu 7 noc Số con trực tiếp của thành phần bắt đầu 8 move Hành động di chuyển, xác định vị trí của thành phần cần di chuyển trong thành phần bắt đầu và vị trí mới của nĩ trong thành phần kết thúc
Bảng 11: Các thành phần trong khung luật học chuyển đổi khác cấp
Bộ học luật chuyển đổi khác cấp sử dụng 3 khung luật sau:
STT Khung luật
Mức độảnh hưởng tổng quát – 1 khung luật
1 route() & pos() & posb(X,Y)=() & pose(W,Z)=() : move(U,V)
Mức độảnh hưởng chi tiết – 1 khung luật
2 route() & pos() & posb(X,Y)=() & pose(W,Z)=() & posw(A)=(IN) & wrd(A)=(T) : move(U,V)
Mức độảnh hưởng rất chi tiết – 1 khung luật
3 route() & pos() & posb(X,Y)=() & pose(W,Z)=() & posw(A)=(IN) & wrd(A)=(T) & noc()=(N) : move(U,V)
Bảng 12: Các khung luật dùng trong học luật chuyển đổi bước 2 – chuyển đổi khác cấp
Các khung luật trong học luật chuyển đổi khác cấp được chúng em thiết kế để
cĩ thể học được cả những trường hợp chuyển đổi trong cùng một cấp (là trường hợp
đặc biệt của chuyển đổi khác cấp), tuy rất hạn chế nhưng sẽ cĩ khả năng khắc phục
được các lỗi bị bỏ sĩt sau khi áp dụng các luật chuyển đổi cùng cấp.
4.4.2.2 Giải thích khung luật và luật được rút trích
Cũng như bước học luật chuyển đổi cùng cấp, luật chuyển đổi khác cấp cũng gồm hai thành phần là phần điều kiện và phần hành động, cách nhau bằng dấu hai chấm (“:”) và cũng khơng giới hạn về số thành phần trên đường đi, số thành phần ở
các thành phần bắt đầu và kết thúc.
STT Khung luật Ý nghĩa
Các khung luật trong phần điều kiện
1 route=() Dãy định danh tương đối từ thành phần cần chuyển vị trí
đến thành phần mới sẽ chứa nĩ. 2 pos=() Dãy từ loại trên đường đi
3 posb(X,Y)=() Dãy từ loại con của thành phần bắt đầu đang chứa thành phần cần di chuyển
4 pose(X,Y)=() Dãy từ loại con của thành phần kết thúc sẽ chứa thành phần di chuyển
5 posw(A)=( θ ) Xác định từ loại của từ thứ V trong thành phần kết thúc phải là θ
6 wrd(A)=(T) Từ cụ thể T tại vị trí V của thành phần bắt đầu
7 noc()=(N) Số lượng nút con trực tiếp của thành phần bắt đầu bằng N
Khung luật trong phần hành động
5 move(U,V) Xố thành phần cần di chuyển khỏi vị trí U của thành phần bắt đầu vào thêm nĩ vào thành phần kết thúc tại vị trí V Bảng 13: Ý nghĩa các thành phần trong khung luật bước 2
Cách đánh định danh tương đối cho thành phần route trong khung luật ¾ Từ hai thành phần - thành phần cần di chuyển và cha mới của nĩ - ta xác
định nút chung cho hai thành phần này.
¾ Xem ID tương đối của thành phần chung này là 0. Bắt đầu từ thành phần chung lần lượt đi xuống cấp dưới cho đến khi gặp các 2 thành phần trên. Trong quá trình di chuyển ta cần lưu lại đường đi theo nguyên tắc: Sử dụng dấu chấm “.” để ngăn cách địa chỉ các cấp
Địa chỉ của thành phần cấp dưới là thứ tự con của thành phần đĩ. Ví dụ ta cĩ một phần cây cú pháp sau với thành phần cần chuyển đổi như sau:
Bảng 14: Một phần cây cú pháp minh hoạ cho việc đánh định danh tương đối cho khuơn mẫu route
Giả sử thành phần cần chuyển đổi vị trí là [ADVP → also/RB] và nĩ sẽ được
đưa vào vị trí con thứ 0 của thành phần [VP]. Ta xác định được VP là cha chung, như vậy VP sẽ cĩ ID tương đối là 0. Lần lượt đi xuống từng cấp để xác định ID cho các thành phần trên đường đi ta cĩ [NP] – 0.1; [ADVP] – 0.1.0. Ta cĩ đường đi của thành phần [ADVP] sẽ là (0.1.0 → 0.1 → 0). Vị trí con thứ 0 của [VP] mà thành phần phần [ADVP] cần chuyển đến sẽđược qui định trong hành động move.
V VPP A AUUXX NNPP A ADDVVPP is R RBB D DTT also a N NNN teacher Thành phần cần chuyển đổi 0.1.0 0 0.1 V VPP A AUUXX NNPP A ADDVVPP is R RBB D DTT also a N NNN teacher Thành phần cần chuyển đổi
Xét một luật chuyển đổi khác cấp cụ thểđược rút ra như sau:
route(0.1.1,0.1,0,0.0) & pos(NP,PP,NP,NP) & posb=(IN,NP) & pose=(DT,NN,JJ) : move(1,2)
Để luật này thoả thì một mẫu học phải đảm bảo các điều kiện sau: dãy ID tương đối là 0.1.1 → 0.1 → 0 → 0.0 ứng với dãy từ loại là NP → PP → NP → NP, dãy từ con loại của thành phần bắt đầu đang chứa thành phần cần di chuyển là IN + NP và dãy từ loại con của thành phần kết thúc sẽ chứa thành phần chuyển đổi là DT + NN + JJ
Hành động của luật này là di chuyển thành phần cần chuyển đổi đến chèn vào vị trí thứ hai của thành phần kết thúc.
Xét câu tiếng Anh cụ thể “It is a good type of book.” cĩ cây cú pháp giống như
(hình 32). Sau khi áp dụng đã qua chuyển đổi cùng cấp thì hai thành phần good/JJ và type/NN được hốn đổi vị trí cho nhau. Khi qua giai đoạn áp dụng các luật đổi khác cấp và gặp luật như trên thì xét trên cây cú pháp ta thấy chỉ cĩ thành phần (NP
(NP (DT a)[9] (NN type)[11] (JJ good)[10])[8] (PP (IN of)[12] (NP (NN
book)[14])[13])[11])[7])[5] là thoả điều kiện luật đưa ra. Như vậy hành động
move(1,2) sẽđược thực hiện để đưa thành phần (NP (NN book)[14])[13] vào vị trí
đúng của nĩ – vị trí thứ hai trong thành phần (NP (DT a)[9] (NN type)[11] (JJ
good)[10])[8]. Kết quả ta cĩ được cây cú pháp tiếng Anh cĩ cấu trúc các thành phần giống với cấu trúc cây tiếng Việt như hình 33.
4.4.3 Sơ đồ lớp của chương trình học Hình 36: Sơđồ lớp khối học luật chuyển đổi khác cấp Hình 36: Sơđồ lớp khối học luật chuyển đổi khác cấp 4.4.4 Xây dựng bộ luật (giai đoạn học khác cấp) bool CLearner_2::Learning() { // Xây dựng tập luật ứng viên GetRuleCandidate(); while (1) { // Tìm luật tốt nhất (cĩ điểm cao nhất) bestrule=FindBestRule(); // Nếu điểm của luật tốt nhất lớn hơn ngưỡng if ( Scorcebestrule > THRESHOLD) {
// Thêm luật tốt nhất vào tập luật chuyển đổi cùng cấp m_BestRules.Add(bestrule);
// Cập nhật điểm và bổ sung luật cho tập luật ứng viên
UpdateRules(); } CLearner_2 CCorpus_2 CRule_2 CTemplate_2 CPredicate_2 CTarget_2 CMember_2 CRoute_2 CPos_2 CPosb_2 CPose_2 CPosw_2 CUnit_2 2 * * * CNQTree * * CWrd_2 CMoving
else // Ngược lại break; } } // Learning bool CLearner_2::GetCandidate() {
for i=0 to Sizeof(Template_2)-1; {
for j=0 to Sizeof(LearningCorpus_2)-1 {
CNQTree* pTree=LearningCorpus_2[i];
while (1) {
// Xác định node khác nhau giữa cây golden và cây learning
CNQNode* pNode=pTree→FindDiffNode();
// Nếu khơng cịn tìm thấy node khác nhau if (!pNode)
break;
// Đánh dấu node này đã được xem xét đến
pNode→SetHasALook();
// Rút luật ứng viên cĩ thể cĩ
RULE rule=pNode→GetRule(Template_2[i]);
m_Rules.Add(rule); }
} }