1. Trang chủ
  2. » Công Nghệ Thông Tin

bao cao chuyen de ngon ngu hoc may tinh

23 197 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 23
Dung lượng 893,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

* Dịch máy thống kê trở thành một mô hình chính bằng cách ánh xạ từ vựng từ ngôn ngữnguồn sang ngôn ngữ đích sử dụng các mô hình dịch thuật..  Dịch máy thống kê SMT là một phương pháp d

Trang 1

BÁO CÁO CHUYÊN ĐỀ MÔN NGÔN NGỮ HỌC MÁY TÍNH

Tên đề tài:

TÌM HIỂU CÔNG CỤ GIZA++

TRONG DỊCH MÁY THỐNG KÊ

MỤC LỤC 1.Giới thiệu về dịch máy thống kê và Giza++ 3

2.Các tính năng của công cụ: 4

3.Nguyên lý thiết kế và phương pháp xây dựng công cụ 5

3.1 Các mô hình huấn luyện: 5

3.2 Quá trình huấn luyện: 9

3.3 Phương pháp xây dựng công cụ: 10

3.4 Ứng dụng các mô hình: 16

4 Cài đặt và sử dụng 20

4.1 Cài đặt Giza++ 20

4.2 Chạy thử nghiệm GIZA++: 21

5 Kết luận 22

5.1 Kết quả đạt được 22

5.2 Hướng phát triển tiếp theo 22

Trang 2

5.3 Rút ra bài học cho bản thân 22

7.TÀI LIỆU THAM KHẢO 23

Trang 3

1 Giới thiệu về dịch máy thống kê và Giza++

Dịch máy hay còn gọi là dịch tự động là việc dịch 1 ngôn ngữ nguồn ra một hay nhiềungôn ngữ đích một cách tự động không có sự can thiệp của con người

Theo sự tìm hiểu của em, ngày nay có hai cách tiếp cận chính cho dịch máy:

 Dựa trên luật

 Dựa trên ngữ liệu gồm:

o Dịch máy dựa trên ví dụ

o Dịch máy dựa trên thống kê

* Dịch máy dựa trên luật: cần phải xây dựng hệ thống luật, cú pháp, ngữ nghĩa, xây dựng từđiển đầy đủ thông tin Để thực hiện phương pháp dịch máy dựa trên luật đòi hỏi nhiều thờigian công sức nhưng sản phẩm dịch vẫn không đạt độ chính xác như mong đợi

* Dịch máy thống kê trở thành một mô hình chính bằng cách ánh xạ từ vựng từ ngôn ngữnguồn sang ngôn ngữ đích sử dụng các mô hình dịch thuật Thực hiện quá trình dịch nhờ vàoviệc học từ ngữ liệu:

 Dựa vào các mô hình máy học

 Khá đơn giản và cho kết quả tốt

Đặc điểm:

 Không cần nắm rõ luật của từng ngôn ngữ -> có thể dùng cho nhiều ngôn ngữ khácnhau

 Cần có kho dữ liệu chuẩn để huấn luyện

Tuy nhiên có một số khuyết điểm sau:

 Phải cung cấp một lượng lớn dữ liệu đào tạo

 SMT không hề biết gì về cấu trúc cú pháp cơ bản của thuật toán trên câu trong hệthống dịch máy

 Yêu cầu về chuyên môn ở từng lĩnh vực

 Khó khăn trong việc chọn nghĩa cho từ (một từ có nhiều nghĩa)

 Dịch máy thống kê (SMT) là một phương pháp dịch máy, trong đó các bản dịch đượctạo ra trên cơ sở các mô hình thống kê có các tham số được bắt nguồn từ việc phântích các cặp câu song ngữ

Dịch máy thống kê trên cơ sở từ

Trong bài báo cáo này, em xin trình bày công cụ Giza++ ứng dụng trong dịch máy thống

kê (SMT) trên cơ sở từ Trong dịch máy thống kê trên cơ sở từ, các đơn vị cơ bản của bảndịch là một từ trong ngôn ngữ tự nhiên Giza++ dùng để tập huấn cho các mô hình dịch IBM,

mô hình HMM Hầu hết các hệ thống dựa trên cụm từ vẫn còn sử dụng Giza++ để liên kếtcâu, trích rút ra các cặp câu song ngữ và mô hình ngôn ngữ Vì những ưu thế của Giza++,hiện nay có một số nỗ lực đưa áp dụng tính toán phân tán trực tuyến cho phần mềm này.Phần II của bài báo cáo nêu sơ lược về các tính năng của công cụ Giza++

