Như đã trình bày trong mục 4.2, để xác định chính xác các ký hiệu kết thúc câu, giải thuật xét những qui tắc sau:
Kết thúc bằng dấu “enter” xuống dòng.
Kết thúc bằng dấu chấm thang (!), dấu chấm hỏi (?).
Kết thúc bằng dấu chấm (.), trừ những trường hợp ngoại lệ:
Dấu chấm trong từ viết tắt (lưu trong từ điển).
Dấu chấm xuất hiện trong một chuỗi liên tục có chứa nhiều hơn một dấu chấm. Ví dụ: “Abc.Cdef”. (cả 2 dấu chấm này đều không phải là ký hiệu kết thúc câu).
Dấu chấm xuất hiện ngay sau từ chỉ có một chữ cái. Ví dụ: P. Laran
Dấu chấm trong dấu ba chấm (…) mà sau nó không phải là một từ viết hoa.
Dấu chấm trong địa chỉ email, địa chỉ website.
Dấu chấm trong các con số.
Để hiện thực phân đoạn câu hiệu quả, chương trình có thu thập danh sách các từ viết tắt trong tiếng Anh. Mục đích là loại trừ những nhập nhằng khi xác định dấu hiệu kết thúc câu. Danh sách này được lưu trong CSDL, bảng tblAbbreviation.
Hình 5-25. Danh sách từ viết tắt trong tiếng Anh
Tuy nhiên vẫn không thể giải quyết hết những trường hợp ngoại lệ như đã giới thiệu trong phần trước. Thật may mắn là kết quả canh lề không bị ảnh hưởng nhiều bởi một vài trường hợp phân đoạn câu sai. Bởi vì giải thuật canh lề có thể sẽ ghép 2 câu bị phân cách sai thành một block trong canh lề 2-1 (hoặc 1-2).
Hiện thực giải thuật phân đoạn câu:
Đầu vào: Văn bản đã được tách từ và nhận dạng từ ghép, cụm từ; danh sách các từ viết tắt.
Đầu ra: Danh sách các câu, chiều dài mỗi câu tính theo từ.
Phương pháp: (1)Kiểm tra tất cả các dấu hiệu kết thúc câu và xác định vị trí ngắt câu. (2)Tính chiều dài câu theo số lượng từ.
Lớp hiện thực: Sentence
4 Canh lề câu theo chiều dài câu:
Để hiện thực giải thuật này, trước tiên, cần tính toán các giá trị trung bình c và độ lệch s. Công thức tính giá trị này cần một số thống kê trên các văn bản song ngữ Anh-Việt. Luận văn này có sử dụng lại một số kết quả thống kê của tác giả Trần
Giang Sơn [4], trong đó một số giá trị thống kê đã được kiểm tra đối chiếu lại sau khi chạy chương trình và được điều chỉnh lại cho phù hợp hơn ở những lần chạy sau.
Hiện thực giải thuật canh lề theo chiều dài câu:
Đầu vào: Danh sách các câu đã được phân đoạn và tính chiều dài câu.
Đầu ra: Danh sách các khối (block) được canh lề.
Lớp hiện thực: SentenceAlignment
Phương pháp: Dùng phương pháp lập trình động để tính khoảng cách (chi phí) nhỏ nhất cho phép canh lề tốt nhất. Phương pháp lập trình động đã được trình bày trong mục 4.3. Giá trị trung bình c, độ lệch chuẩn và xác suất của các phép canh lề được tính như sau:
Tính giá trị trung bình c:
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. Kết quả thống kê của tác giả Trần Giang Sơn qua việc tiến hành thống kê đối với từ điển Việt-Anh loại nhỏ với 14650 từ đã được tỷ lệ phần trăm của các từ tiếng Anh được dịch ra một, hai, ba, bốn từ tiếng Việt (một từ tiếng Anh được dịch thành 2 từ tiếng Việt chiếm tỷ lệ cao nhất):
Loại từ Số lượng Phần trăm
1 từ (từ đơn) 1558 10.6 %
2 từ (từ ghép đôi) 8208 56.0 %
3 từ (từ ghép ba) 3154 21.5 %
4 từ (từ ghép bốn) 1256 7.0 %
Bảng 5-6. Tỷ lệ của các từ đơn, từ ghép đôi, từ ghép ba, từ ghép bốn.
Để có được giá trị trung bình c, tức là tỷ lệ số lượng từ trong tiếng Việt so với tiếng Anh, tác giả này đã tiến hành thống kê các văn bản song ngữ:
Số lượng từ trong văn bản tiếng Việt
Số lượng từ trong văn bản tiếng Anh
Tỷ lệ 1313 905 1.4508 3739 2415 1.5482 6964 4174 1.6684 2480 1704 1.4554 3364 2026 1.6604
10113 6291 1.6075 8920 5586 1.5968 3897 2723 1.4311 10538 6427 1.6396 3131 2081 1.5045 2295 1500 1.5300
Bảng 5-7. Tỷ lệ giữa số từ tiếng Việt và số từ tiếng Anh
Kết quả là giá trị trung bình c=1.55. Điều này có nghĩa là một từ tiếng Anh trung bình được dịch thành 1.55 từ tiếng Việt.
Tính độ lệch chuẩn:
i : thứ tự các cặp câu n: tổng số cặp câu
le : chiều dài của câu tiếng Anh lv : chiều dài của câu tiếng Việt
si = lei * c – lvi (trong đó c=1.55 là giá trị trung bình được tính ở trên)
n s s n i i ∑ = = 1 2 2 : bình phương độ lệch
Để có được các cặp câu Anh-Việt, tác giả này dùng phương pháp canh lề thủ công để canh lề một số văn bản song ngữ với tổng cộng 2000 cặp câu. Sau khi tính toán, s2 = 35.62.
Tính xác suất của các phép canh lề:
Để tính được xác suất của các phép canh lề, tác giả này lại sử dụng kết quả thống kê của tác giả Gale [16] như sau:
Phép canh lề Tần suất Xác suất
1-1 1167 0.89
1-0 hoặc 0-1 13 0.0099
2-1 hoặc 1-2 117 0.089
2-2 15 0.011
Tổng cộng 1312 1.00
Bảng 5-8. Xác suất của các phép canh lề theo [16]
Trong luận văn, số liệu trên được sử dụng để chạy chương trình canh lề lần đầu, sau đó, tiến hành kiểm tra và thống kê lại các số liệu trên cho phù hợp với canh lề song ngữ Anh-Viêt, kết quả như sau:
Phép canh lề Tần suất Xác suất
1-1 3910 0.979949875
1-0 hoặc 0-1 7 0.001754386
2-1 hoặc 1-2 68 0.017042607
2-2 5 0.001253133
Tổng cộng 3990 1.00
Bảng 5-9. Xác suất của các phép canh lề Anh-Việt
Vì các phép canh lề (3-1) và (1-3) rất hiếm khi gặp, cho nên giải thuật bỏ qua hai phép canh lề trên.
Kết quả phép canh lề câu được lưu trữ trên CSDL như sau (bảng tblSentenceAlignment):
Hình 5-27. Kết quả canh lề câu theo chiều dài câu
[x1]: thứ tự câu tiếng Anh
[x2]: thứ tự câu tiếng Anh 2 (nếu block gồm 2 câu tiếng Anh) [x1]: thứ tự câu tiếng Việt
[x1]: thứ tự câu tiếng Việt 2 (nếu block canh lề gồm 2 câu tiếng Việt) Nếu không có câu tương ứng, giá trị là –1.
[xlen]: chiều dài 1 câu tiếng Anh (2 câu nếu block canh lề 2 câu) [xlen]: chiều dài 1 câu tiếng Việt (2 câu nếu block canh lề 2 câu) [EN]: nội dung câu tiếng Anh
[VN]: nội duung câu tiếng Việt
[xNo]: số lượng câu tiếng Anh trong block canh lề [yNo]: số lượng câu tiếng Việt trong block canh lề
[d]: khoảng cách của phép canh lề trong giải thuật lập trình động [xparagraph]: thứ tự đoạn mà câu tiếng Anh thuộc về
[yparagraph]: thứ tự đoạn mà câu tiếng Việt thuộc về
5 Kiểm tra tính hợp lệ của phép canh lề
Mỗi khối văn bản có được từ phép canh lề theo chiều dài câu sẽ được kiểm tra tính hợp lệ. Để thực hiện điều này, quá trình này phải tạo ra được tập hợp tất cả các cặp từ tương ứng trong khối (block). Mỗi cặp từ tương ứng sẽ được biểu diễn bằng một điểm trong không gian của văn bản song ngữ. Do đó, quá trình này được gọi là quá trình tạo điểm.
Hiện thực giai đoạn tạo điểm:
Đầu vào: Danh sách các từ, từ điển song ngữ Anh Việt, danh sách stopwords
Đầu ra: Tập hợp các điểm tương ứng thật sự (true correspondence point), kèm theo trọng số của nó
Lớp hiện thực: PointsRecognize
Phương pháp: (1)loại bỏ stopwords, (2)với mỗi cặp từ bất kỳ tính mức độ giống nhau và đánh trọng số cho nó. Ngoài ra, nếu nó không phải là điểm tương ứng, cần ghi chú lại: (i)không xuất hiện trong từ điển, (ii)có trong từ điển nhưng không phải là từ dịch của nhau.
Một điểm tương ứng được nhận dạng bằng các đặc điểm sau:
Loại điểm Trọng số
Hai từ có cách viết giống nhau (cognate), bao gồm:
từ vay mượn,
danh từ riêng,
từ viết tắt,
địa chỉ email, website,
con số,
ký hiệu đặc biệt, …
1.5
Hai từ dịch của nhau (từ tiếng Anh được xét nguyên từ)/Hai cụm từ
1.2 Hai từ dịch của nhau (từ tiếng Anh đã được
stemming)
1 Hai từ dịch của nhau nhưng không giống hoàn toàn
theo từ điển
% giống theo chiều dài
Bảng 5-10. Đánh giá trọng số các điểm tương ứng
Các trọng số này có thể điều chỉnh cho phù hợp và nâng cao hiệu quả của chương trình. Nó được lưu trữ trên CSDL, bảng tblWeight
Như vậy, mỗi điểm được gán trọng số tùy thuộc vào mức độ tin cậy của nó. Độ chính xác của giai đoạn này phụ thuộc rất lớn vào số lượng và chất lượng của từ điển. Kho dữ liệu ban đầu gồm từ điển Anh Việt (5.500 từ), từ điển từ ghép tiếng Việt (13.100 từ), từ điển cụm từ tiếng Anh (10.400 từ). Ngoài ra, phần này có thu thập một
từ điển Anh-Việt 100.000 từ. Tuy nhiên, khi sử dụng từ điển này để canh lề, tốc độ giải thuật chậm hơn rất nhiều, nhưng không tăng hiệu quả canh lề.
Để những điểm tìm thấy không phải là sự tương ứng ngẫu nhiên, giải thuật sẽ loại bỏ stopwords, những từ mà tần suất xuất hiện cao trong văn bản, nhưng không mang nghĩa trong câu, hay nói cách khác, nó không có giá trị canh lề. Những từ này nếu không được loại đi sẽ gây khó khăn trong quá trình nhận dạng chuỗi (tạo nên những điểm nhiễu, những điểm canh lề giả). Stopwords được nhận dạng bằng danh sách stopwords lưu trong cơ sở dữ liệu (bảng tblStopwords).
Hình 5-28. Danh sách Stopwords
Tính độ tương tự:
Cho hai đoạn văn bản thuộc 2 ngôn ngữ khác nhau, chúng ta tính được độ tương tự giữa chúng sử dụng công thức:
γ = 2c/(n+m)
với m,n: số từ trong mỗi đoạn, c: tổng số điểm tương ứng.
Trong luận văn, để chất lượng từ điển Anh – Việt ảnh hưởng ít nhất đến kết quả phép canh lề, công thức được áp dụng như sau:
c: số lượng các từ trong 2 văn bản trở thành điểm tương ứng thực sự.
n: số lượng các từ trong văn bản tiếng Việt mà có xuất hiện có trong từ điển. Tập hợp các điểm tương ứng sẽ có chứa những điểm xung đột nhau. Những điểm xung đột nhau là do vi phạm ràng buộc tương ứng 1-1, là những điểm mà nó có cùng tọa độ x, hoặc tọa độ y. Khi đó, chương trình sẽ loại bỏ những điểm xung đột bằng cách giữ lại điểm có trọng số lớn hơn. Nếu gặp khó khăn trong giai đoạn này (khi trọng số bằng nhau), giải thuật sẽ tạo ra tập hợp các phép canh lề có thể có, và chọn ra phép canh lề từ mà γ lớn nhất.
Chúng ta có một số thống kê như sau (trên 1000 cặp câu đã canh lề): Chiều dài câu
(theo từ)
γ trung bình γ nhỏ nhất γ trung bình (đối với 2 câu bất kỳ) (đối với 2 câu canh lề đúng)
<=10 0.754256 0.2 0.218889
<10-20 0.699376 0.272727 0.185671
<20-30 0.652777 0.294118 0.227717
>30 0.612416 0.3 0.220252
Bảng 5-11. Thống kê γ trung bình theo chiều dài block
Theo thống kê, tuy γ có giá trị trung bình khoảng 0.6~0.7, nhưng nếu chọn γ ở giá trị này thì chúng ta sẽ bỏ qua rất nhiều phép canh lề tốt. Những phép canh lề có độ tương tự từ 0.2~0.4 chiếm tỉ lệ rất thấp. Do đó, chương trình chấp nhận phép canh lề có γ >= 0.4 là phép canh lề hợp lệ.
6 Canh lề chéo:
Đối với những phép canh lề theo chiều dài câu mà không hợp lệ, chương trình xem như là có canh lề chéo. Bởi vì phép canh lề theo chiều dài câu bỏ qua trường hợp canh lề chéo. Khi đó, chương trình sẽ tìm một phép canh lề tốt nhất từ những block không hợp lệ. Thông thường, phép canh lề chéo không nhiều, do đó, chương trình sẽ tạo nên một tổ hợp canh lề, và sử dụng phương pháp vét cạn, dùng chỉ số độ tương tự
Giới hạn của luận văn là chỉ kiểm tra canh lề chéo của các block trong cùng một đoạn (paragraph). Việc mở rộng canh lề chéo trong toàn văn bản có thể thực hiện được nhưng độ phức tạp cao.
Hiện thực canh lề chéo:
Đầu vào: Danh sách các block không hợp lệ
Đầu ra: Các block được canh lề chéo
Phương pháp:
(1)tạo tổ hợp các phép canh lề,
(2)tính độ tương tự của mỗi phép canh lề, (3)chọn phép canh lề tốt nhất.
Lớp hiện thực: CrossAlignment