Nâng cao khả năng mở rộng cho mơ hình học

Một phần của tài liệu 9912621_9912652 (Trang 95 - 103)

Do yêu cầu về tính đầy đủ và tối ưu của bộ luật, chương trình máy học dựa trên thuật tốn học FnTBL phải cĩ khả năng mở rộng trong việc rút trích tri thức từ

ngữ liệu. Khả năng mở rộng của chương trình máy học rút trích tri thức từ ngữ liệu

được thể hiện ở việc nĩ cĩ khả năng cho phép bổ sung thêm ngữ liệu và tự động huấn luyện để cập nhật các luật đã được rút ra và bổ sung thêm các luật mới mà khơng cần huấn luyện lại từđầu.

Về lý thuyết, thuật tốn học FnTBL cho phép chúng ta mở rộng khơng gian mẫu huấn luyện đến vơ tận. Khơng gian mẫu càng nhiều và càng bao quát thì thuật tốn sẽ rút trích được các tri thức càng đầy đủ và tối ưu mà khơng gặp phải tình trạng bùng nổ số luật rút ra được cũng như hiện tượng quá luyện. Tuy nhiên cái giá phải trả cho việc tăng kích thước tập mẫu là thời gian học và khơng gian lưu trữ tập mẫu trong khi huấn luyện sẽ ngày càng tăng lên rất lớn. Hai hạn chế này là rào cản cho việc nâng cao chất lượng tập luật bằng cách bổ sung ngữ liệu học, thậm chí cho

đến một lúc nào đĩ việc bổ sung thêm ngữ liệu huấn luyện sẽ là khơng khả thi. Trong mơ hình của chúng em, chúng em đã thiết kế bộ học để nĩ cĩ khả năng cập nhật các luật đã được rút ra và bổ sung các luật mới mà khơng cần phải huấn luyện lại trên ngữ liệu đã được học trước đĩ. Chúng em phân tích vấn đề và nhận xét rằng trong quá trình học rút luật của lần học trước, các luật ứng viên của ngữ

liệu học lúc đĩ đã được rút ra đầy đủ với điểm số cụ thể của từng luật (bao gồm cả điểm tốt good(r) và điểm xấu bad(r)), tập luật ứng viên này thể hiện tất cả các luật cĩ thể cĩ từ ngữ liệu học trước kể cả các luật với điểm âm (sẽ khơng được chọn).

Để cĩ thể tiếp tục rút luật từ ngữ liệu huấn luyện mới dựa trên bộ luật đã được rút ra trước đĩ, yêu cầu cần cĩ thơng tin vềđiểm tốt cũng nhưđiểm xấu của các luật ứng viên sau lần học trước. Sau đĩ các điểm số này sẽđược cập nhật (tăng hoặc giảm) dựa trên ngữ liệu huấn luyện mới. Điểm của các luật trong bước học mới sẽ được tính như sau:

score(r) = good(r)t – bad(r)t; Trong đĩ:

good(r)c : điểm tốt của luật r sau khi kết thúc lần học trước

good(r)m : điểm tốt của luật r khi rút luật ứng viên từ ngữ liệu mới

good(r)t : tổng điểm tốt của luật r, là điểm tốt của luật r để xét luật tối ưu trong lần học sau với ngữ liệu học mới.

bad(r)c : điểm xấu của luật r sau khi kết thúc lần học trước

bad(r)m : điểm xấu của luật r khi rút luật ứng viên từ ngữ liệu mới

bad(r)t : tổng điểm tốt của luật r, là điểm tốt của luật r để xét luật tối ưu trong lần học sau với ngữ liệu học mới.

score(r) : điểm của luật r trong lần học sau.

Lưu ý đối với các luật tối ưu đã được rút ra thành tập luật, điểm của các luật này sau khi kết thúc quá trình học sẽ khơng phải là điểm thật sự của chúng bởi vì sau khi rút được luật tối ưu thì điểm số của nĩ đã được cập nhật lại. Chính vì vậy cần phải lưu lại điểm cho các luật này ngay khi chúng được chọn làm luật tối ưu.

Bộ luật mới sẽ được sắp xếp lại trật tự của các luật và cĩ thể xuất hiện thêm các luật mới cũng như cĩ một số luật cũ sẽ khơng cĩ mặt trong tập luật mới. Tập luật mới sẽđầy đủ và tối ưu hơn tập luật cũ và đây chính là kết quả của việc nâng cao chất lượng tập luật bằng kỹ thuật nâng cao khả năng mở rộng của bộ luật mà chúng em đã thiết kế trong bộ học rút trích tri thức chuyển đổi cấu trúc từ ngữ liệu trong luận văn của chúng em. Kỹ thuật này cho phép chương trình chuyển đổi cĩ thể tiếp nhận thêm ngữ liệu học mới trong tương lai và phá bỏđược rào cản về mặt thời gian cũng như khơng gian lưu trữ.

C

Chhưươơnngg 44

CÀI ĐẶT CHƯƠNG TRÌNH