Trang 4

Phần III giới thiệu các mô hình dịch thuật thống kê dựa trên các mô hình dịch thuật thống

kê của IBM, tiến trình huấn luyện các mô hình, phương pháp xây dựng công cụ Phần IV càiđặt và ứng dụng Giza++ trên hệ điều hành Linux Ubutun với phần mềm GIZA++ v.1.0.3

2 Các tính năng của công cụ:

 Bộ công cụ dịch máy thống kê EGYPT chứa GIZA một chương trình huấn luyện các môhình dịch máy thống kê từ cặp câu song ngữ GIZA được viết bằng C++ với thư việnSTG (kiểm tra bằng cách sử dụng gnu C++)

http://www.clsp.jhu.edu/ws99/projects/mt/toolkit/

(được phát triển trong tổ chức WS’99 Summer Workshop organized bởi trung tâmLanguage and Speech Processing của Johns Hopkins University)

 GIZA++ là một phần mở rộng chương trình GIZA

 Ngày nay, GIZA++ được sử dụng để sắp xếp từ ngữ liệu song ngữ, sự sắp xếp này là

cơ sở để xây dựng các mô hình dựa trên cụm từ, một kĩ thuật chính trong dịch máythống kê

Gói chương trình GIZA++ và các tính năng

 Plain2snt.out: công cụ đơn giản để chuyển đổi văn bản vào định dạng GIZA

 Plain2snt.out: công cụ đơn giản để chuyển đổi GIZA vào văn bản rõ

 TrainGIZA++.sh: Mẫu kịch bản để thực hiện huấn luyện một ngữ liệu trong định dạngGIZA

 mkcls: tính toán các lớp từ trong một ngữ liệu đơn giản

 snt2cooc: tạo ra tập tin dạng coocurrence

Trong hệ thống dịch máy thống kê MOSES (2010), GIZA++ được sử dụng kết hợp với các

Trong đó, Sử dụng công cụ SRILM để xây dựng mô hình ngôn ngữ tri-gam

Công cụ xây dựng mô hình dịch: GIZA++-v2, mkcls-v2 Trong đó, Sử dụng GIZA++ để xâydựng mô hình dịch và dùng mkcls để ước lượng giá trị cực đại cho mỗi mô hình

Trang 5

3 Nguyên lý thiết kế và phương pháp xây dựng công cụ

Theo em, nguyên lý thiết kế dựa vào các mô hình IBM 1-5, mô hình HMM để huấn luyện cách dịch tự động

3.1 Các mô hình huấn luyện:

Trang 6

Độ dài của xác suất: Pr(J | y) ≈ n(J |I )

Thống kê từ vựng

Thống kê sắp xếp Thống kê từ vựng

Trang 7

Tối ưu hóa liên kết với Model 2

Tìm sự sắp xếp tốt nhất từ

Cách sử dụng Model 2:

Thuật toán Viterbi (x, y, l, a)

For j := 1 until J A[j] := argmax a(i | j, J, I ) · l(xj | yi) End-for

0<=i<=I Return: A

Chi phí tính toán của thuật toán này là: O( J X I ).

Trang 8

Xét một từ nguồn yi, số vị trí trống bao gồm cả vị trí j được đặt trước τi,k,là:

f (φi | yi) khả năng tạo ra xác suất

l(x | yi) xác suất từ vựng

d=1(vj | CX (xj ), vc(i−1), vJ − φi + 1) · (1 − δ(vj , vj−1)) xác suất nhập nhằng của

vị trí đầu tiên của bảng tính

d>1(vj − vπi,k−1 |CX (xj ), vJ − vπi,k−1 − φi + k) · (1 − δ(vj , vj−1)) xác suất nhập nhằng của các vị trí còn lại trong bảng tính

3.2 Quá trình huấn luyện:

Theo P F Brown thì quá trình huấn luyện có các đặc điểm sau:

* Mỗi mô hình đều có 1 tập hợp cụ thể các thông số tự do

Trang 9

* Ví dụ cho mô hình IMB 4:

* Để huấn luyện cho các thông số của mô hình, sử dụng một ngữ liệu đào tạo song song bao gồm các cặp câu S:

* Huấn luyện được thực hiện bằng cách sử dụng thuật toán EM(Expectation-Maximization).Giải thuật EM là cách gọi chung của giải thuật lặp (iterative) với một giá trị ban đầu chocác tham số của mô hình và sau đó hiệu chỉnh các giá trị này qua mỗi lần lặp nhằm gia tăng

