Luận văn Phân tích cú pháp tiếng việt theo tiếp cận thống kê

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

pdf78 trang | Chia sẻ: lylyngoc | Lượt xem: 2610 | Lượt tải: 1download
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:

  • pdfLUẬN VĂN- PHÂN TÍCH CÚ PHÁP TIẾNG VIỆT THEO TIẾP CẬN THỐNG KÊ.pdf