Xây dựng chƣơng trình dịch và thực hiện tối ƣu bảng cụm từ

Một phần của tài liệu Trung tâm Thư viện và Tri thức số - Library and Digital Knowledge Center (Trang 44)

4.2.1. Chuẩn bị dữ liệu và chuẩn hóa dữ liệu

Dữ liệu đầu vào cần đƣợc chuẩn hóa theo đúng dạng qui định. Việc chuẩn hóa dữ liệu có thể bao gồm những công việc nhƣ:

- Tách từ - Tách câu

- Chuyển sang chữ thƣờng, chữ hoa - Loại bỏ từ dƣ thừa

-…

Việc chuẩn hóa dữ liệu là một trong những bƣớc tiền xử lý trong hệ dịch máy. Có nhiều phƣơng pháp để chuẩn hóa dữ liệu đầu vào đang đƣợc cung cấp miễn phí dƣới dạng mã nguồn mở.

4.2.2. Xây dựng mô hình ngôn ngữ, mô hình dịch

Bộ công cụ xây dựng mô hình ngôn ngữ - SRILM

-SRILM là một gói công cụ để xây dựng mô hình dịch ngôn ngữ. Nó giúp chúng ta xây dựng đƣợc mô hình ngôn ngữ trƣớc khi cho vào máy dịch. SRILM bao gồm các thành phần sau:

-Một tập hợp các thƣ viện C + + giúp cài đ t mô hình ngôn ngữ, h trợ cấu trúc dữ liệu và các chức năng tiện ích nhỏ.

-Một tập hợp các chƣơng trình thực thi, thực hiện nhiệm vụ xây dựng mô hình ngôn ngữ, đào tạo và thử nghiệm mô hình ngôn ngữ trên dữ liệu, gắn thẻ ho c phân chia văn bản, ...

Bộ công cụ SRILM có rất nhiều chƣơng trình con, để xây dựng mô hình ngôn ngữ, chúng tôi sử dụng 2 chƣơng trình chính là Ngram-count và Ngram[], dung lƣợng khoảng 90MB dữ liệu đơn ngữ.

Bộ công cụ GIZA++

Chúng ta sử dụng GIZA++ để xây dựng mô hình dịch và dùng mkcls để ƣớc lƣợng giá trị cực đại cho m i mô hình. Chức năng chủ yếu của GIZA++ là gióng hàng từ từ nguồn ngữ liệu song ngữ. GIZA++ đƣợc tích hợp cùng với MOSES để huấn luyện, xây dựng mô hình dịch.

Sau khi chuẩn hóa dữ liệu và đã xây dựng mô hình ngôn ngữ, mô hình dịch việc tiếp theo của chúng ta là dịch máy. Bộ ngữ liệu song ngữ trên các c p ngôn ngữ khác nhau. Tiến hành dịch và so sánh kết quả.

4.2.3. Cắt gọt (Pruning) bảng cụm từ theo mô hình Entropy

Để xây thực hiện cắt gọt bảng cụm từ, chúng tôi sử dụng bộ công cụ SALM tích hợp tự động với Moses. SALM cho phép loại bỏ những cụm từ dƣ thừa nhằm giảm kích thƣớc của bảng Phrase và tăng tốc độ dịch. Tuy nhiên, việc thực hiện này cũng tính toán các điểm quan trọng Johnson et al., 2007 3, và sử dụng phiên bản đã cập nhật lại code bởi Chris Dyer trong thƣ mục “contrib/relent-filter/sigtest-filter” .

Chúng ta thực hiện nhƣ sau:

Bƣớc 1: Cài đ t công cụ h trợ

Tải bộ cài SALM4

Bƣớc 2: Biên dịch

Chạy "make SALMDIR=/path/to/SALM" in "contrib/relent-filter/sigtest- filter" để tạo thực thi filter-pt

Bƣớc 3: chuẩn bị các file dữ liệu

1 s_train: file dữ liệu gốc để training. Trong phần thực nghiệm này tôi chọn s_train là: “ ~/tools/work/corpus/50001b_train.en “