độ tin cậy (likelihhood) của dữ liệu quan sát được

Những biểu hiện cụ thể của giải thuật EM đã được áp dụng cho một số bài toán khácnhau trong xử lí ngôn ngữ tự nhiên như:

 Để ước lượng tham số của mô hình HMM,

ta dùng phiên bản của giải thuật EM có tên

là Baum-Welch hay Forward-Backward

 Để ước lượng tham số của văn phạm xác suất, ta dùng phiên bản của giải thuật EM

có tên là Inside-Outside

 Để làm trơn (trơn) trong mô hình dựa trên HMM, ta dùng phiên bản của giải thuật

EM có tên là Linear Interpolation (nội suy tuyến tính)

* Tối ưu khả năng xảy ra bởi thuật toán EM

* Không có phương pháp hiệu quả để tính toán các số lượng ước tính

* Số lượng ước tính gần đúng bởi:

 Tính toán liên kết (gần đúng) nhất có thể xảy ra

 Áp dụng các sửa đổi: di chuyển và đổi chỗ

 Tổng các số lượng ước tính cho tất cả sự sắp xếp có xác suất lớn hơn xác suất của sốlần liên kết có thể xảy ra

 Xem chi tiết hơn P F Brown et al The mathematics of statistical machinetranslation: parameter estimation Computational Linguistics, vol 19 (2),263–310, 1993

3.3 Phương pháp xây dựng công cụ:

Trong phần phương pháp xây dựng công cụ, em xin đề cập đến các vấn đề sau:

 Định dạng file input là các file từ vựng, các file dạng bitext, file từ điển

 Cách cấu hình cho file GIZA++

Trang 10

 Định dạng file output là các bảng xác suất.

** Định dạng file input: các file từ vựng

Mỗi mục được lưu trữ trên một dòng như sau:

uniq_id1 string1 no_occurrences1 uniq id2 string2 no occurrences2 uniq id3 string3 no occurrences3

.Sau đây là một ví dụ:

File từ vựng nguồn File từ vựng đích

uniq_ids là các số nguyên dương có thứ tự

0 được dành riêng cho thẻ đặc biệt NULL

** Định dạng file input: file bitext

Mỗi cặp câu được lưu trữ trên 3 dòng:

 Dòng đầu tiên là số lần của mỗi cặp câu

 Dòng thứ 2 là câu nguồn đã được mã hóa bằng cách sử dụng các tập tin từ vựng

 Thứ 3 là câu đích trong cùng một định dạng

Đây là một mẫu của 3 câu:

1

Trang 11

** Định dạng file input: file từ điển

 Tập tin từ điển có định dạng như sau:

target word id source word id

 Danh sách phải được sắp xếp theo target word id

 Nếu 1 từ điển được cung cấp trong các tập tin cấu hình GIZA++ sẽ làm thay đổi bộđếm cooccurrence trong phiên làm việc đầu tiên của model 1 đó là đặc điểm của sựràng buộc trong từ điển

** Cấu hình file GIZA++:

model1iterations 5 (số lần lặp của Model 1)

model2iterations 0 (số lần lặp của Model 2)

model3iterations 5 (số lần lặp của Model 3)

model4iterations 5 (số lần lặp của Model 4)

model5iterations 0 (số lần lặp của Model 5)

model6iterations 0 (số lần lặp của Model 6)

// tham số chứa các heuristics khác nhau trong GIZA++ đánh giá hiệu quả của huấn luyện

mô hình :

Trang 12

//

countincreasecutoff 1e-06 (biến đếm tăng ngưỡng cutoff)

countincreasecutoffal 1e-05

// (biến đếm tăng ngưỡng cutoff cho liên kết trong đào tạo các mô hình tạo sinh)

mincountincrease 1e-07 (tăng số lượng tối thiểu)

peggedcutoff 0.03

// (mối quan hệ xác suất cutoff cho alignment-centers trong pegging)

probcutoff 1e-07 (ngưỡng xác suất cutoff trong xác suất từ vựng)

probsmooth 1e-07 (giá trị trơn xác suất)

// các thông số cho sự mô tả kiểu và số lượng của output:

//

-compactalignmentformat 0

// (0:định dạng chi tiết alignment, 1: định dạng alignment dạng rút gọn )

hmmdumpfrequency 0 (tần suất kết xuất của HMM)

// l (tên log file)

log 0 (0: không logfile; 1: logfile)

model1dumpfrequency 0 (tần suất kết xuất của Model 1)