Để hiện thực hố mơ hình đã đưa ra trong chương 3, chúng em sử dụng ngơn ngữ lập trình C++ và cài đặt chương trình chuyển đổi cây cú pháp trên mơi trường lập trình Visual C++ 6.0. Vì chương trình là một khối trong hệ dịch tự động nên bước thiết kế khối chuyển đổi cây cú pháp là cũng một giai đoạn khá quan trọng. Trong phần này, chúng em trình bày thiết kế cho chương trình và một số cài đặt chi tiết chủ yếu.

4.1 Thiết kế

4.1.1 Mơ hình tng th

Hình 25 trình bày mơ hình tổng thể của quá trình học rút các luật chuyển đổi cho khối chuyển đổi cây cú pháp.

Hình 25: Mơ hình tổng thể của quá trình học luật chuyển đổi Anh-Việt

G G11 B B W W WW11 L L1 1 WW22 G G22 LL2 2 R R11 R R22 G G LL33 RR33 T T11 T T22

Các khối trong mơ hình:

™ G: Ngữ liệu song ngữ Anh - Việt đã được đánh nhãn liên kết từ. Tuy nhiên do thực tế quá trình học cĩ giám sát chỉ yêu cầu phần tiếng Anh đã

được chuyển đổi nên phần tiếng Việt cĩ thể được bỏ qua sau khi nhúng thơng tin về trật tự các thành phần của câu tiếng Việt vào câu tiếng Anh. ™ G1: Ngữ liệu vàng sử dụng cho việc học luật chuyển đổi giai đoạn 1. ™ G2: Ngữ liệu vàng sử dụng cho việc học luật chuyển đổi giai đoạn 2. ™ W: Ngữ liệu đơn ngữ tiếng Anh sạch (ngữ liệu trắng) tương ứng với

phần ngữ liệu tiếng Anh trong G.

™ B: Bộ gán nhãn cơ sở cho W, sử dụng quan hệ ngữ nghĩa của các thành phần trong câu. (adsbygoogle = window.adsbygoogle || []).push({});

™ W1: Ngữđơn ngữ tiếng Anh đã qua gán nhãn cơ sở, cĩ định dạng giống với định dạng của G1.

™ L1: Bộ học rút luật chuyển đổi cho giai đoạn 1 - chuyển đổi cùng cấp, sử

dụng FnTBL.

™ T1: Các khung luật dùng cho giai đoạn 1 ™ R1: Bộ luật chuyển đổi cùng cấp.

™ W2: Ngữ liệu đơn ngữ tiếng Anh đã qua áp dụng các luật chuyển đổi cùng cấp R1, cĩ định dạng giống với định dạng của G2.

™ L2: Bộ học rút luật chuyển đổi cho giai đoạn 2 - chuyển đổi khác cấp, sử

dụng FnTBL.

™ T2: Các khung luật dùng cho giai đoạn 2 ™ R2: Bộ luật chuyển đổi khác cấp.

™ L3: Bộ phân loại và rút luật chèn – xố.

4.2 Thut tốn gán nhãn cơ s cho ng liu

Với ý nghĩa ngữ liệu sau khi gán nhãn cơ sở sẽ là đầu vào tiếp theo cho quá trình học rút luật, việc chuyển đổi cơ sở sẽ đĩng một vai trị quan trọng trong tồn bộ quá trình học rút luật (cũng như quá trình chuyển đổi cây cú pháp) và cĩ ảnh hưởng mạnh đến thời gian cũng như chất lượng chuyển đổi. Chính vì vậy trong bước này chúng em chọn cách tiếp cận dựa trên việc xác định các mối quan hệ giữa các thành phần trong các ngữđể tiến hành chuyển đổi dựa trên các nguyên tắc được ràng buộc bởi ngữ pháp tiếng Việt. Cĩ thể xem đây như một biến thể của hướng tiếp cận chuyển đổi cấu trúc dựa trên các cấu trúc vị từ - đối số (vì ở đây các nguyên tắc

được áp dụng cho các thành phần trong ngữ).

4.2.1 Thut tốn

Bước 1: Xây dựng cây cú pháp (ST) Bước 2: Xây dựng cây quan hệ (RT)

Bước 3: Xác định ngữ (Ph) trên cây cú pháp

Nếu tất cả các ngữđã được duyệt qua thì sang bước 8 Ngược lại, sang bước 4

Bước 4: Ánh xPh lên RT

Bước 5: Xác định các quan hệ giữa các thành phần trong Ph. Lưu ý các trường hợp ngoại lệ.

Bước 6: Sử dụng các nguyên tắc trong ngơn ngữ học tiếng Việt để tiến hành chuyển

đổi các thành phần trong Ph.

Bước 7: Trở lại bước 3

Bước 8: Kết thúc quá trình gán nhãn cơ sở

4.2.2 Xây dng cây cú pháp

Trong mơ hình chuyển đổi cây cú pháp Anh-Việt của luận văn này, chúng em sử dụng bộ phân tích cú pháp EGT (English Grammar Tagger). Câu tiếng Anh sau

