Tên thuộc tính / phương thức Kiểu thuộc tính / Giá trị trả về của phương thức. Mô tả
finalResultSentence string Câu dịch cuối cùng..
matchingState string Trạng thái so khớp đầy đủ của câu ngữ liệu tương tự nhất vừa tìm được ở bước trên.
subtitutedSentence string Câu đầu vào.
senAlign SentenceAlign Liên kết Anh-Việt ứng với ngữ liệu tương tự nhất.
thu_tu_sau_chuyen_doi ( Parse parent)
ArrayList Thay đổi trật tự các từ trong một cụm từ Tiếng Anh khi nó được dịch sang Tiếng Việt, dựa vào các luật chuyển đổi mức cụm từ.
getFinalResult( WordTr
anslator trans) string Lấy về câu dịch cuối cùng (đây là phương thức chính được cài đặt cho lớp).
Bảng 4. 16: Cài đặt lớp Subtitutor.
Trong lớp này, tất cả các phương thức phụ đều được xây dựng nhằm phục vụ
cho phương thức chính, đó là: getFinalResult(WordTranslator trans). Về mặt cơ
sở lý thuyết cho phương thức, chúng ta đã bàn đến ở chương trước.Ở đây, tác giả
xin đề cập đến thực tế triển khai nó trong hệ thống như thế nào? Chúng ta cùng
xem xét:
Tên phương thức: string getFinalResult(WordTranslator trans) 89
Input:
Trạng thái so khớp đầy đủ ứng với câu ngữ liệu tương tự nhất mà quá trình so khớp vừa mang lại.
Liên kết Anh-Việt của nó.
Output: Câu dịch Tiếng Việt cần tìm.
Bước 1: Tạo cờ insertFlag để kiểm tra xem trong trạng thái so khớp có Insertion vào không? Nếu có, lấy về danh sách các từ đó và chuyển đến bước 2. Ngược lại, chuyển đến bước 3.
Bước 2: Với mỗi Insertion, tiến hành :
o Thông qua từ loại của nó và bộ dịch từ trans (Anh-Việt, tham số hình thức
của phương thức), lấy được nghĩa Tiếng Việt tương ứng.
o Đặt liên kết cho nó, trong đó vị trí liên kết = vị trí kiên kết lớn nhất hiện thời
trong senAlign+1. Sau đó, thêm liên kết này vào Alignment của senAlign,
sao cho chỉ số của mỗi từ trong Alignment mới sẽ bằng với vị trí của các bản
ghi tương ứng với nó trong matchingState
Sau khi đã hoàn thành xong cho tất cả Insertion, xoá tất cả các Deletion (trong cả matchingState và Alignment).Dựng cây cú pháp cho câu còn lại (là tổ hợp của các từ E,I,S).Tiếp tục xử lý lần lượt cho từng từ I như sau :
o Xác định ngữ (hoặc cụm từ) mà nó là một thành viên trong đó, bằng cách:
Lấy về cha của nó=> ngữ chính là tập hợp các từ con của cha đó.
o Từ cấu trúc ngữ pháp của ngữ, kết hợp với từ điển luật chuyển đổi
tudienluat xác định được vị trí của các từ Tiếng Việt của nó trong ngữ khi dịch sang Tiếng Việt.
Kết quả là tất cả các từ Tiếng Việt đã được đặt đúng vị trí mà chúng cần phải xuất hiện trong câu Tiếng Việt cuối cùng. Phần xử lý còn lại thực hiện giống như bước 3.
Bước 3 : Mảng result (chứa các từ trong câu dịch) được khởi tạo rỗng và các thành phần của nó được thêm dần vào thông qua việc xét từng phần tử của
senAlign.Alignment như sau :
o Nếu Alignment[i] là liên kết của một từ loại E hoặc I => result[chỉ số liên
kết của Alignment[i]] = từ Tiếng Việt liên kết với nó trong Alignment[i]
Nếu Alignment[i] là liên kết của một từ loại S => result[chỉ số liên kết của
Alignment[i]] = từ Tiếng Việt liên kết với từ thay thế nó trong Alignment[i].
Bảng 4. 17: Cài đặt phương thức getFinalResult(WordTranslator trans).
Chương 5: Thử nghiệm và đánh giá kết quả