Giải thuật canh lề văn bản theo chiều dài câu [16]:

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 47 - 50)

Giải thuật lợi dụng đặc điểm những câu dài trong một ngôn ngữ thường có xu hướng được dịch thành những câu dài trong một ngôn ngữ khác và một câu ngắn cũng được dịch thành những câu ngắn trong một ngôn ngữ khác. Thống kê xác suất đã tiến hành kiểm chứng độ dài những cặp câu tương ứng với nhau, dựa trên tỷ lệ về độ dài của những câu này. Thống kê này được dùng trong khung lập trình động nhằm tìm ra mức độ giống nhau nhất về độ dài giữa những câu tương ứng. Đồ thị tương quan độ dài giữa tiếng Anh và tiếng Đức chứng minh cho điều đó.

Hình 4-7 Đồ thị tương quan chiều dài giữa tiếng Anh và tiếng Đức

3.1 Khung lập trình động (A Dynamic Programming Framework):

Lập trình động thường được sử dụng cho việc canh lề hai chuỗi ký hiệu ở những định dạng khác nhau, ví dụ như cách sắp xếp các gene ở các loài khác nhau, sự so trùng các chuỗi tín hiệu âm thanh khác nhau của những người nói khác nhau,

quang phổ của các chất khác nhau, và thành phần địa chất của các nơi khác nhau (Sankoff và Kruskal, 1983). Chúng ta mong rằng những kỹ thuật này có thể hữu dụng, khi thứ tự sắp xếp các câu không khác nhau nhiều trong những ngôn ngữ khác nhau. Kỹ thuật sắp xếp chi tiết có thể khác nhau trong các ứng dụng, nhưng tất cả đều sử dụng tính toán khoảng cách để so sánh hai thành trong hai chuỗi, và một thuật toán lập trình động để tối thiểu khoảng cách giữa các thành phần tương ứng trong hai chuỗi. Chúng ta thấy rằng bài toán canh lề câu rất phù hợp để áp dụng, mặc dù cần có một số điều chỉnh trong công thức tính khoảng cách.

Kruskal và Liberman (1983) mô tả tính khoảng cách thuộc vào hai loại: “trace” và “time-warp”. Sự khác biệt quan trọng giữa chúng khi một thành phần trong chuỗi này được tìm thấy tương ứng với nhiều thành phần trong một chuỗi khác. Những ứng dụng thuộc loại “trace” (trace application) ví dụ như trong tìm kiếm mã gene, một thành phần trong chuỗi này chỉ được nối tương ứng với duy nhất một trong các thành phần được tìm thấy, tất cả những thành phần còn lại sẽ bỏ qua. Ngược lại, trong những ứng dụng thuộc loại “time-warp” (time warp application), ví dụ như nhận dạng các mẫu tiếng nói, một mẫu sẽ được so trùng với tất cả các thành phần tồn tại trong chuỗi. Thật thú vị là ứng dụng của chúng ta không nằm trong bất cứ loại nào kể trên vì chúng ta tính khoảng cách để so sánh một thành phần với một tổ hợp các thành phần khác.

Rất thuận tiện để tính khoảng cách dựa trên một mô hình thống kê xác suất, để từ đó các câu được canh lề một cách thống nhất. Gọi match là một phép canh lề. Khoảng cách được tính bằng –log(Prob(match|δ)), với δ phụ thuộc vào l1 và l2, lần lượt là độ dài của hai đoạn trong văn bản canh lề. Log được sử dụng ở đây để khi cộng những khoảng cách sẽ tạo ra những kết quả kỳ vọng.

Tính khoảng cách dựa trên giả thuyết rằng mỗi từ trong ngôn ngữ L1, được đối sánh với một số lượng từ bất kỳ trong một ngôn ngữ L2. Giả thuyết rằng những biến ngẫu nhiên này là độc lập và phân bố đều với một phân phối chuẩn (normal distribution). Mô hình này có giá trị trung bình c, phương sai s2. Cụ thể ở đây giá trị trung bình c là tỷ lệ trung bình một từ tiếng Anh được dịch thành c từ tiếng Việt.