cách sử dụng các dấu ngoặc để phân cấp cú pháp. Giả sử chúng ta cĩ câu tiếng Anh như sau:

(E) Last week, I saw a very interesting film.

Kết quả phân tích cú pháp như sau: (S1 (S (NP (JJ Last) (NN week))

(, ,)

(NP (PRP I)) (VP (VBD saw)

(NP (DT a) (ADJP (RB very) (JJ interesting)) (NN film))) (. .)))1 (adsbygoogle = window.adsbygoogle || []).push({});

Để cĩ thể xử lý được kết quả đầu ra của EGP chúng ta cần xây dựng bộ

chuyển kết quả dưới dạng ngoặc thành cây cú pháp. Cây đa phân được sử dụng để

biểu diễn cấu trúc cây cú pháp. Từ kết quả trên ta cĩ cây cú pháp như sau:

Hình 26: Kết quả sau khi phân tích cú pháp câu “Last week, I saw a very interesting film.”

S S11 N NPP , , N NPP VVPP J JJJ NNNN PPRRPP VVBBDD NNPP D DTT AADDJJPP NNNN R RBB JJJJ film saw I a interesting very week . . S S Last , .

Mỗi nút trên cây được lưu trữ bằng một cấu trúc dữ liệu bao gồm một cấu trúc chính lưu trữ các thơng tin về từ, từ loại và định danh tuyệt đối của nút, cấu trúc phụ

lưu trữ các thơng tin cần trong quá trình xử lý nhưđịnh danh tương đối, tình trạng của nút (đã được duyệt hay chưa), …

typedef struct tagLOGNQNODE

{

int s_iAbID; // ID tuyệt đối của nút

string s_sString; // Nếu là thành tố kết thúc thì là từ,

// nếu là thành tố khơng kết thúc thì là cụm từ

string s_sSynlable; // Từ loại (cĩ thể là terminal hoặc là non-terminal)

bool s_bTerminal; // Terminal = true

// Non-terminal (mặc định) = false } LOGNQNODE;

typedef struct tagLOGSUBNQNODE

{

string s_sReID; // ID tương đối của nút

bool s_bHasALook; // Chưa được duyệt = false,

// đã được duyệt qua = true

string s_sOldSynlable; // Từ loại trước của nút (dùng để lưu trữ từ // loại của từ trong quá trình xử lý

} LOGSUBNQNODE;

Lớp cây mơ tảđối tượng cây cú pháp pháp được thể hiện như sau:

class CNQTree { // Constructor - Destructor public: CNQTree(); virtual ~CNQTree(); // Attributes protected: CNQNode* m_pRoot; // Methods public:

bool Create(string sSample); // Tạo cây cú pháp

void Traverse(UInt uDir,UInt uMode,VoidFuncPtr fnPro); // Duyệt cây

CNQNode* GetRoot() { return m_pRoot; } // Lấy nút gốc

CNQNode* FindNode(int uAbID,UInt& uAt); // Tìm nút theo ID tuyệt đối CNQTree* Copy(); // Copy cây

}; // CNQTree

Lớp nút mơ tả các đối tượng nút cĩ thể hiện như sau: (adsbygoogle = window.adsbygoogle || []).push({});

typedef vector<CNQNode*> CNQNodePtrArray; typedef void (*VoidFuncPtr)(CNQNode* pNode);

class CNQNode { // Constructor - Destructor public: CNQNode(); virtual ~CNQNode(); // Attributes protected: LOGNQNODE* m_pData; LOGSUBNQNODE* m_pSubData; CNQNodePtrArray m_paChildren; CNQNode* m_pParents; // Methods public:

bool Create(string sSample); // Tạo câycú pháp

LOGNQNODE* Data() { return m_pData; }

LOGSUBNQNODE* SubData() { return m_pSubData; }

void EraseChild(UInt uAt); // Xố nút con

void InsertChild(CNQNode* pNode,UInt uAt); // Thêm một nút vào cây

void Traverse(UInt uDir,UInt uMode,VoidFuncPtr fnPro); // Duyệt cây

bool Copy(CNQNode* pNode); // Copy nút ………

};

4.2.2.1 Thut tốn to cây cú pháp t dng biu din du ngoc

bool CNQTree::Create(string sSample)

{

return m_pRoot->Create(sSample);

} // Create

bool CNQNode::Create(string sSample)

{

// Xác định dấu ngoặc tương ứng bên phải (kí tự đầu tiên là ngoặc trái)

UInt uCorBar=FindCorrespondingBracket(sSample,0);

// Phân tích thành phần được bao trong hai dấu ngoặc AnalyzeComp(sbSample);

If (sSubSample non-terminal) {

// Đưa các thơng tin đã phân tích vào nút

…………

// Khởi tạo một nút mới và gọi đệ quy hàm tạo cây CNQNode* pNode = new CNQNode;

pNodeCreate(sSubSample);

}

else // ngược lại {

// Đưa các thơng tin đã phân tích vào nút

………… }

} (adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu 9912621_9912652 (Trang 95 - 103)