model2dumpfrequency 0 (tần suất kết xuất của Model 2)

model345dumpfrequency 0 (tần suất kết xuất của Model 3/4/5)

nbestalignments 0 (in n sự sắp xếp tốt nhất)

nodumps 0 (1: không ghi ra bất kì file nào)

// o (output file dạng tiền tố)

onlyaldumps 0 (1: không ghi ra bất kì file nào)

// outputpath (đường dẫn output)

transferdumpfrequency 0 (output: dump của chuyển từ Model 2 sang 3)verbose 0 (0: không phức tạp; 1: phức tạp)

Trang 13

-// s (tên file từ vựng nguồn)

// (tham số smooting cho xác suất biến thể trong Model 5

// (phép nội suy tuyến tính với hằng số)

nsmooth 64

// (trơn cho các tham số sản sinh (giá trị tốt là : 64):

// giá trị của độ dài từ phụ thuộc vào các tham số sản sinh )

nsmoothgeneral 0

//(trơn cho các tham số sản sinh (default: 0):

// số lượng từ phụ thuộc các tham số định dạng cho các mô hình)

// Các thông số định dạng cho các mô hình:

// -

compactadtable 1

// (1: bảng sắp xếp 3 chiều cho IBM-2 và IBM-3)

deficientdistortionforemptyword 0

// (0: IBM-3/IBM-4 được mô tả trong (Brown et al 1993);

// 1: mô hình biến thể của từ rỗng bị thiếu;

// 2: mô hình biến thể của từ rỗng bị thiếu (khác mô hình kia);

// thông số này được thiết lập giúp ta tránh được lỗi trong suốt quá trình huấn luyện // theo mô hình IBM-3

// và IBM-4 nhiều từ liên kết với từ rỗng )

depm4 76

Trang 14

// (d_{ 1}: &1:l, &2:m, &4:F, &8:E, d_{>1}&16:l, &32:m, &64:F, &128:E)

depm5 68

// (d_{ 1}: &1:l, &2:m, &4:F, &8:E, d_{>1}&16:l, &32:m, &64:F, &128:E)

emalignmentdependencies 2

// (lextrain: phụ thuộc liên kết trong mô hình HMM)

// &1: độ dài câu;

// &2: lớp (class) trước;

// &4: vị trí trước;

// &8: vị trí tiếng Anh;

// &16: lớp tiếng Anh)

emprobforempty 0.4 (f-b-trn: xác xuất cho từ rỗng)

// các tham số định nghĩa cho thuật toán EM:

// - m5p0 -1

// (sửa giá trị cho tham số p_0 trong IBM-5 (nếu âm thì nó được quyết định

// trong lúc huấn luyện))

// (sửa giá trị cho tham số p_0 trong IBM-3/4 (nếu âm

// sẽ được quyết định trong lúc huấn luyện))

pegging 0 (0: không pegging; 1: do pegging)

** Định dạng file output: các bảng xác suất

1 Bảng dịch ( *.t*.* )

prob table.t1.n = t bảng được tạo ra sau khi huấn luyện Model 1 được lặp đi lặp lại prob table.t2.n = t bảng được tạo ra sau khi huấn luyện Model 2 được lặp đi lặp

Trang 15

prob table.4.n = t bảng được tạo ra sau khi huấn luyện Model 4 được lặp đi lặp

Mỗi dòng có định dạng sau:

s id t id P (t id|s id)

2 Khả năng tạo bảng mới (*.n3.* )

Mỗi dòng trong file này có dạng sau:

source token id p0 p1 p2 pn nơi mà p0 là xác suất mà token nguồn không

có khả năng tạo ra (nên=0) Tương tự p1 là 1, p2 là 2, n là khả năng tạo sinh tối đa cóthể được định nghĩa trong chương trình

3 Xác suất chèn 1 NULL sau một từ nguồn chứa chỉ 1 dòng với xác suất không chèn một token NULL.

4 Các bảng liên kết (*.a*.*)

Định dạng mỗi dòng như sau:

i j l m P (i | j, l, m)

Trong đó:

j = vị trí trong câu đích i = vị trí của câu nguồn

l = độ dài của câu nguồn m = độ dài của câu đích

và P (i|j, l, m) là xác suất mà một từ nguồn trong vị trí i được di chuyển tới vị trí j trong một cặp câu với độ dài là l và m

5 Bảng biến thể (*.d3.*)

Định dạng giống như bảng liên kết như vị trí của i và j đảo ngược

j i l m P (j | i, l, m)

