Việc đánh giá độ chính xác được xác định thông qua việc so sánh các bracket với
nhau. Hai bracket gọi là giống nhau nếu các thành phần trong đó giống hệt nhau. Với
định nghĩa này ta có hai đại lượng để so sánh là recall và precision
78 trang |
Chia sẻ: lylyngoc | Lượt xem: 2610 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn Phân tích cú pháp tiếng việt theo tiếp cận thống kê, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ách không liên
45
quan đến nhau, nếu như thành phần bổ trợ hiện tại đứng ngay trước head (điều này làm
cho cv (“contain verb”) luôn trả về giá trị false đối với NPBs). Ngoài ra, các nút NPB
không bao giờ được coi là thành phần liên kết các cụm từ và CCs chi phối bởi NPB
không bao giờ sử dụng tham số PCC, mặc dù, nó sử dụng các tham số được sinh ra
khác. Dấu câu bị chi phối bởi NPB, được tạo ra thông qua tham số Ppunc, nhưng chủ
yếu các thành phần bổ trợ được liên kết với head tạm thời (pseudo head) thông qua
những thành phần bổ trợ được tạo ra trước đó. Khi tạo ra các thành phần bổ trợ bên
phải Ri, các thành phần bổ trợ trướ đó (cùng phía với Ri) không bao giờ là các dấu câu,
nhưng lại là những ký tự tiền kết thúc thật sự.
Một ngoại lệ khác của thành phần NP cơ bản là sự so sánh giữa các char item dự
vào luật cắt bỏ cây và cắt bỏ theo khoảng (beam-pruning).
4.1.3.6. Tham số ứng với độ ưu tiên của các ký tự không kết thúc được từ vựng
hóa
Trong bộ phân tích cú pháp của Collins, dành cho các ký tự không kết thúc được
từ vựng hóa có hai loại tham số, hai loại này tính toán những lề tương đồng dành cho
ký tự không kết thúc chứa yếu tố từ vựng (lexical nonterminal). Những lề này là những
giá trị thô của xác suất bên ngoài chart item (xem (Barker, 1979, Lari và Young, 1990)
thuật toán Inside-Outside). Những nghiên cứu trước đây chỉ ra rằng, chỉ những xác
suất bên trong thì chưa đủ để làm độ đo khi so sánh các chart item trong cùng một
khoảng thời gian khi thực hiện decoding, do đó các xác suất bên ngoài chart item cũng
phải là thừa số đề so sánh.
Như vậy ta sẽ có công thức sau:
20
4.1.3.7. Trọng số làm trơn
Hầu hết các loại tham số trong mô hình của Collins, cũng như trong hầu hết các
mô hình phân tích cú pháp dựa vào thống kê, là xác suất điều kiện với nhiều điều kiện
và trường hợp khác nhau. Các điều kiện và trường hợp này được thể hiện thông qua
tập các sự kiện trong quá trình xử lý. Thông thường với tiếp cận sử dụng thống kê, quá
trình huấn luyện thường đòi hỏi tập dữ liệu dùng để huấn luyện càng lớn càng tốt, do
vậy các điều kiện và trường hợp cũng lớn dần theo. Giải pháp ở đây là ta phải thực
hiện việc là trơn các phân phối xác suất (smoothing) nếu như có quá nhiều giá trị bằng
0 (các trường hợp này không hề xảy ra, ta có thể lấy ví dụ như trong tiếng việt cụm từ
“vui vẻ” có tồn tại nhưng cụm từ “vẻ vui” không tồn tại nên nếu thực hiện xác định
phân bố xác suất thì “vẻ vui” có xác suất bằng 0, tập dữ liệu càng lớn, mật độ các xác
suất bằng 0 càng tăng lên). Trong bộ phân tích cú pháp của mình, Bikel thừa kế
phương thức làm trơn xác suất của Collins là sử dụng “deleted interpolation”, làm
trơn xác suất dựa trên phân phối phụ thuộc đầy đủ vào ngữ cảnh và một phần của ngữ
cảnh, thực hiện việc xóa thành phần trong ngữ cảnh tại mỗi mức back-off. Giả sử việc
làm trơn xác suất của tham số head sẽ là với và
. Giả sử ta có một xác suất điều kiện , gọi hàm loại bỏ ngữ cảnh tại
mức back-off thứ i là , với . Trong một chuỗi back-off xác suất được
46
ước lượng dựa vào phương pháp maximum likelihood, và xác suất sau khi làm trơn
được tính toán dựa vào n – 1 trọng số làm trơn (với n mức back-off) được ký hiệu là
. Sử dụng cách định nghĩa đệ quy, ta sẽ có với trọng số tại
mỗi mức back-off là được tính như sau:
21
Dễ dàng để chứng minh được rằng nếu
22
thì
23
- Mô hình không đầy đủ
Như ở trên ta thấy, việc sử dụng mô hình n mức back-off cần có n – 1 trọng số
làm trơn, tuy nhiên, cũng giống như Collin, Bikel đưa thêm một hằng số rất nhỏ (cỡ
10-19) làm tham số thứ n. Việc thêm hằng số này vào có thể làm cho bộ phân tích cú
pháp trở nên kém cỏi, vì nó kết thúc bằng việc sử dụng một hằng số. Việc này sẽ
không đảm bảo cho phương trình 23 đúng.
- Thừa số và giới hạn làm trơn.
Để xác định trọng số làm trơn, bộ phân tích cú pháp sử dụng công thức sau:
24
trong đó ci = count (history context of ) và ui là số lượng các ngữ cảnh. Ở đây,
hằng số 5 có tác dụng làm giảm độ lớn của trọng số làm trơn, làm cho trọng số nhỏ đi
so với mỗi mức back-off. Để đưa ra được giá trị này, Bikel đã thực hiện một số thông
kê và quan sát trên tập dữ liệu. Hằng số này được đặt tên là thừa số làm trơn
(smoothing factor), ký hiệu là ff. Như vậy ta sẽ có công thức sau:
25
với ft là giới hạn làm trơn. Với mỗi loại tham số, ngoại trừ tham số subcat và
, thì ft = 0 và ff = 5. Đối với tham số subcat thì ngược lại tức là ft = 5 và ff = 0,
với là ft = 1 và ff = 0. Điều này được giải thích bởi vì, trong khi làm trơn các
xác suất tạo ra subcat thì tính đa dạng không xảy ra. Trường hợp thứ hai xảy ra khi
ngữ cảnh không được quan sát trên tập huấn luyên v.v…, khi ấy ci = ui = 0. Trong
trường hợp này , các xác suất còn lại nhận giá trị thông qua trọng số ngay sau đó
.
47
4.1.3.8. Bộ sinh các bổ trợ cho head word
Như ta đã biết, một ký tự không kết thúc khi có đầy đủ các thông tin từ vựng
được tạo ra thông qua hai bước (xem 4.1.2.c). Bước đầu tiêp nhãn và nhãn từ loại được
tạo ra như trường hợp PL hoặc PR. Tiếp theo head được tạo ra nhờ một trong hai đối
tượng PL hoặc PR. Tham số back-off được đưa ra được miêu tả như sau:
Bảng 7: Các mức back-off với
Back-off level
0
1
2
Ở đây với mức cuối, khác hẳn 2 mức trên là do việc loại bỏ hoàn toàn các thành
phần đi. Ở đây, Collins sử dụng từ xuất hiện ở hai phía để ước lượng xác suất. Tuy
nhiên, trong bộ phân tích cú pháp của Bikel, Bikel chỉ sử dụng một lớp chung cho
công việc so với việc sử dụng hai thành phần để đánh giá như Collins. Bằng cách đưa
thêm một tham số logic side để xác định phía
Bảng 8: Tham số do Bikel đề xuất
Back-off
level
0
1
2
Một vấn đề nữa đó là việc ánh xạ các từ chưa biết (unknow word). Đối với một
số từ do tần sô xuất hiện quá thấp sẽ được gán nhãn là +unknow+, và sau đó nó phải
được khôi phục lạ là từ ban đầu. Trong bộ phân tích cú pháp của Bikel, đưa ra một số
phương thức tính toán để thực hiện việc này.
4.1.3.9. Lớp tham số TOP
Tất cả các cây đều có thể được tạo ra bởi mô hình sử dụng một ký tự không kết
thúc nhãn là +TOP+, nhãn cha của gốc cây. Thông tin về từ vựng của ký tự không kết
thúc head được sinh ra dựa vào nút +TOP+ (có xác suất ưu tiên là 1.0) bằng cách sử
dụng tham số . Trong luận văn Collin đã miêu tả chi tiết về tham số đặc biệt này.
Có hai loại tham số được dùng để quan sát gốc của cây, một tham số được sinh ra bởi
48
ký tự không kết thúc đánh dấu gốc cây và được chèn thêm các thông tin từ vựng
(ngoài nhãn của nút còn có nhãn từ vựng, nhãn của ký tự không kết thúc), tham số còn
lại sinh ra head word trong mỗi câu, được gọi là và . Những tham số này
liên quan đến một số kết quả không được Collin công bố trong bài báo của ông.
Bảng 9: Cấu trúc back-off đối với các tham số
Back-off level
0 +TOP+ t, H, +TOP+
1 n/a t
Chú ý rằng, có backs off tương đương với ước lượng . Tức là, xác
suất xuất hiện word khi nhãn của ký tự không kết thúc là tag. Ở đây, có một sự khác
biệt giữa mức back-off cuối cùng trong tham số bổ trợ của head-word, thành phần có
xác suất là trong không gian các từ tiền kết thúc được từ vựng hóa. Sự khác
nhau đó là trong cùng một câu, cùng một head word xuất hiện có thể cùng với một tag
trong nhiều nút. Mặc dù vậy, Collins vẫn sử dụng hàm đếm chia sẻ các mức cuối của
back-off với tham số khi thực hiện ước lượng xác suất cho tham số . Còn
trong bộ phân tích của Bikel, trong mọi trường hợp việc đếm sẽ được chia sẻ với tham
số , đối với tham số chỉ là một sự mô phỏng.
4.1.4. Decode
Trong bộ phân tích cú pháp của mình, Bikel sử dụng thuật toán CKY (Cook –
Kasamy – Young) phân tích cú pháp dựa vào chart và xác suất. Thuật toán phân tích
dựa vào chart sử dụng đồng thời phân tích top – down và bottom – up.
- Chart item: mục tiêu của quá trình decoding là xác định giả thiết giống nhau
nhiều nhất giữa các đối tượng (maximally-likely theory), nếu trong quá trình decoding
các chart item là tương đương với các item khác trong chart, thì item nào có xác suất
lớn hơn sẽ được tồn tại. Độ tương đồng giữa các chart item được đánh giá bằng khả
năng tạo ra các tham số được sử dụng để tạo ra các dẫn xuất: chúng ta đối xử với hai
chart item như là không tương đương nếu chúng biểu diễn dẫn xuất mà được coi như
không tương đương dựa vào các thành phần đầu ra và điều kiện ngữ cảnh của các tham
số đã tạo ra nó, đưa ra giả thuyết về độc lập của mô hình. Ví dụ về hai chart item được
cho là tương đương khi chúng có cùng môt nhãn (nhãn của nút gốc của cây dẫn xuất),
cùng một head word và tag, và có cùng tập subcat trái và phải. Ngoài ra, chúng cần có
cùng nhãn của head giống nhau (nhãn của nút head).
Nếu một chart item có nhãn của nút gốc là NP, nhãn của head thường là nhãn
NPB, đưa thêm một nút NP thêm vào trong quá trình tiền xử lý để đảm bảo cho nhãn
NPB luôn bị ảnh hưởng bởi nhãn NP. Trong trường hợp này, sử dụng một con trỏ
ngược trỏ vào nút NP cơ bản (base NP). Ở đây, có một sự khác giữa bộ phân tích cú
pháp của Collin và của Bikel, Collins cho rằng nhãn head của nút NP trong chart item
không là NPB, chính xác hơn là nhãn head của NPB chart item. Ngoài ra, để có được
49
nhãn của head của một chart item có NP, chúng ta cần dựa vào nút NPB và nhãn của
nút NPB. Có được điều đó là do trong một số trường hợp ta coi các nút NPB như là
nút được thêm vào. Điều đó làm cho độ chính xác của bộ phân tích tăng lên một chút.
- Lược bỏ: Mọi item đều được giữa lại nhưng chúng ta chỉ lựa chọn những item ở
trên cùng. Vì vây, để tăng tốc, trong bộ phân tích cú pháp, Collins đưa ra ba kiểu loại
bỏ. Đầu tiên đó là sử dụng một thông tin: chart nhớ tất cả các dẫn xuất có xác suất lớn
nhất trong mỗi giai đoạn phân tích, và nếu như chart item không mỗi bước không nằm
trong các thừa số có xác suất lớn nhất thì chart item không được đưa vào chart. Trong
bộ phân tích, Collin đưa ra giá trị 105. Giá trị này thay đổi tùy thuộc vào ngôn ngữ
cũng như kinh nghiệm khi chạy dựa trên tập dữ liệu. Nếu chart item biểu diễn dẫn xuất
với NP và NP-A có nhiều hơn một nút con, giá trị này sẽ là 104.e3.
Một loại nữa đó là phụ thuộc của sự kiện vào dấu phẩy. Qua quá trình thống kê
trên Penn Treebank, Collins nhận thấy khoảng 90%, khi một yếu tố chứa dấu phẩy, từ
ngay cuối cùng của chu kỳ đang xét là dấu phảy hay là từ cuối cùng của câu. Dấu phẩy
thường được sử dụng thường xuyên với cụm nằm trong dấu ngoặc. Vì vậy, nếu dấu
phẩy trong câu đầu vào xuất hiện sau một dấu mở ngoặc và trước dấu đóng ngoặc hoặc
ở cuối câu, dấu phẩy này không được xét trong sự phụ thuộc trên. Việc sử dụng sự phụ
thuộc vào dấu phẩy có thể làm tăng độ chính xác của mô hình.
Cuối cùng, một kiểu loại bỏ nữa là với mỗi ô của chart, sẽ chứa các item bao
gồm các đoạn trong câu, Collin sử dụng nhóm các item mà có cùng nhãn của nút gốc
trong quá trình dẫn xuất. Chỉ có 100 item có xác suất cao nhất mới được lưu trong
nhóm này. Một chart có xác suất cao mới được đưa vào nhóm, những thành phần nhỏ
sẽ bị loại ra, như vậy trong nhóm sẽ có 100 item có cùng một khoảng và cùng nhãn
trong một chart. Tuy nhiên, Bikel không đưa kiểu loại bỏ này vào trong bộ phân tích
của mình vì hiệu quả của nó không cao.
- Từ và nhãn chưa xác định
Trong quá trình tiền xử lý, nếu các từ xuất hiện dưới một ngưỡng (Bikel lấy giá
trị này là 5) thì đều được gán nhãn là +UNKNOW+ trong quá trình phân tích. Trong
quá trình phân tích, nếu gặp một từ không xác định, nhãn tốt nhất sẽ được gán dựa vào
bộ gán nhãn của Ratnaparkhi (Ratnaparkhi, 1996). Một bộ từ điển các nhãn sẽ được
xây dựng nếu quá trình huấn luyện chứa các thực thể cần được quan sát kể cả những từ
có tần số xuất hiện thấp. Khi đó, nếu thực hiện decoding, đầu ra của bộ gán nhãn chỉ
sử dụng đối với từ không xác định, không được quan sát trong khi huấn luyện. Đối với
những từ khác, chart liên kết với các item phân chia mỗi nhãn quan sát với một từ
trong quá trình huấn luyện
4.2. Tổng quan về bộ phân tích cú pháp.
4.2.1. Mở đầu
Trong phần này, chúng ta sẽ đi sâu vào tìm hiểu bộ phân tích cú pháp của Bikel,
để thấy được khả năng linh hoạt trong việc xử lý đối với các ngôn ngữ khác nhau.
Ngoài ra, bộ phân tích cú pháp còn khá thành công trong việc xây dựng một hệ thống
có khả năng xử lý song song.
50
4.2.2. Vấn đề cơ bản
4.2.2.1. Cấu trúc xác suất plug-‘n’-play và xử lý song song giữa các mức câu:
Cấu trúc xác suất từ vựng trong WordNet có tính chất đa dạng (Bikel, 2000). Từ
sự phát hiện đó, Bikel đã phát triển kiến trúc “plug-‘n’-play” cho cấu trúc xác suất từ
vựng. Bikel thừa kế và mở rộng mô hình của mình từ hệ thống BBN’s SIFT (Miller et
al., 1998), hệ thống dựa vào history-base model và dẫn xuất từ mô hình hai của
(Collins, 1997).
Để tính toán, ước lượng các xác suất, bộ phân tích cú pháp BBN có một thành
phần khởi tạo các đối tượng dữ liệu để biểu diễn cho đặc trưng và sự kiện trước đó,
ước lượng maximum-likelihood đối với với là hàm đếm các sự
kiện trong dữ liệu huấn luyện. Trong kiến trúc của Bikel, có một lớp trừu tượng
(abstract layer) có nhiệm vụ tính toán giá trị trước đối với từng mức back-off khác
nhau trong bộ phân tích cú pháp, trong mã giả, việc khởi tạo đối tượng trước trở nên
đơn giản:
history = probabilityStructure.get (backOffLevel, fullContext);
Ngoài ra, Bikel còn giúp cho hệ thống xử lý nhanh hơn bằng quá trình xử lý song
song thông qua việc phát triển đa luồng các sentence server, cung cấp song song các
câu ở các mức khác nhau trong cụm môi trường tính toán.
4.2.2.2. Độc lập về ngôn ngữ
Trong bộ phân tích cú pháp này, Bikel mở ra khả năng phát triển bộ phân tích đa
ngôn ngữ. Bikel và Chiang (2000) đã áp dụng các mô hình phân tích cú pháp (dẫn xuất
của bộ phân tích cú pháp BBN’s SIFT và bộ phân tích cú pháp thống kê của David
Chiang) cho bộ phân tích cú pháp tiếng Trung. Nhìn chung độ chính xác của bộ phân
tích cú pháp tiếng Trung không khác nhiều so với bộ phân tích cú pháp tiếng Anh, việc
đánh giá này được thực hiện trên tập ngữ liệu và tập test của mỗi loại ngôn ngữ. Sự
khác nhau chính ở đây là do mỗi ngôn ngữ sử dụng các ký tự khác nhau và chức năng
của một số nhãn từ loại trong ngôn ngữ. Qua đó, nhận thấy rằng bộ phân tích này có
thể hoạt động tốt mà không phụ thuộc vào ngôn ngữ nào, nó cho phép ta tạo ra các gói
ngôn ngữ (chứa các dữ liệu và phương thức của ngôn ngữ theo cấu trúc của Treebank).
4.2.3. Tổng quan về hệ thống
Bộ phân tích cú pháp của Bikel hỗ trợ cho mô hình phân tích cú pháp dựa vào
head (thành phần trung tâm), bao gồm hệ thống BBN’s SIFT, cũng như hỗ trợ mô hình
2 và 3 của Collins (Collins 1997).
51
Hình 24: Các thành phần và luồng làm việc
52
Luồng điều khiển SwitchBoard có tác dụng điều phối quá trình tính toán. Thành
phần CYK decoder client và DecoderServer chạy trên các máy chủ đang hoạt động
(available hosts), hoặc chạy trên bộ đa xử lý địa phương (local mutiprocessor) hoặc
máy chủ trên mạng (thông thường là mạng cục bộ - LAN). Khi bắt đầu chạy bộ
decoder và DecoderServer đều thông báo cho SwitchBoard. Sau đó, mỗi bộ decoder
gửi yêu cầu đến SwitchBoard để nhận về thông tin về DecoderServer để có thể liên kết
được với DecoderServer. Cuối cùng, decoder thực hiện vòng lặp chờ đợi các câu chưa
xử lý được gửi tới từ SwitchBoard. Khi tất cả các câu trong tập tin được xử lý,
SwitchBoard thu thập các câu có trong câu đầu vào (input file) để đưa ra tập đẩu ra
(output file). Khi toàn bộ các câu đã được xử lý, SwitchBoard có nhiệm vụ hủy tất các
các decoder và DecoderServer.
Hệ thống được thiết kế cho phép sự kết nối lỏng lẻo giữa decoder và
DecoderServer. Tuy nhiên, nếu như máy tính có đủ dung lượng bộ nhớ và CPU tốt
cung cấp cho mô hình và decoder, nó sẽ có hiệu quả rất lớn khi mỗi decoder tự động
kích hoạt DecoderServer riêng và kết nối trực tiếp đến DecoderServer thông qua giao
thức mạng.
Cơ chế xử lý lỗi Nếu bất kỳ một decoder nào không hoạt động, quá trình xử lý sẽ
không bị đứt quãng, nếu như decoder không hoạt động trong khi phân tích một câu,
SwitchBoard sẽ đảm bảo rằng câu đó sẽ được phân tích bởi một decoder khác. Nếu bất
kỳ một DecoderServer không hoạt động nữa, tất cả decoder kết nối đến DeocderServer
sẽ yêu cầu khởi tạo một DecoderServer mới từ SwitchBoard, và trả về thông tin cho
decoder có thể kết nối khi các yêu cầu gửi đến, trong thực tế DecoderServer có thể
dừng hoạt động trong quá trình phân tích và DecoderServer mới được tạo ra và sử
dụng mà không ảnh hưởng đến quá trình phân tích ở mức cao hơn. SwitchBoard luôn
theo dõi decoder thông qua các tập tin ghi nhớ (log file), vì vậy nếu như bản thân
SwitchBoard dừng hoạt động, thì một SwitchBoard khác sẽ được chạy và có thể khôi
phục được tất cả trạng thái trước khi xảy ra sự cố. Trong trường hợp này, tất cả
decoder và DecoderServer sẽ chờ đợi SwitchBoard sẵn sàng và đăng ký lại với
SwitchBoard, và trở lại việc xử lý các câu.
4.2.3.1. Gói ngôn ngữ:
Đối với một ngôn ngữ ví dụ như tiếng Anh, tiếng Trung hay tiếng Việt đều được
đóng gói thành “Java package” – tập hợp những lớp thực thi các giao diện nhằm cung
cấp các đặc tả và dữ liệu đặc biệt cho ngôn ngữ và miêu tả Treebank. Có bốn lớp
chính là : Treebank, Training, HeadFinder và WordFeatures. Lớp Treebank cung cấp
dữ liệu và phương thức đề miêu tả Treebank như là nhãn của các ký tự không kết thúc
phức tạp. Lớp Training cung cấp các phương thức để tiền xử lý cây trước khi huấn
luyện. Lớp HeadFinder có chức năng chính là đọc dữ liệu chứa các luật của head (tập
tin nằm trong gói data miêu tả các luật để chọn ra head (thành phần trung tâm) của một
câu hay cụm từ) và cung cấp hàm tìm kiếm thành phần trung tâm. Cuối cùng, lớp
WordFeatures cung cấp các ánh xạ giữa các yếu tố từ vựng với vector đặc trưng cho
hình thái học và phép chính tả nhằm giúp cho quá trình gán nhãn từ loại. Để đảm bảo
tính độc lập của ngôn ngữ, tất cả các tập tin vào và ra liên quan đến gói ngôn ngữ đều
53
được đọc và viết theo mã hóa ký tự do người dùng quy định. Bộ phân tích cú pháp của
Bikel đảm bảo cho người dùng có thể tạo ra một gói ngôn ngữ trong thời gian ngắn.
4.2.3.3. Đối tượng cấu trúc xác suất
Như trong phần trước, mỗi tham số của lớp có liên kết với hàm ánh xạ , 0 ≤ i <
n, với n là tống số mức back-off. Cả hai bộ phân tích cú pháp (BBN SIFT và Collins)
đều gặp khó khăn trong việc viết mã, với bộ phân tích BBN còn gặp khó khăn trong
việc tách biệt kiểu dữ liệu đối với mỗi mức back-off và tham số của lớp.
Trong bộ phân tích của Bikel, mỗi kiểu của đơn vị đầu ra của mô hình – bao gồm
các ký tự không kết thúc, ký tự tiền kết thúc, từ, đặc trưng của các từ, gap, và subcat
frame – đều liên kết với đối tượng ProbabilityStructure, miêu tả cách thức mà đối
tượng dữ liệu biểu diễn các đặc trưng và trạng thái trước tại mỗi mức back-off đối với
các thành phần đầu ra. Đố tượng chứa ngữ cảnh toàn diện nhất, được gọi là
TrainEvent, đều được phân tích thông qua phương thức đơn giản để đưa ra một trạng
thái trước hoặc đặc trưng cho mức back-off như đoạn mã giả sau:
history = probabilityStructure.get (backOffLevel, fullContext);
Với mỗi một lớp trừu tượng cũng có xác suất của các sự kiện, đối tượng miêu tả
các sự kiện cần dựa vào interface Event. Lớp trừu tượng này làm tăng độ mềm dẻo của
bộ phân tích cú pháp trong quá trình phân tích các sự kiện cũng như xác định kiểu của
các thành phần trả về bao gồm các đặc trưng từ thành phần đầu ra.
4.2.3.3. Khả năng linh hoạt của subcat frame.
Mô hình 2 và 3 của Collin sử dụng subcategorization frame (subcat), tập các ký
tự không kết thúc nằm ở hai phía của head (thành phần trung tâm). Đây là việc cập
nhật subcat một cách linh động, khi yêu cầu được thực thi, các ký tự sẽ được tự động
xóa khỏi tập. Ví dụ như, subcat chứa ký tự {NP-A}, và nút NP-A được sinh ra ở bên
trái của head (thành phần trung tâm), thì chuỗi phân tích con sẽ sinh ra một subcat
rỗng, {}. Bằng cách này, subcat động xử sự giống như một history- based model.
Trong bộ phân tích cú pháp của Bikel, subcat frames được thực thi từ interface
Subcat. Trong quá trình huấn luyện, tất cả các ký tự bổ sung (không có từ vựng) của
thành phần head trong mỗi luật đều gọi phương thức add Subcat, sẽ có một quá trình
lựa chọn các ký tự không kết thúc để đưa vào subcat. Một số đối số như –A sẽ được
đưa vào trong subcat, cũng như danh sách mô hình Collins đã làm, hoặc được đưa vào
danh sách có sắp xếp thứ tự giống như mô hình của Chiang (Chiang, 2000), hoặc đơn
giản chỉ là tổng số các đối số con, hoặc tổng số đối số ở hai phía của head. Sau khi
decoding, tất cả các thành phần bổ sung được sinh ra bởi mô hình sẽ được hàm remove
trong lớp thực thi interface subcat loại bỏ một số thành phần.
4.2.3.4. Phụ thuộc mềm dẻo – Tác dụng đối với ràng buộc phân tích cú pháp
Những phụ thuộc mạnh trong mô hình phân tích cú pháp xác suất là những sự
kiện không bao giờ xảy ra trong quá trình huấn luyện, và chúng có xác suất là 0. Tuy
nhiên, một vài hoặc tất cả các sự kiện đều có một giá trị xác suất, nhằm làm cho chúng
trở thành những phụ thuộc yếu đối với các sự kiện trong mô hình. Ngoải ra, thành
công lớn nhất của mô hình xác suất là việc lựa chọn trong những phân tích với phụ
54
thuộc yếu, có nhiều thời gian khi mà nó thật cần thiết hoặc có lợi cho việc xác định rõ
các phụ thuộc mạnh, vì thế bộ phân tích cú pháp đưa ra các các bộ phân tích tương
thích với các phụ thuộc này. Bộ phân tích cú pháp miêu tả ở đây cung cấp một cơ chế
mềm dẻo cho những phụ thuộc đó.
Giả sử chúng ta có cụm từ, chẳng hạn từ ghép (collocation) hoặc thực thể tên
(name entities) trong dữ liệu và đã được đánh dấu, thực hiện tự động hoặc do con
người với một độ chính xác cao. Cụm từ đó được đưa vào bộ phân tích như là một
ràng buộc, như vậy nó không chỉ tạo ra cây cú pháp chứa cụm từ này. Ngược lại, giả
sử có một lớp phân tách làm nhiệm vụ phân tách các mệnh đề trong câu. Trong trường
hợp này, đó có thể là mong muốn phân tích với dấu mở ngoặc không bao giờ nối với
bao đóng của mệnh đề, bộ phân tích cú pháp cũng phù hợp trong việc phân tích nhiều
loại phụ thuộc. Trong thực tế, hệ thống phụ thuộc luôn đi kèm với hệ thống và các loại
phụ thuộc thường được sử dụng khi phân tích thông qua các cấu hình khi chạy. Việc
phát triển các phụ thuộc này thường không quá phức tạp.
Một mục đích khác ở đây đó là nhằm nâng cao chất lượng của Treebank. Chiến
lược để có được một bộ chú thích với tập nhân dữ liểu huấn luyện nhỏ đối với một
ngôn ngữ hay lĩnh vực, nơi mà bộ phân tích được huấn luyện. Vì thế, các chú thích này
tập trung vào đánh dấu, cụm danh từ trong tất cả tập dữ liệu. Bộ phân tích cú pháp
không thể lấp đầy khoảng trống của cấu trúc cú pháp bởi việc sản sinh ra các cụm từ
chặt chẽ. Vì vậy, cần chỉnh sửa các cụm từ đối với các kiểu khác nhau (như nói, hay
cụm động từ), từ đó ta có thể huấn luyện lại bộ phân tích cú pháp trên tập dữ liệu chính
xác, và lặp lại quá trình cho đến khi kiểu của cụm từ chính xác.
Cuối cùng, các phụ thuộc cho phép ta nghiên cứu ứng xử của một số liên kết của
cấu trúc xác suất như là “dữ liệu ẩn”, bằng cách sử dụng thuật toán Inside-Outside
(Lari và Young, 1990; Pereira và Schabes, 1992). Điều này làm cực đại sự tương
đồng giữa các mô hình đối tượng được đưa ra trong tập phụ thuộc. Không những cung
cấp các thuật toán phụ thuộc cần thiết mà còn thực thi thuật toán Expectation-
Maximization.
Đây là một cách làm cho bộ phân tích cú pháp có sự phụ thuộc trở nên vô giá trị
nếu được lặp lại nhiều lần. Thời gian sẽ bị lãng phí nếu decoder không thể phân tích
được câu đầu vào. Đôi lúc, bộ phân tích cú pháp phải loại bỏ câu này, bởi vì xác suất
bằng không là sự kiện không thể lường trước được đối với sự kiện mà cây cú pháp
không thể sinh ra được (sự phụ thuộc mạnh).
4.2.4. Khả năng
4.2.4.1. Các phân bố xác suất song song.
Một dạng đơn giản nhất của việc xử lý song song đó là tăng khối lượng phân tích
bằng cách chia dữ liệu kiểm tra thành nhiều đoạn và có nhiều tiến trình chạy đồng thời
trên đoạn này, trên mỗi máy tính khác nhau. Server sentence cung cấp cấp các thành
phần song song rõ ràng, nhưng vẫn yêu cầu phân tách trên từng máy tính. Việc này đòi
hỏi phải có bộ nhớ lớn, mỗi bộ phân tích cú pháp chứa cùng bảng đếm các sự kiện
quan sát được trong dữ liệu huấn luyện. Vì vây, đề giảm thiểu hao phí này ta sử dụng
“probabilistic server”. Đó là ý tưởng của DecoderServer trong hệ thống xử lý đa luông
với lượng lớn RAM, và làm mịn xác suất đồng thời ước lượng cho các chart parsing
55
client. Kiến trúc này hỗ trợ cơ chế cân bằng tải (load-balancing) nếu như có hệ thống
đa luồng, đa xử lý. Java cung cấp giải pháp cho phân phối tính toán thông qua công
nghệ gọi là “remote method invocation”, RMI.
4.2.4.2. Tối ưu hóa
Trong bộ phân tích cú pháp của mình Bikel đã thực hiện việc tối ưu hóa các
decoder như sau:
- Tinh chỉnh quá trình tiền tính toán tất các log của các phân phối xác suất và log
– lamdas, sử dụng dấu phẩy động và toán từ cho việc tính toán xác suất trong khi
decoding.
- Tạo và sử dụng bảng băm nhằm tối ưu hóa ánh xạ giữa đối tượng Java và các
kiểu nguyên thủy, tìm kiếm xác suất trong không gian cục bộ, và ước lượng bao gói
các đối tượng cần thiết.
- Khi mà xác suất của một chart item bằng 0 thì giảm các toán tử decode bị lặp
- Loại bỏ các đối tượng mới được khởi tạo trong quá trình decoding, bao gồm sử
dụng object pool nhằm tái chết các đối tượng chart item.
- Dựa vào quá trình định hình để giảm quá trình tối ưu.
Kỹ thuật tối ưu rất quan trọng bởi vì nó có tác dụng làm tăng tốc độ xử lý. Nhìn
chung, trước khi sinh ra xác suất bổ trợ, decoder sẽ kiểm tra mức cuối cùng của back-
off đối với mô hình sinh các từ bổ nghĩa trong quá trình huấn luyện. Nếu không mô
hình không đưa ra được xác suất ngoại trừ xác suất bằng 0. Nói cách khác, nếu ngữ
cảnh tồi tệ nhất không xảy ra với đặc trưng được sinh ra, và những đặc tả ngữ cảnh
không xuất hiện, và vì vậy mô hình chỉ có thể tính toán được xác suất bằng 0 trong quá
trình lấy xấp xỉ.
4.3. Kết luận
Trong chương này, chúng ta đã tiếp cận được những quá trình tiền xử lý cũng
như có cái nhìn tổng quan về bộ phân tích của Bikel. Bikel đã xây dựng không chỉ là
một phần mềm hiệu quả, có khả năng mở rộng và nâng cấp, mà còn hiệu quả trong
việc khảo sát và kiểm chứng những định lý trong ngôn ngữ và các mô hình liên quan.
Trong chương tiếp theo sẽ trình bày sâu hơn việc xây dựng gói ngôn ngữ tiếng Việt, sử
dụng bộ phân tích cú pháp của Bikel để đánh giá cách tiếp cận thống kê trong phân
tích cú pháp tiếng Việt trên ngữ liệu Viet Treebank.
56
Chương 5. Áp dụng bộ phân tích cú pháp của Bikel và dữ liệu Viet
Treebank
5.1. Gói ngôn ngữ tiếng Việt
Để sử dụng bộ phân tích của Bikel trong việc phân tích cú pháp cho tiếng Việt,
trước tiên ta phải đặc tả ngôn ngữ đề bộ phân tích có thể hiểu được. Việc đặc tả ngôn
ngữ được thực hiện bằng cách xây dựng một gói ngôn ngữ tương đương với “Java
package”. Trong gói này, chúng ta cần đưa vào tối thiểu bốn lớp để cung cấp đặc tả về
ngôn ngữ cũng như các phương thức xử lý, đó là bốn lớp Treebank, Training,
HeadFinder và WordFeature. Treebank thừa kế các phương thức và các thuộc tính
trong lớp danbikel.parser.lang.AbstractTreebank, nhiệm vụ của lớp này là miêu tả kho
ngữ liệu, đối với tiếng Anh là Penn Treebank. Như vậy, để miêu tả các tính chất, các
phương thức trên Viet Treebank, chúng ta cần xây dựng lớp Treebank này. Một ví dụ
là trong lớp Treebank của gói ngôn ngữ tiếng Anh, ký hiệu “CC” nhằm chỉ liên từ có
nhãn là CC, nhưng trong Viet Treebank, nhãn này là C vì vậy ta đưa sự thay đổi này
vào trong lớp Treebank. Lớp thứ hai là Training, thửa kế từ lớp trừu tượng
danbikel.parser.lang.AbstractTraining. Nhiệm vụ của lớp này là cung cấp các hàm tiền
xử lý và các hàm xử lý dữ liệu trong quá trình huấn luyện. Tiếp theo là lớp
HeadFinder. Nhiệm vụ của lớp này là thực hiện việc tìm kiếm head của câu. Như đã
nói trong mô tả về Viet Treebank, Viet Treebank đưa ra nhãn H để chỉ ra thành phần
trung tâm. Vì vậy việc tìm kiếm thành phần trung tâm ở đây ta chỉ cần quan tâm đến từ
có nhãn H. Ngoài ra, việc tìm kiếm head cũng có thể xây dựng luật ngữ pháp, không
cần đưa hàm tìm kiếm trực tiếp trong chương trình giống như Bikel thực hiện đối với
Penn Treebank. Cuối cùng, lớp WordFeature cung cấp hàm ánh xạ giữa một yếu tố từ
vựng với những vector đặc trưng liên quan đến hình thái học và phép chính tả
(orthographic). Ngoài bốn lớp trên, ta cần chú ý đến hai tập tin là head-rules.lisp và
training-metada.lisp. Tập tin head-rules.lisp, được viết bằng ngôn ngữ LISP, chứa các
luật hỗ trợ cho việc tìm thành head trong câu hay cụm từ. Như trong gói tiếng Anh, tập
tin này chứa tất cả các luật được Collins và Bikel sử dụng trong bộ phân tích cú pháp
của mình. Cấu trúc của tập tin này được mô tả bằng chuỗi các luật sau:
( +)
nút cha mà thành phần vế phải của luật cũng được tìm ra hay
dùng ký hiệu * cho việc sử dụng luật cơ bản.
57
( *)
l | r (l tương đương với left-to-right, r tương đương với right to
left)
nhãn ký tự không kết thúc của nút con để tìm kiếm theo hướng
đã chọn.
Những luật trên được bổ sung cho lớp HeadFinder trong việc tìm kiếm head
(thành phần trung tâm). Việc tìm kiếm head rất đơng giản, bắt đầu bằng ký tự không
kết thúc là cha, tìm trong các cây con của nút đó theo hướng left-to-right or right-to-
left.prd. Tập tin này được đọc khi HeadFinder được khởi tạo.
Tập tin thứ hai là training-metada.lisp được nhiệm vụ của lớp này là đưa ra các
mô hình dùng cho quá trình huấn luyện. Tập tin cung cấp một số thông tin liên quan
đến quá trình huấn luyện, đúng ý nghĩa của tên tập tin, như luật để sinh subcat và tham
số, những nhãn được phép loại bỏ (một bước tiền xử lý trước khi huấn luyện), luật để
thêm và chỉnh sửa nhãn NP cơ sở (baseNP). Giống như file head-rules, tập tin được
đọc khi khởi tạo đối tượng Trainning.
5.2. Quá trình thực hiện:
5.2.1. Xử lý dữ liệu
Để thực hiện phân tích cú pháp tiếng Việt, ta đưa dữ liệu Viet Treebank vào huấn
luyện. Dữ liệu là có khoảng 10000 câu, chia làm hai tập là tập huấn luyện (hơn 9500
câu) và tập kiểm tra (hơn 500 câu). Một điểm cần lưu ý đó là trong tập dữ liệu có một
số câu chứa dấu gạch. Có một số loại như dấu gạch ngang (‘—‘ tiếng Anh là dash, các
dấu này có độ dài khác nhau) và dấu gạch nối (‘-‘, hyphen) và dấu trừ (‘-‘, minus
sign). Các loại dấu dash có mã ký tự nằm ngoài bảng ASCII (American Standard for
Information Interchange), còn dấu hyphen trùng với dấu trừ cùng một mã ASCII.
Trong bộ phân tích cú pháp của Bikel ký tự ‘-‘ được sử dụng để phân tách giữa nhãn
cụm từ và nhãn chức năng ví dụ như N-H, NP-SUB… Một hướng giải quyết việc này
là chỉnh sửa mã nguồn, nhưng do thời gian hạn chế, nên giải pháp ở đây là sử dụng
một text editor thay thế các nhãn ‘-‘ bằng một nhãn mới không có trong bộ nhãn của
Viet Treebank, trong trường hợp này là sử dụng nhãn CCO. Nhược điểm của việc đưa
thêm nhãn này vào là có thể làm mất đi chức năng ngữ pháp của ‘-‘, cũng cần phải
miêu tả chức năng ngữ pháp dấu ‘-‘ trong Treebank. Ở đây, dấu ‘-‘ có thể hành xử như
một liên từ ví dụ: (NP (NP (N-H hố) (N bom) ) (CCO -) (NP-LOC (N-H nơi) (SBAR
(S (NP-SUB (P-H tui) ) (VP (R đã) (V-H gửi) (R lại) (NP-DOB (NP (M một) (Nc-H
58
con) (N mắt) ) (C và) (NP (M hai) (N-H cánh_tay) ))))))) (câu không có chức năng
ngữ pháp: “hố bom - nơi tôi đã gửi lại một con mắt và hai cánh tay).
Tập dữ liệu có khoảng hơn 9500 câu, sau khi thực hiện huấn luyện và kiểm tra
trên tập này, thay đổi số lượng câu bằng cách lấy ngẫu nhiên một số lượng câu nhất
định so với dữ liệu ban đầu
Bảng 10: Sô lượng câu để huấn luyện
Tỷ lệ Số câu
100% 9633
80% 7706
70% 6743
60% 5779
5.2.2. Cấu hình để thực hiện:
- Tất cả các thuộc tính cần cài đặt giá trị được lưu ở trong tập tin default-
settings.properties nằm trong thư mực danbikel/parser. Tập tin này chứa các thuộc tính
mặc định của bộ phân tích cú pháp, để sử dụng cho tiếng Việt, cần thay đổi thông số,
với sự thay đổi của một số thuộc tính có thể làm thay đổi mô hình xác suất có được sau
khi huấn luyện. Tập tin này được lớp lớp danbikel.parser.Settings đọc để đưa vào các
giá trịn tĩnh, được gọi trong quá trình huấn luyện hay phân tích câu. Thuộc tính được
chia làm các loại sau:
+ Thông tin chung: dùng để mô tả gói ngôn ngữ, encoding sử dụng cho luồng
đọc và ghi dữ liệu (InputStreamReader, và OutputStreamWriter), định nghĩa một số
lớp Factory, có nhiệm vụ khởi tạo các đối tượng ví dụ như SubcatBagFactory có
nhiệm vụ khởi tạo một đối tượng SubcatBag.
+ Parser: miêu tả lớp Decoder và DecoderServer, trong bộ phân tích cú pháp của
Bikel, Decoder có nhiệm vụ cung cấp giá trị và thực hiện việc phân tích câu.
+ Model: cung cấp các phương thức đặc tả cho cấu trúc xác suất, các phương
thức phục vụ đối tượng ProbabilityStructure.
+ Thuộc tính cho mô hình: các giá trị thuộc tính cho mô hình xác suất, các thuộc
tính này được sử dụng trong quá trình tính toán xác suất của các đối số, nhu đã trình
bày trong mô tả của bộ phân tích cú pháp. Trong phần thuộc tính này, giá trị của thuộc
59
tính parser.model.precomputeProbabilities là true thì sẽ loại bỏ thuộc tinh
parser.modelCollection.writeCanonicalEvents, ngăn không cho lớp
danbikel.parser.ModelCollections, thực hiện phương thức ghi thông tin xác suất ra tập
tin hoặc đầu ra.
+ Thuộc tính cho HeadFinder: các thuộc tính trợ giúp cho lớp HeadFinder trong
việc sử dụng các luật.
+ Thuộc tính cho Trainning: trong nhóm này, thuộc tính
parser.training.addGapInfo, có giá trị mặc định là false, tức là ta chỉ sử dụng mô hình 2
của Collins, khi thuộc tính nhận giá trị true, ta đưa thêm thông tin gap vào trong mô
hình xác suất, bây giờ mô hình ta sử dụng là mô hình 3 của Collins. Hai thuộc tính còn
lại chỉ hỗ trợ trong việc sử dụng một số tính chất của Collin, hỗ trợ việc giả lập lại kết
quả của Collins.
+ Thuộc tính cho Trainer: lớp danbikel.parser.Trainer có nhiệm vụ đọc tập dữ
liệu thực hiện việc tính toán đưa ra mô hình xác suất. Trong nhóm thuộc tính này có
một số thuộc tính như parser.trainner.outputHeadToParentMap,… có tác dụng đưa ra
thông tin về Head hay thuộc tính parser.trainer.outSubcatMaps đưa ra thông tin về
Subcatergorization frame, các giá trị của thuộc tính parser.trainer.numPrevMode,
parser.trainer.numPrevWord là giá trị hậu tố, nhằm xác định mô hình xác suất được sử
dụng. Ngoài ra, bộ phân tích còn sử dụng thuộc tính
parser.trainer.globalModelStruceNumber hỗ trợ hai thuộc tính trên. Việc kết hợp giữa
giá trị của thuộc tính này và tên chuẩn tạo ra tên lớp trong gói danbikel.parser.ms. Các
lớp trong danbikel.parser.ms cung cấp đặc tả về cấu trúc.
+ Thuộc tính cho CKYChart: Bikel sử dụng thuật toán CKY (Cook – Young –
Kasami) để thực hiện việc phân tích cú pháp. Lớp miêu tả các item được định nghĩa
giá trị của thuộc tính parser.chart.itemClass. thuộc tính còn lại có tác dụng tăng độ
rộng beam lên bằng cách thêm 3 vào số mũ khi tính toán, với điều kiện là nhãn gốc
đang xét là NP hay NP-A.
+ Thuộc tính cho Decoder: Cung cấp thuộc tính cho lớp Decoder có tác dụng khi
thực hiện phân tích cú pháp. Một số thuộc tính như parser.decoder.kBest tác dụng hỗ
trợ quá trình phân tích. Thuộc tính này dược Collins đề nghị, bởi vì không có hai chart
item nào tương đương trong quá trình thực hiện bằng quy hoạch động. Một số phương
thức xác định thông tin được đưa ra đầu ra chuẩn như parser.decoder.-
outputHeadLexicalizedLabels.
60
+ Thuộc tính đặc tả dữ liệu cho gói ngôn ngữ: cung cấp thông tin liên quan đến
hai tập tin head-rules.lisp và training-metadata.lisp.
+ Thuộc tính cho SwitchBoard: các giá trị hỗ trợ cho SwitchBoard, cung cấp các
giá trị để có thể thực hiện việc phân tích qua mạng sử dụng RMI. Các thuộc tính cung
cấp các tập tin chứa quyền dành cho người dùng RMI, thời gian kết nối, các giá trị
dành cho khách và chủ.
+ Thuộc tính cho cấu trúc mô hình: giá trị của các thuộc tính xác định kích thước
bộ đệm các lớp mô hình sử dụng.
- Để tạo ra tập tin cấu hình riêng cho đối với ngôn ngữ ta chỉ cần sửa các giá trị
trong tập tin này cho phù hợp. Đối với tiếng Việt, ta thay một số thuộc tính như:
parser.language=vietnamese, parser.language.package=danbikel.parser.vietnamese –
thuộc tính xác định gói ngôn ngữ được đưa vào, giá trị thuộc tính trùng với tên của gói
ngôn ngữ đưa vào ở đây là danbikel.parser.vietnamese, thông tin về encoding – mã
hóa ký tự được sử dụng để thông tin cho luồng đọc và ghi biết được encoding của tập
tin, đối với tiếng Việt ta sử dụng là UTF-8, v.v…
- Để thực hiện việc huấn luyện, tôi chọn một số giá trị làm mô hình chuẩn, các
mô hình khác đều dựa vào mô hình chuẩn này, thực hiện thay đổi một số giá trị trong
mô hình chuẩn để xây dựng mô hình mới. Sau đó, thực hiện việc huấn luyện và kiểm
tra để so sánh sự thay đổi so với mô hình chuẩn. Các thuộc tính trong mô hình chuẩn
được đưa trong bảng ở phần phụ lục. Trong quá trình thực hiện luận văn, tôi thực hiện
phân tích chú pháp các trường hợp sau:
+ mô hình cơ sơ
+ mô hình 3: thay đổi thuộc tính danbikel.training.addGapInformation từ false
thành true)
+ Loại bỏ việc hành động sửa nhãn NPBase: đây là một bước tiền xử lý đối với
dữ liệu đầu vào. Thực hiện cấu hình này với mục tiêu so sánh xem việc làm này có
đem lại kết quả hay không?
+ Thay đổi giá trị của prunceFactory từ 5 thành 3. Đây là thuộc tính quy định độ
rộng của beam trong quá trình Decoder. Mục đích, của việc đưa ra thay đổi này là
muốn đánh giá độ ảnh hưởng của thừa số này trong việc tính toán xác suất đối với dữ
liệu tiếng Việt.
61
+ Thay đổi giá trị threshold thành 4. Threshold có ý nghĩa với những từ có tần
suất xuất hiện nhỏ hơn threshold sẽ được gán thành nhãn +unknow+, để có một giá trị
threshold tốt cần thực hiện việc thống kê dữ liệu. Trong luận văn này, threshold được
chọn giá trị là 4 để đánh giá xem sự thay đổi có ảnh hưởng nhiều tới mô hình phân tích
hay không. Một điều dễ hiểu là nếu threshold quá lớn thì mô hình càng kém chính xác.
Ngoài ra, thực hiện việc phân tích cú pháp đối với một trường hợp đó là giữ
nguyên tập tin cấu hình nhưng loại bỏ một số luật trong tập tin training-metadata.lisp.
Việc loại bỏ các luật liên quan đến argument, nhằm tác dụng tiếp cận với mô hình 1
của Collins. Trong mô hình 1 của Collin, không có sự phụ thuộc vào subcategorization
frame như mô hình 2.
Để thực hiện độ đánh giá về độ phủ của dữ liệu thực hiện việc huấn luyện và
kiêm tra trên một số tập dữ liệu:
5.2.3. Huấn luyện
- Sử dụng phương lớp Trainer để thực hiện việc huấn luyện mô hình. Để thực
hiện được việc huấn luyện cần đưa vào các tham số sau:
+ Tập tin cấu hình: chứa giá trị thuộc tính trong mô hình
+ Tập tin chứa các câu cần huấn luyện
+ Tập tin đầu ra chứa các sự kiện trong quá trình huấn luyện
+ Tập tin dẫn xuất chứ tất cả thông tin liên quan đến quá trình huấn luyện như
cấu hình, xác suất, v.v…
Việc huấn luyện diễn ra dựa vào dữ liệu đầu vào, nếu dữ liệu đầu vào là tập các
tập tin chứa sự kiện sẽ được huấn luyện khác với trường hợp đưa vào một tập tin dẫn
xuất cũng như khác với việc huấn luyện mới hoàn toàn. Việc huấn luyện mới hoàn
toàn được xây dựng trong phương thức train. Việc huấn luyện trải qua bốn pha.
Trong pha đầu tiên (Phase 0), Dữ liệu được đọc từ tập tin chứa các cây dùng để huấn
luyện sẽ được chuyển sang dạng cây, thực hiện việc tiền xử lý cây bằng cách gọi lớp
Training trong gói ngôn ngữ đã được đưa vào trước đó. Sau khi thực hiện việc tiền xử
lý cây, thực hiện việc tìm kiếm thành phàn trung tâm của câu. Chuyển sang pha thứ hai
(Phase 1), nhiệm vụ của pha này là xây dựng tập từ điển, và tính toán xác suất của
những từ trong tập từ điển đó. Pha thứ ba (Phase 2), bộ phân tích cú pháp thực hiện
việc sàng lọc những từ có tần số xuất hiện thấp được loại bỏ. Cuối cùng (Phase 3),
nhiệm vụ đầu tiên trong pha này được thực hiện đó là thu thập các thông tin đã thống
62
kê. Sau quá trình thu thập các ước lượng xác suất, đưa các thông tin xác suất vào trong
các mô hình đã được khởi tạo từ trước.
5.2.4. Phân tích cú pháp
- Sử dụng lớp danbikel.parser.Parser để thực hiện việc phân tích câu.
- Các đối số cần đưa vào để thực thi là:
+ Tập tin cấu hình
+ Tập tin dẫn xuất chứa các mô hình
+ Tập tin kiểm tra
- Đối với tập tin kiểm tra: Hệ thống cần phải phân tích cú pháp các câu trong tập
tin này để đưa ra cây cú pháp. Trong tập tin, câu được viết một trong ba dạng sau:
Dạng 1: ( ( ( + ))+ ): câu chứa các từ đã được gán nhãn. Một từ có
thể được gán nhiều nhãn. Một ví dụ là: ( (Bán (V)) (thuốc (N)) (giá (N)) (cao (A)) )
Dạng 2: ( ()+ ) : câu chứa các từ chưa được gán nhãn
Dạng 3: câu được đưa vào ở dạng cây cú pháp, trong trường hợp này, theo như
tài liệu của Bikel, bộ phân tích cú pháp sẽ dựa vào những phụ thuộc để thực hiện việc
phân tích.
- Dữ liệu ban đầu trước khi kiểm tra là một tập tin chứa các cây cú pháp chuẩn.
Sử dụng các phương thức trong lớp có sẵn của Bikel, thực hiện lập trình một chương
trình nhỏ với mục tiêu sinh ra tập tin chứa các câu theo dạng 1 từ tập tin này. Cũng có
thể thực hiện việc đánh giá với câu chưa được gán nhã. Chúng ta chỉ cần thay đổi tham
số của chương trình này là có thể đưa ra được tập dữ liệu không gán nhãn phục vụ cho
việc kiểm tra.
5.2.5. Đánh giá kết quả:
- Để đánh giá được độ chính xác của bộ phân tích cú pháp ta sử dụng thành phần
trong cú pháp. Cây cú pháp được đưa thành dạng tập các mục gọi là bracket, bracket
bao gồm 3 thành phần chính là nhãn trong cây cú pháp, vị trí đầu tiên của từ nằm trong
nhãn đó, vị trí kết thúc của từ trong nhãn đó. Ví dụ như câu sau:
(S (NP (NP tôi)) (VP (V ăn) (NP (N kem)) (PP (E bằng) (NP (N thìa)) ))) sử
được viết lại là
(0, 5, S), (0, 1, NP), (1, 5, VP),(2, 3, NP), (3, 5, PP), (4, 5, NP)
63
Việc đánh giá độ chính xác được xác định thông qua việc so sánh các bracket với
nhau. Hai bracket gọi là giống nhau nếu các thành phần trong đó giống hệt nhau. Với
định nghĩa này ta có hai đại lượng để so sánh là recall và precision:
Như vây, nếu hai tỷ lệ này càng cao thì phân tích càng chuẩn.
5.3. Kết quả đạt được:
- Tập dữ liệu sử dụng bao gồm 10000 câu trong đó có hơn 9000 câu để huấn
luyện và 500 câu để kiểm
- Thực hiện thay đổi một số thuộc tính, dựa vào một tập các thuộc tính mặc định,
để đánh giá độ hiệu quả. Các cấu hình để chạy là:
+ Mô hình cơ bản
+ Mô hình cơ bản nhưng trainning-metadata được thay đổi
+ Mô hình 3 – đưa thêm thông tin gap vào
+ Không đưa bước tiền xử lý sửa nhãn baseNP vào
+ Thay đổi thừa số pruncFactory
+ Thay đổi giá trị của threshold, trong mô hình cơ bản nhận giá trị là 3, ở đây
đánh giá với giá trị là 4.
Kết quả ta có bảng đánh giá như sau:
Bảng 11: Bảng so sánh kết quả đối với xâu dài không quá 40 từ
Độ dài ≤ 40
Các mô hình
Recall Precision CBs 0 CB ≤ 2 CBs F
Mô hình cơ bản 75.72 82.05 1.30 62.88 81.12 38.29
Mô hình cơ bản
không có tham số
57.56 67.26 2.23 43.35 67.17 37.92
64
Mô hình 3 75.72 82.05 1.30 62.88 81.12 38.29
Loại bỏ baseNP 74.21 82.83 1.24 63.52 80.69 37.57
pruncFactory = 3.5 74.65 81.89 1.30 63.09 80.69 37.69
threshold = 4 75.51 81.85 1.30 62.23 81.33 38.27
Bảng 12: Bảng so sánh kết quả đối với xâu dài không quá 100 từ
Độ dài ≤ 100
Các mô hình
Recall Precision CBs 0 CB ≤ 2 CBs F
Mô hình cơ bản 74.77 79.72 1.88 57.14 75.00 37.71
Mô hình cơ bản
không có tham số
55.27 64.08 3.11 38.35 59.96 37.15
Mô hình 3 74.76 79.73 1.87 57.13 75.01 37.72
Loại bỏ baseNP 73.05 80.79 1.75 58.46 75.19 36.83
pruncFactory = 3.5 73.25 79.52 1.88 57.89 74.62 36.91
threshold = 4 74.52 79.49 1.90 56.58 75.19 37.69
Qua bảng kết quả này ta có thể nhận thấy, áp dụng tính chất của tiếng Việt vào
bộ phân tích cú pháp cũng đạt được độ chính xác nhất đinh. Ở đây ta, thấy được tỷ lệ
recall và percision khá cao khoảng 70% đến 80%. Tuy nhiên, độ chính xác của nhãn
chưa được cao chỉ khoảng 30%.
Ta nhận thấy việc loại bỏ các tham số đi làm giảm độ chính xác các mô hình,
việc loại bỏ tham số này tức là ta đã loại các luật sinh ra subcategorization frame trong
bộ phân tích cú pháp. Ngoài ra, ta nhận thấy không có sự khác nhau nhiều giữa việc
thêm thông tin gap (mô hình 3 của Collins [11]) so với mô hình 2 của Collins [11]).
65
Ngoài ra kết quả cũng thử nghiệm một số tham số trong quá trình xử lý của bộ phân
tích cú pháp của Bikel’s, cũng chưa tăng được độ chính xác lên.
Ngoài việc thực hiện huấn luyện trên 9000 câu, tôi còn thực hiện huấn luyện theo
số lượng câu thay đổi như Bảng 10. Sau đây là kết quả của việc kiêm tra
Bảng 13: Kết quả thực nghiệm với tập huấn luyện lớn dần lên với câu dười 40 từ
Độ dài ≤ 40
Số lượng câu
Recall Precision CBs 0 CB ≤ 2 CBs F
60% 67.24 73.67 1.90 54.08 71.89 37.42
70% 68.19 74.24 1.86 51.72 73.61 37.58
80% 70.65 76.65 1.75 56.65 75.54 37.64
100% 75.72 82.05 1.30 62.88 81.12 38.29
Bảng 14: Kết quả thực nghiệm với tập huấn luyện lớn dần lên với câu dười 100 từ
Độ dài ≤ 100
Số lượng câu
Recall Precision CBs 0 CB ≤ 2 CBs F
60% 65.66 70.84 2.74 49.06 65.60 36.95
70% 66.84 71.67 2.63 46.80 67.29 37.10
80% 69.50 74.11 2.45 50.94 68.17 37.16
100% 74.77 79.72 1.88 57.14 75.00 37.71
Qua bảng kêt quả trên, ta nhận thấy dữ liệu càng nhiều độ chính xác càng tăng
cao.
66
Trong quá trình thực nghiệm, các tập tin kiểm tra đều được gán nhãn, chúng tôi
cũng thử sử dụng tập kiểm trả không được gán nhãn cú pháp. Tập dữ liệu này về số
lượng câu, cũng như các câu giống với tập kiểm tra ở trên, khác biệt lớn nhất là trong
tập này không có gán nhãn cú pháp.
Bảng 15: Kết quả so sánh của tập dữ liệu không gán nhãn cú pháp, độ dài từ không quá
40
Độ dài ≤ 40
Mô hình
Recall Precision CBs 0 CB ≤ 2 CBs F
Mô hình cơ bản 75.72 82.05 1.30 62.88 81.12 38.29
Mô hình cơ bản
không có tham số
57.56 67.26 2.23 43.35 67.17 37.92
Mô hình 3 75.72 82.05 1.30 62.88 81.12 38.29
Bảng 16: Kết quả so sánh của tập dữ liệu không gán nhãn cú pháp, độ dài từ không quá
100
Độ dài ≤ 100
Các mô hình
Recall Precision CBs 0 CB ≤ 2 CBs F
Mô hình cơ bản 74.77 79.72 1.88 57.14 75.00 37.71
Mô hình cơ bản
không có tham số
55.27 64.08 3.11 38.35 59.96 37.15
Mô hình 3 74.76 79.73 1.87 57.13 75.01 37.72
So sánh Bảng 11 và Bảng 15, Bảng 12 và Bảng 16, ta nhận thấy việc gán nhãn hay
không gán nhãn cú pháp không ảnh hưởng tới bộ phân tích cú pháp đã xây dựng.
67
KẾT LUẬN
Luận văn hướng tới mục tiêu đánh giá phân tích cú pháp tiếng Việt theo tiếp cận
thống kê. Trong luận văn thực hiện đánh giá hướng tiếp cận sử dụng văn phạm phi ngữ
cảnh xác suất từ vựng (LPCFG). Luận văn đã đạt được một số kết quả như sau:
- Nghiên cứu tổng quan về tiếp cận trong phân tích cú pháp, nghiên cứu sâu về
tiếp cận thống kê, và việc áp dụng văn phạm phi ngữ cảnh xác suất từ vựng trong phân
tích cú pháp.
- Nghiên cứu và tìm hiểu hệ thống của Bikel.
- Áp dụng hệ thống của Bikel vào phân tích cú pháp cho tiếng Việt, thực hiện so
sánh một số kết quả dựa trên ngữ liệu Viet Treebank.
Những thành quả đạt được đã được trình bày trong chương 5. Tuy nhiên, do thời
gian có hạn, việc đưa quá trình tiền xử lý và đặc tả Viet Treebank chưa thật sự hoàn
toàn phù hợp với tiếng Việt. Vì vây, để phát triển luận văn này, có thể thực hiện một
số công việc như:
- Đặc tả Viet Treebank trong hệ thống của Bikel chính xác hơn, đưa các quy trình
tiền xử lý phù hợp với tiếng Việt, thay đổi những phương thức đã có trong tiếng Anh
sao cho phù hợp với tiếng Việt
- Thực hiện xây dựng các mô hình cấu trúc xác suất phù hợp với tiếng Việt hơn.
68
TÀI LIỆU THAM KHẢO
Tài liệu tiếng Việt
[1]. Cường, Lê Anh. Xây dựng bộ phân tích cú pháp Tiếng Anh trong hệ dịch tự
động Anh Việt. Hà nội : Luận Văn Thạc sỹ khoa học, 2001. 1.
[2]. Dũng, Vũ Tiến. Tiếng Việt và ngôn ngữ học hiện đại: sơ khảo về cú pháp.
Germany : VIET Stuttgart, 2004. 2.
[3]. Thái, Nguyễn Phương, và những tác giả khác. Thiết kế tập nhãn cú pháp
và hướng dẫn gán nhãn. không biết chủ biên : Nhóm xây dựng Viet Treebank, 2009.
3.
[4]. Thái, Nguyễn Phương, Lương, Vũ Xuân và Huyền, Nguyễn Thị Minh.
Xây dựng treebank Tiếng Việt. Hà nội : ICT-08, 2008. 4.
[5]. Thái, Tạ Yên. Một số tìm hiểu về quá trình phân tích cú pháp trong Ngôn
ngữ tự nhiên. không biết chủ biên : Khóa luận tốt nghiệp, 2000. 5.
[6]. Thế, Nguyễn Quốc và Hương, Lê Thanh. Vietnamese syntactic parsing
using the Lexicalized Probabilistic Context-free Grammar. Nha Trang, Viet Nam :
FAIR conference, 2007. 6.
Tài liệu tiếng Anh
[7]. Bikel, Daniel M. A statiscal model for parsing and wword-sense
disambiguation. 2000.
[8]. Bikel, Daniel M. Design of a multi-lingual, parallel-processing statistical
parsing engine. 2002.
[9]. Bikel, Daniel M. On the parameter space of Generative Lexical Statistical
Parsing Model. 2004.
[10]. Charniak, Eugene. Statistical Techniques for Nature Language Parsing.
1997.
[11]. Collins, Michael. Head-Driven Statical Models for Natural Language
Parsing. 1999.
[12]. Collins, Michael. Three generative, lexicalised models for statistical
parsing. 1996.
69
[13]. Jurafsky, Daniel and Martin, James H. Speech and Language
Processing: An Introduction to Natural Language Processing, Computation
Linguistics and Speech Recognition. s.l. : Alan Apt, 1999.
[14]. Manning, Chistopher D. and Schutze, Hinrich. Foundations of Statistical
Natural Language Processing. s.l. : MIT Press, 1999.
[15]. Marcus, Mitchell P., Marcinkiewicz, Mary Ann and Santorini,
Beatrice. Building a Large Annotated of English: The Penn Treebank. s.l. :
Computation Linguistics, 1993.
Các file đính kèm theo tài liệu này:
- LUẬN VĂN- PHÂN TÍCH CÚ PHÁP TIẾNG VIỆT THEO TIẾP CẬN THỐNG KÊ.pdf