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 - 48)

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 tố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 khun 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 tố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.

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 - 48)