Các giải thuật xử lý khoảng trống từ vựng trong mơ hình dịch ngữ bắt đầu bằng việc xác định một từ là khoảng trống từ vựng.
Giải thuật bổ trợ 6.1 mơ tả các bước xác nhận một khoảng trống từ vựng. Giải thuật này được sử dụng trước khi tìm mẫu cụm từ tương đương của khoảng trống từ vựng. Mục đích của giải thuật này là xác định cụm từ tiếng Việt trong từ điển Anh - Việt cĩ phải là cụm từ gồm nhiều thành phần độc lập khơng (bài tốn 2A).
103 Giải thuật 6.1: Xác định khoảng trống từ vựng Nhập: Từ tiếng Anh X. Xuất: Trả lại Y là 1 nếu A là khoảng trống từ vựng, ngược lại trả lại 0. Phương pháp:
% Giải thuật sử dụng ngơn ngữđặc tả Prolog
% Function is_lex_gap (X, Y) %X rỗng thì Y=0 1. is_lex_gap([],Y):- Y is 0. %X là thành phần đơn tố, Y=0 2. is_lex_gap(X,Y):-atom(X), Y is 0. %Phần tiếng Việt là thành phần đơn tố, Y=0 3. is_lex_gap(X,Y):-X=[_|VIE], atom(VIE), Y is 0,!. %Phần tiếng Việt cĩ POS là thành phần đơn tố, Y=0
4. is_lex_gap(X,Y):-X=[_|VIE], VIE=[..|POS], atom(POS), Y is 0,!. %X là khoảng trống từ vựng, Y=1. 5. is_lex_gap(X,Y):-X=[_|VIE], VIE=[_|POS], member(POS , [vp,np,adp]) , Y is 1,!.
Dịng 1 của giải thuật 6.1 trả lại 0 nếu từ X khơng cĩ trong từ điển. Dịng 2 tìm thấy X trong từ điển nhưng khơng cĩ phần tiếng Việt (phần tiếng Việt rỗng). Trường hợp này xảy ra khi từ tiếng Anh được tham chiếu đến một từ tiếng Anh khác. Do khơng xác định được từ tham chiếu này cĩ phải là khoảng trống từ vựng khơng, hàm trả về giá trị 0. Trong quá trình xây dựng từđiển song ngữ các từ tham chiếu đến từ khác sẽ sử dụng phần tiếng Việt của từđược tham chiếu. Dịng số 3 tiếp tục trả lại 0 nếu phần tiếng Việt chỉ là một từ, khơng liên quan tới cấu trúc
104
phức. Dịng 4 thực thi khi cấu trúc gặp một cụm từ tiếng Việt nhưng cụm từ này cĩ kiểu từ loại khơng được xác nhận là các nhãn cụm từ (chẳng hạn thành ngữ). Dịng 5 trả lại 1 khi hội tụđủ các điều kiện cụm từ tiếng Việt VIE cĩ kiểu là cụm từ thơng dụng (chẳng hạn cụm từ vp, np, adp).
Thực hiện giải thuật 6.1 trong việc xác định 12.304 từ tiếng Anh, cĩ 2.980 từ
khơng cĩ trong từ điển Anh –Việt. Trong 7.455 từ cịn lại cĩ 1109 được giải thuật 6.1 coi là khoảng trống từ vựng. Trong số này chỉ cĩ 933 từ là khoảng trống từ vựng thật sự, 176 trường hợp khác là do chọn nghĩa từ khơng tốt do nhập nhằng ngữ
nghĩa hoặc xác định khoảng trống từ vựng khơng tốt, chẳng hạn từ “truck” - “xe ba gác” cĩ thể bị xác định là một khoảng trống từ vựng do cả ba âm tiết “xe”, “ba” và “gác” đều cĩ mặt trong từ điển tiếng Việt. Các trường hợp xác định khơng chính xác khoảng trống từ vựng cĩ thểảnh hưởng tới độ chính xác của dịch máy.
Độ chính xác của giải thuật 6.1 là 933/1109 = 84,1%.
Tỷ lệ khoảng trống từ vựng giữa tiếng Anh và tiếng Việt là 12,5% cao hơn kết quả tương ứng giữa tiếng Anh –Ý là 7,8% (4,738 khoảng trống từ vựng trong 60,901 từ, [48]).
Độ chính xác trên phụ thuộc nhiều vào từ điển tiếng Việt, do sử dụng phép tìm kiếm các thành phần của cụm từ dựa trên từđiển này.
Trong mơ hình dịch ngữ cĩ hai hoạt động quan trọng là tìm mẫu cụm từ
trong từ điển và chỉnh sửa cấu trúc cụm từ (xem hình 6.7 và 6.8). Xác định mẫu cụm từ được tiến hành với sự trợ giúp của từ điển song ngữ Anh – Việt được trình bày trong chương 5. Sau khi mẫu cụm từ được xác định, giải thuật chỉnh sửa cấu trúc 6.2 được thực hiện để xử lý khoảng trống từ vựng. Khi thực hiện thay thế một từ bằng một cụm từ, các vấn đề sau đây cĩ thể phát sinh:
1. Sai lệch cú pháp: Cụm từ mới khơng thỏa mãn cú pháp do khơng cùng từ
loại. Cĩ nhiều nguyên nhân gây ra sự sai lệch từ loại, như từ tiếng Anh là tính từ, trong khi phần tiếng Việt là cụm động từ, v.v…. Chẳng hạn tính từ
“abiogenetic” cĩ nghĩa tiếng Việt “phát sinh tự nhiên” được xếp vào cụm
105
xảy ra khi dịch Anh Việt, khơng chỉ với khoảng trống từ vựng. Tuy nhiên trong trường hợp khoảng trống từ vựng việc thay thế một danh từ tiếng Anh bằng một cụm động từ tiếng Việt cĩ thể tạo ra một cấu trúc cú pháp khác hẳn, và ảnh hưởng tới các cấu trúc chức năng, ngữ nghĩa khác.
2. Cấu trúc cụm từ mới khơng hồn chỉnh: Đây là trường hợp rất hay xảy ra với cụm ngoại động từ cĩ cấu trúc <Động từ> <bổ nghĩa 1> <bổ nghĩa 2>. Do từ điển khơng cĩ thơng tin về các thành phần cịn lại nên các từ kiểu như “ai
đĩ”, “gì đĩ” được sử dụng giữ chỗ và cần được thay thế bởi các thành phần khác của câu.
3.Cụm từ mới khơng đảm bảo chức năng của từ mà nĩ thay thế trong câu dịch: Thơng thường các thành phần phụ của câu/cụm từ cĩ cấu trúc đơn giản hơn thành phần chính. Khi khoảng trống từ vựng xuất hiện ở các nhánh khơng phải trọng tâm sẽ làm câu/cụm từ tối nghĩa. Việc xử lý khoảng trống từ
vựng trong trường hợp này lại quay về giải pháp tìm từ tương đương gần nhất, tuy nhiên do khơng cĩ cây ngữ nghĩa để xác định từ “gần nhất”, cấu trúc cụm từ cần được chỉnh lý theo hướng rút gọn nhằm giảm bớt độ phức tạp của cấu trúc nhánh phụ.
Giải thuật 6.2 trở nên tầm thường nếu cụm từ thay thế khơng cĩ sự sai biệt cú pháp, chức năng hoặc khuyết thành phần. Khi đĩ cụm từđược thay thế cho khoảng trống từ vựng mà khơng cần xử lý gì. Ví dụ khi dịch câu “I see a accomplished girl” với khoảng trống từ vựng “accomplished” – “được giáo dục kỹ lưỡng” cĩ thể để
nguyên cụm từ này trong câu đích “Tơi thấy một cơ gái được giáo dục kỹ lưỡng”. Tuy nhiên khi xử lý 200 câu chứa khoảng trống từ vựng, các trường hợp đơn giản này chỉ chiếm 82 câu, tương ứng 41% và rơi vào các câu đơn giản (câu đơn hai thành phần).
Các giải thuật xử lý khoảng trống từ vựng và chỉnh sửa cấu trúc thành phần là chèn, xĩa, và chuyển vị một cấu trúc nhánh ( bài tốn 2B).
106
Giải thuật 6.2: Xử lý khoảng trống từ vựng (giải thuật tổng quát)
Nhập: Cấu trúc cụm từ hoặc câu tiếng Việt G đúng cú pháp, cĩ chứa từ tiếng Anh là khoảng trống từ vựng.
Xuất: Cấu trúc cụm từ hoặc câu tiếng Việt F đúng cú pháp và khơng chứa khoảng trống từ vựng
Phương pháp:
% Giải thuật sử dụng ngơn ngữđặc tả Prolog
%Hàm lex_gap_proc(G,F) xử lý khoảng trống từ vựng 1. lex_gap_proc(G,F):- lex_search (G,V), is_lex_gap(V,Z), Z=1, lex_gap_proc_aux(V,F). % Các hàm hỗ trợ sử dụng trong hàm lex_gap_proc(G,F) % Function lex_search(X,Y)
%Kiểm tra cấu trúc X cĩ chứa từ vựng thì chuyển từ vựng qua hàm lex_search_aux xử lý 2. lex_search([],[]). 3. lex_search(X,Y):-atom(X), lex_search_aux(X,Y). 4. lex_search(Stru,Result):- Stru=..[Functor|Arg],!,lex_search_aux(Arg,NewArg), Result=..[Functor|NewArg].
% Hàm lex_search_aux (X,Y) tìm mục từ X trong từđiển song ngữ, trả về Y 5. lex_search_aux([T|Term],[NewT|NewTerm]):- lex_search(T,NewT), lex_search_aux(Term,NewTerm). 6. lex_search_aux(X,Y):- X<=>Y,!. 7. lex_search_aux(X,X). 8. lex_search_aux([],[]). % hàm lex_gap_proc_aux(V,Y) xử lý cấu trúc do khoảng trống từ vựng tạo ra bằng các phép chèn, xĩa, chuyển vị và sửa sai lệch cấu trúc
9. lex_gap_proc_aux([],[]).
10. lex_gap_proc_aux(X,X):- atom(X).
11. lex_gapproc_aux(X,Y):- lex_search(X,E), is_lex_gap(E,Temp), Temp=1, lex_search_aux(E,V), lex_insert(X,E,V, Z), lex_move(Z,W), tree_level(W,Temp1),
Temp1 >=5, lex_prune (W,T) ), lex_corr(T,Y).
107
Dịng 1 của giải thuật 6.2 (hàm lex_gap_proc) kiểm tra các điều kiện áp dụng dành cho khoảng trống từ vựng trước khi thực hiện. Đây là hàm thực hiện giải thuật tổng quát tìm từ vựng, kiểm tra từ vựng tìm thấy cĩ phải là khoảng trống từ vựng và xử lý, tương ứng với lưu đồ hoạt động trong hình 6.8. Dịng 2 là hàm lex_search xác nhận nếu đầu vào rỗng thì đầu ra rỗng (kết thúc hàm - trường hợp suy biến). Dịng 3 xét trường hợp X là nút lá và dịng 4 là trường hợp X là một cấu trúc, hàm sẽ gọi hàm hỗ trợ lex_search_aux. Dịng 5 (hàm lex_search_aux ) là trường hợp đầu vào là cấu trúc, hàm sẽ gọi đệ quy chéo tới hàm lex_search để tìm xuống nhánh dưới. Các trường hợp gặp nút lá là mục từ cĩ hoặc khơng cĩ phần tiếng Việt được xét trong các dịng 6 và 7. Trường hợp nút được xét rỗng (kết thúc hàm) là dịng 8. Hàm hỗ trợ xử lý khoảng trống từ vựng lex_gap_proc_aux cĩ các trường hợp suy biến ở dịng 9 , 10 và trường hợp tổng quát (dịng 11). Các hàm thành phần của hàm lex_gap_proc_aux được trình bày trong các giải thuật tiếp 6,3, 6.4, 6.5 và 6.6.
6.2.1.Phép thay thế một nút lá bằng một cấu trúc.
Phép thay thế một nút bằng một cấu trúc là phép thay đổi một cấu trúc tồn câu bằng một cấu trúc khác cĩ nhiều thành phần hơn. Việc thêm một cấu trúc do khoảng trống từ vựng tạo ra phải thỏa mãn đồng thời các điều kiện sau [10]:
- Cấu trúc được thay vào khơng làm ảnh hưởng tới các quan hệ cú pháp của các thành phần khác.
- Cấu trúc được thay cĩ thể rút gọn bằng cách lược bỏ những thành phần phụ, giữ nguyên phần trọng tâm cụm từ.
108
Giải thuật 6.3 Thay một nút trong cấu trúc cho trước bằng một cấu trúc
Nhập: Cấu trúc X cĩ nút lá N cần được thay thế bởi cấu trúc M cho trước.
Xuất: Cấu trúc Y đúng cú pháp là cấu trúc X được mở rộng cĩ chứa M tại vị trí của N.
Phương pháp:
% Giải thuật sử dụng ngơn ngữđặc tả Prolog
%Hàm chèn lex_insert(X,N,M,Y) cấu trúc M vào vị trí khoảng %trống từ vựng N 1. lex_insert(X,N,M,Y):- lex_search(X,N), lex_search_aux(N,M), is_lex_gap(N,Temp), Temp=1, ruletr(N,M ), ruletr(X,Y). % Các hàm hỗ trợ
%Hàm ruletr(E,V) chuyển một cấu trúc ngữ pháp tiếng Anh E sang %cấu trúc ngữ pháp tiếng Việt V và ánh xạ sang cấu trúc chức năng 2. ruletr(E,[]):-var(E),!. 3. ruletr(E,E):-atom(E). 4. ruletr(np(E,V),np(E1,V1)):- E=..[np|_],V=..[_|n], ruletr(E,E1),ruletr(V,V1). % các quy tắc chuyển đổi khác liệt kê ởđây
5. ruletr(Stru,Result):- Stru=[phrasestru|Arg],!, Arg=[Arg1], g_map(Arg1,Result1), Result=..[phrasestru|[Result1]]. %Hàm g_map ánh xạ một cấu trúc thành tố vào một cấu trúc chức % năng. Hàm g_map chính là hàm φ trong VLFG 6. g_map([],[]). 7. g_map(Stru,Result):- Stru=..[Phrasestru|_],!, Result=Phrasestru. % các quy tắc ánh xạ VLFG được đưa thêm ở dưới dịng này
109
Dịng 1 của giải thuật tìm nút N trong X, kiểm tra cấu trúc M cĩ tương ứng N trong từđiển song ngữ và N cĩ phải là khoảng trống từ vựng trước khi biến đổi cấu trúc N sang M và X sang Y. Dịng 2 và 3 của giải thuật 6.3 xác nhận một cấu trúc tiếng Anh được giữ nguyên nếu khơng cĩ cấu trúc tiếng Việt tương ứng. Dịng 4 mơ tả trường hợp cấu trúc tiếng Việt cần chỉnh sửa so với cấu trúc gốc. Giải thuật khơng liệt kê hết tập luật chuyển đổi được sử dụng trong luận án. Dịng 5 là trường hợp tổng quát, khi cấu trúc chuyển đổi là một ma trận (và do đĩ khơng cĩ trong tập luật cấu trúc thơng thường) dùng cho khoảng trống từ vựng. Hàm thành phần ánh xạ
chức năng Arg sang cấu trúc tương ứng Result. Cấu trúc được thay vào phải thỏa mãn các cấu trúc “đề - thuyết” của tiếng Việt. Dịng 6 và 7 của giải thuật 6.3 thực hiện ánh xạ giữa cấu trúc thành tố và cấu trúc cức năng của VLFG. Cấu trúc sau khi thay cĩ thể chuyển về cấu trúc trước khi được thực hiện bằng một số phép lược (mục 6.2.2). Chẳng hạn khi dịch câu “They found the book on the table” ta cĩ cấu trúc đã mơ tả trong hình 4.2 (câu nguồn) và hình 6.3 (câu đích “Chúng nĩ đã tìm thấy quyển sách trên cái bàn”). Nếu thay từ “book” – quyển sách bằng một từ là khoảng trống từ vựng, chẳng hạn “altigraph” – máy ghi độ cao ta sẽ được cấu trúc mới như trong hình 6.9.
(E): They found the altigraph on the table.
(V): Chúng nĩ đã tìm thấy chiếc máy ghi độ cao trên cái bàn.
Hình 6.9. Cấu trúc câu ví trước khi chèn. Chúng nĩ đã tìm thấy altigraph trên cái bàn.
PR V N ADV MT N NP VP SBAR S ADP PT VP
110
Hình 6.10. Cấu trúc của khoảng trống từ vựng “altigraph” (M).
Phép thay một nút N in đậm trong hình 6.9 bằng một cấu trúc M vào một cấu trúc V cho trước được thể hiện bằng giải thuật 6.3:
Giải thuật thêm cấu trúc trên khơng áp dụng cho các nút khơng phải là từ (và do đĩ khơng phải là khoảng trống từ vựng. Trong hình 6.9, 6.10 và 6.11 mơ tả các cấu trúc V, C và V’ tương ứng. Trong hình 6.11 cấu trúc NP (N (máy)+VP (ghi độ
cao)) thay thế cho N(altigraph).
Hình 6.11. Cấu trúc đích sau khi chèn (V’).
NP NP N VP MT
Chiếc máy ghi độ cao V N PR V ADV MT N NP VP SBAR S ADP PT VP NP NP N VP M V N Chúng nĩ đã tìm thấy trên cái bàn.
111
Việc thêm một cấu trúc do khoảng trống từ vựng tạo ra cĩ tính chất hiển nhiên do cụm từđược cung cấp trong từđiển luơn cĩ cấu trúc phức tạp hơn một từ. Cụ thể, danh từ “sách” trong hình 6.3 đã được thay bằng cụm danh từ “máy ghi độ
cao” trong hình 6.11. Lưu ý là cấu trúc câu nguồn trong cả hai trường hợp này giống nhau. Tuy nhiên khơng phải trong mọi trường hợp khoảng trống từ vựng
được từ điển cung cấp tồn bộ cấu trúc cụm từ đều cĩ thể được sử dụng. Ví dụ
khoảng trống từ vựng do từ “audible” – “cĩ thể nghe được” trong câu “They found the audible book on the table” khơng thể dịch sang tiếng Việt “Chúng nĩ đã tìm thấy quyển sách cĩ thể nghe được trên cái bàn” . Vì vậy cụm từ “cĩ thể” phải được lược bỏ (xử lý sai lệch chức năng)
Hình 6.12. Cấu trúc câu dịch “I see a polyglot teacher” (V)
Ngồi ra việc thêm một cấu trúc phức tạp vào một câu đơn giản sẽ làm câu
đích trở nên dài dịng, khĩ hiểu (xem thêm mục 6.2.2). Trường hợp thứ hai xảy ra khi từ loại nút lá c và từ trung tâm của cấu trúc C khơng giống nhau. Sự dịch chuyển từ loại đã được nghiên cứu trong [33]. Chẳng hạn tính từ “cannibalistic” là khoảng trống từ vựng với nghĩa là cụm động từ tiếng Việt “ăn thịt người”, hay tính từ “polyglot” –“biết nhiều thứ tiếng” trong câu “I see a polyglot teacher”. Các hình 6.12, 6.13 và 6.14 là các cấu trúc V, C và V’ tương ứng.
Tơi nhìn thấy người giáo viên polyglot
PR V N NP VP S NP MT NP ADJ
112
Hình 6.13. Cấu trúc cụm từ tương ứng “polyglot” (C)
Hình 6.14. Cấu trúc đích sau khi chèn (V’).
Việc thay đổi từ loại chỉđược tiến hành nếu các cấu trúc chức năng cho phép và tồn tại các ánh xạ tương ứng giữa cấu trúc thành tố và cấu trúc chức năng. Giải thuật xử lý sai lệch từ loại 6.5 được trình bày ở mục 6.2.4. Trong hình 6.14 cấu trúc V’ được chấp nhận vì cấu trúc đề: cụm danh từ, thuyết: cụm động từ cĩ tồn tại. Tuy nhiên số bậc của cấu trúc V’ cao hơn số bậc của V. Muốn giảm số bậc của một cấu trúc, cĩ thể sử dụng phép lược bớt.
6.2.2.Phép rút gọn một cấu trúc
Phép rút gọn một cấu trúc do khoảng trống từ vựng tạo ra là một phép lược bỏ một số nhánh, ngược với phép thêm ở mục 6.2.1. Phép rút gọn cũng được thực
biết nhiều thứ tiếng
V ADV N
NP VP
Tơi nhìn thấy người giáo viên biết nhiều thứ tiếng
PR V N NP VP S NP MT NP V AD N NP VP
113
hiện với các nguyên tắc khơng làm ảnh hưởng tới các quan hệ cú pháp của các thành phần khác, khơng xĩa thành phần trọng tâm cụm từ và cấu trúc sau khi xĩa phải đáp ứng cấu trúc “đề - thuyết”. Mục đích của phép rút gọn một cấu trúc nhằm tạo ra một cấu trúc gọn hơn và phù hợp các cấu trúc chuẩn của câu tiếng Việt. Phép rút gọn khơng nhất thiết phải xĩa tồn bộ một cấu trúc, nĩ cĩ thể chỉ xĩa một số
thành phần và giữ lại một số thành phần khác (thường là thành phần trung tâm). Chẳng hạn với khoảng trống từ vựng “anaglyphic” – “cĩ hình chạm nổi thấp” trong