6 Bảng biến thể của IMB-4 (*.d4.*)

7 Bảng biến thể của IBM-5 (*.d5.*)

8 Xác suất liên kết của mô hình liên kết HMM

9 File hỗn hợp (*.perp)

10 Tập tin sửa đổi từ vựng (*.src.vcb,*.trg.vcb)

11 File chứa các tham số cuối cùng (*.gizacfg)

3.4 Ứng dụng các mô hình:

Cho câu tiếng Anh đầu vào e, tìm câu tiếng Việt v sao cho xác suất điều kiệnP(v|e) là lớn nhất Do v và e phụ thuộc lẫn nhau,nên theo lý thuyết xác suất có điềukiện: Công thức Bayes

argmax(P(v|e)) = argmax(P(v) * P (e|v))

Trang 16

P(v)= p(v1,v2,…,vI) = p(v1) p(v2|v1)…p(vI|v1,v2,…,vI-1)

+ Giả thuyết Markov:

-N-gram: cụm n-từ liên tiếp

- Xấp xỉ n-gram:P (vI |v1, v2,…, vI-1) ≈ p (vI| vI-n+1, vI-n+2,…, vI-1)

- Trigram(n=3):P(v)= p(v1,v2,…,vI) = ∏ p(vk | vk-2 vk-1)

k=1,…,I

Ví dụ: v = "Tôi đang đọc sách" (I=4) p(Tôi đang đọc sách) = p(Tôi | <bắt-đầu-câu><bắt-đầu- câu>) * p(đang | <bắt-đầu-câu>Tôi) *

p(đọc | tôi đang) *

Trang 17

Tính p(z|xy):P(đọc|tôi đang)= c(tôi đang đọc)/ c(tôi đang)

Vì chúng ta không thể tính chính xác:

Nên chúng ta sử dụng mô hình trigram dể tính gần đúng,mỗi ek-2 , ek-1, ek được gọi là tri-gram

Phương tri-gram được làm trơn:

Trang 18

Trong đó:

Để chọn được một liên kết tốt nhất thì phải chạy mô hình dịch từ 1 đến 5 thông qua một sốcác vòng lặp của thuật toán ước lượng giá trị cực đại (Estimation Maximization Algorithm) cho từngthông số của mô hình

MÔ HÌNH DỊCH DỰA TRÊN ĐƠN VỊ TỪ

IBM Model 1-5:

 Phương pháp sinh: chia quá trình gióng hàng thành các bước nhỏ hơn Mô hình hóacác bước đó bằng các xác suất điều kiện dựa trên các giả thuyết đơn giản

 IBM Model1: ví dụ với |e|=J, |v|=I

Bước 1: Xác định độ dài câu e

Bước 2: Chọn gióng

Bước 3: Chọn dịch tương ứng các từ tiếng Việt sang tiếng Anh

IBM MODEL 1

Xác suất p(e|v):

Trang 19

Đưa ra các mô hình IBM Model 2, 3,4 và 5 để có giả thuyết khái quát hơn.

Hạn chế của các mô hình IBM:

 Chỉ giải quyết được gióng hàng 1-nhiều

 Không giải quyết được gióng hàng nhiều-nhiều

 Gióng hàng theo đơn vị cụm từ (phrase)

Từ các khả năng dịch ta tìm ra câu dịch tốt nhất:

Mở rộng không gian giả thuyết:

Giảm bớt số lượng giả thuyết:

Trang 20

GIZA++ v.1.0.3

Biên dịch GIZA++

Để dùng được Giza++ ta cần download, biên dịch source code

Bước 1: Source được download từ

http://code.google.com/p/giza-pp/downloads/detail?name=giza-pp-v1.0.3.tar.gz&can=1&q=.Bước 2: Biên dịch và chạy tool này trên Ubuntu Linux 10.04, trước tiên cần cài đặt trình biêndịch G++ Trong Ubuntu terminal gõ:

apt-get install gcc g++

Bước 3: Download source về, giải nén bằng các lệnh gunzip và tar

Bước 4: Chuyển vào thư mục giza-pp, gõ make để biên dịch

Sau khi thực hiện xong 4 bước trên ta tiến hành chuẩn bị dữ liệu để chạy GIZA

 Dùng GIZA++ để huấn luyện ta cần có kho ngữ liệu, kho ngữ liệu song ngữđược định dạng ban đầu thành 2 file theo 2 ngôn ngữ mong muốn, các dòngtrên 2 file theo thứ tự tương ứng với nhau

Ngày đăng: 29/07/2018, 18:54

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w