2 t_train: file dữ liệu mục tiêu. Trong phần thực nghiệm này tôi chọn t_train là “~/tools/work/corpus/50001b_train”

3 moses_ini: là đƣờng dẫn đến file cấu hình Moses sau khi tuning , trong phần thực nghiệm này tôi dùng “~/tools/work/mert-work/moses.ini”

4 pruning_binaries: là đƣờng dẫn đến thƣ mục pruning, trong phần thực nghiệm này tôi dùng “~/tools/moses/bin”

(5) pruning_scripts: là đƣờng dẫn đến thƣ mục: "contrib/relent- 3 http://www.aclweb.org/anthology/D/D07/D07-1103.pdf 4 http://projectile.sv.cmu.edu/research/public/tools/salm/salm.htm#update

filter/scripts"

(6 sigbin: là đƣờng dẫn đến "contrib/relent-filter/sigtest-filter"

(7) output_dir: là đƣờng dẫn thƣ mục chứa kết quả đầu ra. Trong phần thực nghiệm này tôi chọn “~/tools/”

Bƣớc 4: Xây dựng mảng hậu tố cho dữ liệu training song ngữ của ngôn

ngữ nguồn và ngôn ngữ đích.

% SALM/Bin/Linux/Index/IndexSA.O32 <s_train> % SALM/Bin/Linux/Index/IndexSA.O32 <t_train>

Bƣơc 5: tính điểm cho các c p cụm từ

% perl <pruning_scripts>/calcPruningScores.pl -moses_ini <moses_ini> \ -training_s <s_train> -training_t <t_train> \

-prune_bin <pruning_binaries> -prune_scripts <pruning_scripts> \ -moses_scripts <path_to_moses>/scripts/training/ \

-workdir <output_dir> -dec_size 10000

Kết quả đầu ra của bƣớc này là các file đƣợc sinh ra trong thƣ mục <output_dir>/scores/ dir:

1. count.txt : đếm các c p cụm từ cho N(s, t) N (s, *) và N (*, t) 2. divergence.txt: log của sự phân kỳ của các c p cụm từ

3. empirical.txt - phân phối thực nghiệm của các c p cụm từ N s, t / N (*, *)

4. rel_ent.txt: entropy tƣơng đối của các c p cụm từ

5. significance.txt : tính điểm quan trọng của các c p cụm từ

Chúng ta có thể sử dụng bất kỳ một trong những tập tin này cho cắt gọt và cũng kết hợp những điểm số bằng cách sử dụng scripts <pruning_scripts> /interpolateScores.pl.

Để thực sự cắt gọt một bảng cụm từ, chạy <pruning_scripts> /prunePT.pl, điều này sẽ cắt gọt c p cụm từ dựa trên các tập tin đó là điểm số đƣợc sử dụng.

Bƣớc 6: thực hiện cắt gọt với mô hình entropy

Ví dụ, để cắt gọt giảm 30% kích thƣớc bảng cụm từ, ta sử dụng entropy quan hệ nhƣ sau:

% perl <pruning_scripts>/prunePT.pl -table <phrase_table_file> \ -scores <output_dir>/scores/rel_ent.txt

-percentage 70 > <pruned_phrase_table_file> Ho c cũng có thể cắt gọt bởi ngƣỡng

% perl <pruning_scripts>/prunePT.pl -table <phrase_table_file> \ -scores <output_dir>/scores/rel_ent.txt

-threshold 0.1 > <pruned_phrase_table_file>

Bƣớc 7: thay thế <phrase_table_file> với <reord_table_file>

% perl <pruning_scripts>/prunePT.pl -table <reord_table_file> \ -scores <output_dir>/scores/rel_ent.txt

-percentage 70 > <pruned_reord_table_file>

Bƣớc 8: Song song hóa

Các scripts <pruning_scripts> /calcPruningScores.pl đòi hỏi việc giải mã buộc của toàn bộ các c p cụm từ trong bảng cụm từ, nhƣ vậy trừ khi nó đƣợc sử dụng cho một ngữ liệu nhỏ, nó thƣờng đòi hỏi một lƣợng lớn thời gian để xử lý. Vì vậy, chúng tôi khuyên ngƣời dùng chạy nhiều trƣờng hợp của <pruning_scripts> /calcPruningScores.pl song song để xử lý các phần khác nhau của bảng cụm từ. Để làm điều này, chúng tôi chạy câu lệnh sau:

% perl <pruning_scripts>/calcPruningScores.pl -moses_ini <moses_ini> \

-training_s <s_train> -training_t <t_train> \

-prune_bin <pruning_binaries> -prune_scripts <pruning_scripts> \ -moses_scripts <path_to_moses>/scripts/training/ \

-workdir <output_dir> -dec_size 10000 -start 0 -end 100000

4.2.4. Đánh giá kết quả dịch

Kết quả dịch máy thống kê có chính xác hay không đều dựa vào các chỉ số dịch máy. Có 2 chỉ số cần quan tâm đó là chỉ số BLEU [11] và chỉ số NIST.  Chỉ số BLEU

Đây là chỉ số đánh giá chất lƣợng dịch của máy dịch thống kê từ ngôn ngữ này sang ngôn ngữ khác.

Kết quả dịch máy thống kê càng chính xác thì chỉ số BLEU càng cao và ngƣợc lại. Điểm chỉ số BLEU đƣợc tính dựa vào việc so sánh câu dịch đƣợc với một tập hợp các câu dịch tốt, sau đó lấy giá trị trung bình từ những câu này.

Chỉ số BLEU có giá trị nằm từ 0 đến 1. Chỉ số càng gần 1 thì chất lƣợng dịch càng tốt, chỉ số càng nhỏ gần tới 0 thì chất lƣợng dịch càng kém.

BLEU tính điểm bằng cách đối chiếu kết quả dịch với tài liệu dịch tham khảo và tài liệu nguồn. M c dù chỉ ra rằng điểm BLEU thƣờng không thực sự tƣơng quan với đánh giá thủ công của con ngƣời với các loại hệ thống khác nhau, thế nhƣng vẫn có thể đảm bảo chính xác để đánh giá trên một hệ thống

dịch thống kê. Chính vì vậy, trong luận văn này, điểm BLEU đƣợc sử dụng làm tiêu chuẩn đánh giá chất lƣợng dịch.

Chúng tôi lấy trung bình hình học của các điểm chính xác sửa đổi các văn dữ liệu thử và sau đó nhân kết quả của một yếu tố hình phạt ngắn gọn theo cấp số nhân. Hiện nay, trƣờng hợp gấp là việc bình thƣờng hóa văn bản chỉ đƣợc thực hiện trƣớc khi tính toán độ chính xác. Đầu tiên chúng ta tính trung bình hình học của độ chính xác n-gram sửa đổi, pn, sử dụng n-gram đến chiều dài N và trọng lƣợng tích cực WN cách tổng hợp một. Tiếp theo, gọi c là độ dài của các cụm từ mục tiêu và r là chiều dài tham khảo dữ liệu hiệu quả. Chúng ta ƣớc tính phạt ngắn gọn BP. { Sau đó, BLEU= BP.exp(∑ )

Các cách xếp hạng là nhiều hơn ngay lập tức rõ ràng trong việc tính bleu. log BLEU = min(1-r/c, 0) + ∑ (Công thức 4.1) Trong cơ sở của chúng tôi, chúng tôi sử dụng N = 4 và trọng lƣợng đồng nhất wn = 1/N.

Chỉ số NIST

Về cơ bản phƣơng pháp đánh giá nhờ chỉ số NIST cũng tƣơng tự nhƣ chỉ số BLEU nhƣng nó cũng có một số khác biệt.

Chỉ số NIST cung cấp thông tin cần thiết để đánh giá trọng số dịch.

4.3.Thực nghiệm và đánh giá kết quả dịch từ tiếng Anh sang tiếng Việt

Từ bộ dữ liệu gồm hơn 50.000 câu tiếng anh và hơn 50.000 câu tiếng việt. Sau khi đã training dữ liệu và sinh bảng cụm từ cụm từ-table.gz).

Ngữ liệu tiếng Việt:

Một ngữ liệu nhỏ đơn ngữ tiếng Việt cũng đƣợc sử dụng với mục đích củng thêm cố kết quả với việc thử nghiệm trên nhiều ngữ liệu khác nhau. Ngữ liệu này đƣợc xây dựng từ nhiều bài viết trên “Báo Lao động” phiên bản điện tử thuộc nhiều lĩnh vực khác nhau nhƣ khoa học, kinh tế, thể thao, văn hóa [3]. Các thống kê về ngữ liệu này đƣợc liệt kê trong bảng dƣới đây:

Bảng 4.1: Ngữ liệu tiếng việt.

Số lƣợng câu Số lƣợng từ Số lƣợng từ vựng Độ dài trung bình câu

54643 580754 24097 10.628

Ngữ liệu tiếng Anh:

Bảng 4.2: Ngữ liệu tiếng anh.

Số lƣợng câu Số lƣợng từ Số lƣợng từ vựng Độ dài trung bình câu

54643 614578 23084 11.247

Bảng dữ liệu đầu vào:

Bảng 4.3: Dữ liệu đầu vào

Dữ liệu Ngôn ngữ Câu Từ Từ vựng Độ dài trung bình Tên tệp tin thực nghiệm Dữ liệu huấn luyện Tiếng Anh 54643 614578 23084 11.247 50001b_train.en Tiếng Việt 54643 580754 24097 10.628 50001b_train.vn Dữ liệu điều Chỉnh tham số Tiếng Anh 201 2403 966 11.995 50001_dev.en Tiếng Việt 201 2221 1002 11.049 50001_dev.vn Dữ liệu đánh giá Tiếng Anh 500 5620 1844 11.24 50001_test.en Tiếng Việt 500 5264 1851 10.528 50001_test.vn

4.3.1. Đánh giá kết quả dữ liệu huấn luyện bảng cụm từ

Dữ liệu huấn luyện đƣợc thay đổi theo kích thƣớc của tập ngữ liệu đầu vào, việc thay đổi này là quá trình làm tăng ho c giảm số câu số dòng trong c p ngữ liệu đầu vào đó. Việc thay đổi dữ liệu huấn luyện sẽ làm ảnh hƣởng đến mô hình dịch, mô hình ngôn ngữ, … từ đó ảnh hƣởng rất lớn đến quá trình đánh giá chất lƣợng của dịch máy.

Đối với dữ liệu bảng cụm từ gốc, với 50.000 c p câu, ta có kết quả nhƣ sau:

Nhƣ vậy, đối với dữ liệu huấn luyện 50.000 c p câu thì cho ta kết quả bảng cụm từ sinh ra có kích thƣớc là 162MB, với điểm BLEU là 0.3407.

Sau khi thực hiện cắt gọt bảng cụm từ ta có kết quả nhƣ sau:

Bảng 4.4: So sánh í h thước bảng cụm từ sau khi tối ưu

Kích thƣớc bảng Entropy (m) Pruning

97MB(60%) 33.98

129MB(80%) 34.03

162MB(100%) 34.07

Nhìn vào kết quả trong bảng 4.4 so sánh kết quả ta thấy, ở đây xét tập ngữ liệu trên 50.000 câu kích cỡ của bảng cụm từ là 162 Mb, với điểm BLEU là 34.07, sau khi thực hiện cắt gọt 60% thì điểm BLEU là 33.98, sự chênh lệch là 0.09 giảm dung lƣợng bảng từ 162Mb xuống còn 97Mb. Cắt gọt 80% thì điểm BLEU là 34.03, sự chênh lệch là 0.04 giảm dung lƣợng bảng từ 162Mb xuống còn 129Mb.

Nhƣ vậy, khi kích thƣớc dữ liệu của bảng cụm từ sau khi đƣợc cắt gọt giảm đi đáng kể so với bảng cụm trƣớc khi đƣợc cắt gọt. Chúng ta sẽ không cần phải dùng đến một không gian bộ nhớ lớn để lƣu bảng cụm từ.

KẾT LUẬN

Trong luận văn này tôi hƣớng tới mục đích là tìm hiểu và nghiên cứu phƣơng pháp cải thiện bảng cụm từ về m t hiệu năng cụ thể là dung lƣợng của bảng cụm từ của quá trình dịch nhƣng vẫn đảm bảo đƣợc chất lƣợng dịch. Qua bốn chƣơng, luận văn đã trình bày về cách tiếp cận dịch máy dựa trên cụm từ, phƣơng pháp tối ƣu bảng cụm từ theo kỹ thuật Pruning (cụ thể là mô hình

“Entropy-based Pruning” , và đồng thời áp dụng vào bài toán dịch Anh – Việt. Các kết quả chính đạt đƣợc là:

-Trình bày về cách tiếp cận dịch máy bằng thống kê trên cơ sở cụm từ. -Trình bày phƣơng pháp cắt gọt bảng cụm từ theo mô hình “Entropy- based Pruning”.

-Áp dụng các phƣơng pháp cắt gọt bảng cụm từ theo mô hình “Entropy- based Pruning” dịch Anh – Việt, đánh giá và thử nghiệm với c p ngữ liệu song ngữ cho kết quả khả quan.

Hƣớng phát triển:

Với những kết quả đạt đƣợc trong luận văn này, tôi hy vọng trong tƣơng lai sẽ cải thiện đƣợc chất lƣợng dịch và thời gian dịch bằng cách cập nhật các ngữ liệu đầu vào đủ lớn, giảm kích thƣớc của bảng cụm từ, thay đổi một vài tham số để quá trình huấn luyện các mô hình đƣợc tốt hơn:

-Thử nghiệm với dữ liệu đa dạng hơn và lớn hơn.

-Tìm hiểu thêm về các phƣơng pháp cắt gọt bảng cụm từ. -Tìm hiểu các phƣơng pháp cải tiến để kết quả hiệu quả hơn. -Áp dụng cho chiều dịch từ Việt – Anh.

THAM KHẢO

Tài liệu tiếng Việt

[1] Đào Ngọc Tú 2012 , “Nghiên cứu vào dịch thống kê dựa vào cụm từ và thử nghiệm với c p ngôn ngữ Anh – Việt”. Luận văn Thạc sỹ, Học viện Công nghệ Bƣu chính Viễn thông.

[2] Nguyễn Văn Vinh 2005 , “Xây dựng chƣơng trình dịch tự động Anh- Việt bằng phƣơng pháp dịch thống kê”. Luận văn Thạc sĩ, Đại học Công nghệ, Đại học Quốc gia Hà Nội.

Tài liệu tiếng Anh

[3] Daniel Jurafsky and James H. Martin, Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics and Speech Recognition, chapter 6, February 2000.

[4] Och F.J. and Ney H., “Discriminative training and maximum entropy models for statistical machine translation” In Proceedings of the 40th Annual Meeting of the Association for Computational Linguistics (ACL), pages 295-302, Philadelphia, PA, July 2002.

[5] Kenji Yamada and Kevin Knight, A Syntax-based Statistical Translation Model, Information Sciences Institute, University of Southern California [6] Philipp Koehn and Kevin Knight, “Introduction to Statistical Machine [7] WangLing, JoaoGrac, Isabel, Trancoso, AlanBlack, “Entropy-based

Pruning for Phrase-based Machine Translation”.

[8] Papineni, Kishore, Salim Roukos, Todd Ward and Wei-Jing Zhu. (2002), BLEU: a method for automatic evaluation of machine translation. In Proceedings of the 40th Annual Meeting of the ACL, pages 311-318, Philadelphia, PA.

Một phần của tài liệu Trung tâm Thư viện và Tri thức số - Library and Digital Knowledge Center (Trang 44)