Canh lề từ:

Một phần của tài liệu CANH LỀ VĂN BẢN SONG NGỮ VÀ ỨNG DỤNG GIẢI QUYẾT NHỮNG TRƯỜNG HỢP ĐẶC THÙ CỦA NGÔN NGỮ ANH - VIỆT doc (Trang 79 - 81)

Trong bước này, giải thuật LSSA được sử dụng để tạo được phép canh lề mịn hơn phép canh lề câu. Kết quả chúng ta sẽ được các điểm canh lề (các điểm mốc) sao cho số điểm được canh lề là nhiều nhất. Giải thuật cũng phát hiện một số các cụm từ canh lề chéo trong câu

Hiện thực giải thuật canh lề từ:

Đầu vào: Danh sách các điểm tương ứng trong block có được sau bước tạo điểm dùng vị từ so trùng.

Đầu ra: Các điểm canh lề trong block

Phương pháp:

(1)sử dụng LSSA để chọn điểm tương ứng thực sự, (2)duyệt lại lần 2 để tìm tra những cụm từ canh lề chéo, (3)lưu kết quả vào Cơ sở dữ liệu.

Lớp hiện thực: LSSA.

LSSA đã được giới thiệu trong mục 4.5, 4.6 phần phân tích giải thuật. Mã giả của giải thuật như sau:

ArrayList pos_l1; //mảng chứa vị trí các từ trong ngôn ngữ l1 ArrayList pos_l2; //mảng chứa vị trí các từ trong ngôn ngữ l2

ArrayList weight_l2; //mảng chứa trọng số của các cặp từ trong ngôn ngữ l2 ArrayList result_l2; //mảng kết quả: vị trí các từ trong ngôn ngữ l2

Int max=0; //vị trí có trọng số lớn nhất //LSSA

Sắp xếp pos_l1 theo thứ tự tăng dần;

Sắp xếp pos_l2 theo vi trí tương ứng trong pos_l1; For all w[i] in weight_l2

w[i]=1; End For

For all p[i] in pos_l2 For j=i-1,j>=0,j++

If p[i]>p[j] and w[i]<=w[j] Then w[i]=w[j]+1;

If w[max]<w[i] Then max=i; End If End For End For Int w_cur=w[max] //Chọn điểm For i=max-1;i>=0;i++ If w[i]=w[i-1] Then Insert(result_l2,p[i]); w_cur=w[i]; End If End For Return result_l2;

Kết quả của giải thuật là quyết định chọn những điểm canh lề dự tuyển nào sẽ trở thành những điểm canh lề thực sự trong câu. Để phát hiện những cụm từ canh lề chéo trong câu, giải thuật phải duyệt lại một lần nữa những điểm bị từ chối trong lần duyệt đầu.

Một phần của tài liệu CANH LỀ VĂN BẢN SONG NGỮ VÀ ỨNG DỤNG GIẢI QUYẾT NHỮNG TRƯỜNG HỢP ĐẶC THÙ CỦA NGÔN NGỮ ANH - VIỆT doc (Trang 79 - 81)