Khối “Example Retrieval” (Tìm kiếm ngữ liệu tương tự)

Một phần của tài liệu Đồ án tốt nghiệp Xây dựng thử nghiệm hệ dịch tự động Anh - Việt theo hướng tiếp cận So khớp tập mẫu (Trang 40)

Sau khi kết thúc giai đoạn “Pre-processing”, lúc này mỗi câu trong đoạn văn bản đã được tách từ, đồng thời được gán nhãn từ loại và biểu diễn dưới dạng một chuỗi các từ. Mỗi câu này sẽ là đầu vào của khối xử lý tiếp theo, khối lọc ra những câu tương tự nhất với nó mà tập mẫu có được. Có thể nói đây là khối xử lý phức tạp nhất, tốn nhiều thời gian nhất và chất lượng của nó ảnh hưởng đến hiệu suất dịch của toàn bộ hệ thống.

3.1.4.1. Ý tưởng

Duyệt từng câu trong tập mẫu, sau đó sử dụng giải thuật tính khoảng cách (hoặc độ tương tự) giữa nó với câu đầu vào, để tìm ra những câu có độ khoảng cách nhỏ nhất (hay độ tương tự lớn nhất). Để có thể lấy ra được những câu có thể tin cậy được, cần phải đưa ra một giá trị ngưỡng. Nếu giá trị khoảng cách nhỏ nhất có thể được vượt quá giá trị ngưỡng thì thuật toán sẽ kết thúc mà không có một câu nào được chọn.

Kho ngữ liệu X X X X X Dist (input,example) <= (=1/3) INPUT:

We close the door

EXAMPLE:

We will close the shop I open the door We open the shop…

Hình 3. 4 Minh hoạ khối Tìm kiếm ngữ liệu tuơng tự.

3.1.4.2. Tính khoảng cách giữa hai câu dựa vào giải thuật DP- Matching

Khái niệm: Khoảng cách ngữ nghĩa (edit-distance) giữa hai câu s1 và s2 (được biểu diễn bằng các word-sequence) được định nghĩa bằng thương số giữa chi phí biến đổi

tối thiểu để thu được s2 từ s1 và tổng số từ trong hai câu đó:

d(s1,s2) = ( ) 2 1 2 1, s s L L s s C + (3.2)

Trong đó: C(s1, s2) là ký hiệu chi phí cực tiểu để thu được s2 từ s1, Ls1 và Ls2 lần lượt

là tổng số từ (hay còn được gọi là “độ dài”) của s1 và s2

Cách xác định C(s1,s2) :

Quá trình biến đổi s1 để thu được s2 thực chất là tổ hợp của các thao tác:

 Thêm từ vào s2.

 Xoá từ trong s2.

 Thay thế một từ trong s2 bằng một từ trong s1.

Chúng ta định nghĩa:

C(“ ”, “ ”) = 0. (1) C(s, “ ”) = C(“ ”, s) = |s| (|s| là độ dài hay là tổng số từ trong s). (2) C(s1+w1, s2+w2) = (3) min ( C(s1,s2) + 2.SEMDIST(w1,w2) ,

C(s1+w1,s2) + 1,C(s1,s2+w2) + 1)

Dễ thấy (1) và (2) là hiển nhiên. Đối với (3), đó là công thức đệ quy giúp xác định

được C(s1,s2) từ các giá trị khởi tạo trong (1) hoặc (2). Trong đó, w1 và w2 là các từ

riêng biệt. Để biến đổi từ (s1+w1) sang (s2+w2) có thể áp dụng 3 khả năng sau:

i) Thay thế (Biến đổi) w1 thành w2 ,chi phí tổng thể là: C(s1,s2) + 2.SEMDIST(w1,w2)

ii) Biến đổi (s1+w1) thành s2, sau đó thêm w2 vào s2. Chi phí tổng thể là:

C(s1+w1,s2) + 1

iii) Xoá từ, sau đó biến đổi thành .Chi phí tổng thể là C(s1,s2+w2) + 1

Vì vậy, chi phí cực tiểu sẽ được xác định bằng giá trị nhỏ nhất trong 3 chi phí trên.

3.1.4.3. Giải thuật DP-matching: (adsbygoogle = window.adsbygoogle || []).push({});

Trong giải thuật này, chúng ta sử dụng 1 mảng 2 chiều m[0..|s1|, 0..|s2|] để lưu giá trị

chi phí C nói trên. Như vậy:

m[i,j] = C(s1[1..i], s2[1..j] ). m[0,0] = 0

m[i,0] = i, i=1..|s1| m[0,j] = j, j=1..|s2|

m[i,j] = min(m[i-1,j-1] + 2.SEMDIST(s1[i],s2[j]), m[i-1, j] + 1,

m[i, j-1] + 1 ), i=1..|s1|, j=1..|s2|

1) Khởi tạo m[0,0] := 0;

2) for i:= 1 to |s1| do m[i,0] := i ; 3) for j:= 1 to |s2| do m[0,j] := j ; 4) for i:= 1 to |s1| do

for j:= 1 to |s2| do

m[i,j] = min(m[i-1,j-1] + 2.SEMDIST(s1[i],s2[j]),

m[i-1, j] + 1, m[i, j-1] + 1 ) ; 5) d := m[i,j] / (l1 + l2) ;

*Đánh giá độ phức tạp của thuật giải:

Độ phức tạp của thuật toán, về mặt thời gian là O(|s1|*|s2|) , chẳng hạn O(n2) nếu cả

hai câu đều có độ dài n. Về mặt không gian, độ phức tạp vẫn là O(n2) nếu là mảng 2

chiều.

Một phần của tài liệu Đồ án tốt nghiệp Xây dựng thử nghiệm hệ dịch tự động Anh - Việt theo hướng tiếp cận So khớp tập mẫu (Trang 40)