Chúng ta định nghĩa δ bằng 2 1 2 1 l c/ ls

l − . Do đó nó có một phân phối chuẩn với trung bình là 0 và phương sai bằng 1. Điều này có nghĩa là phép canh lề chính xác nhất phải có δ gần bằng 0. Mục đích của việc dùng –log trong tính khoảng cách của phép canh lề bằng –log(Prob(match | δ)) là: nếu xác suất của phép canh lề càng lớn thì khoảng cách của phép canh lề càng nhỏ. Mục đích của ta là đi tìm các phép canh lề sau cho tổng các khoảng cách của chúng nhỏ nhất hay tích xác suất của chúng đạt giá trị lớn nhất. Bài toán này tương tự như việc tìm tổng chi phí nhỏ nhất trong lập trình động. Theo công thức Bayes ta có:

Prob(match | δ) = Prob(δ | match).Prob(match)/Prob(δ).

Tuy nhiên với hai câu cho trước thì chiều dài của chúng là cố định nên Prob(δ) là hằng số nên ta có thể bỏ qua. Vì vậy ta chỉ cần phải tính Prob(δ | match) và Prob(match), trong đó Prob(δ | match) được tính gần đúng theo công thức sau:

Prob(δ | match) =2(1-Prob(|δ|))

Với Prob(|δ|) là xác suất biến ngẫu nhiên z, có phân bố chuẩn (trung bình = 0 và độ lệch=1) ∫ ∞ − − = δ π δ e dz ob z2/2 2 1 ) ( Pr

Như vậy các tham số mà ta cần tính là c và s2. Giá trị trung bình c được tính bằng cách thông kê số từ trong các văn bản song ngữ. Bình phương độ lệch s2 được tính bằng cách thống kê loại canh lề và tần suất xuất hiện của nó. Các tính toán này sẽ được trình bày trong phần hiện thực ở chương sau. Các loại phép canh lề bao gồm: phép canh lề một-một (1-1), một-không (1-0), không-một (0-1), hai-một (2-1), một- hai (1-2) và hai-hai (2-2). Các phép canh lề khác, như phép canh lề ba-một (3-1) và một-ba (1-3) cũng có xuất hiện nhưng tần suất rất thấp. Do đó, hầu như tất cả các nghiên cứu đều bỏ qua phép canh lề này.

Hàm tính khoảng cách d(x1,x2,y1,y2), được định nghĩa một cách tổng quát để thêm, xóa và thay thế… Hàm bao gồm những biến số: x1, x2, y3, y4.

1. d(x1, y1 ; 0, 0) là chi phí thay thế x1 bằng y1. 2. d(x1, 0; 0, 0) là chi phí của xóa x1.

3. d(0, y1; 0, 0) là chi phí thêm y1.

4. d(x1, y1; x2, 0) là chi phí thu giảm x1 và x2 bằng y1. 5. d(x1, y1; 0, y2) là chi phí khai triển x1 thành y1 và y2

6. d(x1, y1; x2, y2) là chi phí kết hợp x1 và x2 sau đó đối sánh với y1 và y2.

3.2 Thuật toán lập trình động (A Dynamic Programming Algorithm):

Thuật toán này là kết quả của phương trình đệ quy. Cho s1, i = 1….I. là câu của ngôn ngữ L1, tj, j= 1…J , là những bản dịch ở ngôn ngữ L2. Với d là hàm khoảng cách được mô tả ở trên. Với D (i;j) là khoảng cách nhỏ nhất giữa s1…si và bản dịch t1 … tj, trong một phép canh lề tốt nhất. D(i;j) được tính bằng cách chọn giá trị nhỏ nhất của 6 trường hợp (thay thế, xóa, thêm, thu giảm, mở rộng, kết hợp). Nghĩa là, D(i;j) được định nghĩa bằng đệ quy với điều kiện ban đầu D(i;j) = 0.

4 Phương pháp canh lề sử dụng dãy giới hạn (Confidence Bands Algorithm - CBA) [8]:

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 47 - 50)

Tải bản đầy đủ (DOC)

(103 trang)
w