Luận văn sẽ trình bày khái quát về các cách tiếp cận trong việc xây dựng bộ phân tích cú pháp, và đi sâu tìm hiều về văn phạm phi ngữ cảnh xác suất từ vựng Lexicalized Probabilistic Cont
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Vương Hoài Thu
PHÂN TÍCH CÚ PHÁP TIẾNG VIỆT THEO TIẾP
CẬN THỐNG KÊ
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2009
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Vương Hoài Thu
PHÂN TÍCH CÚ PHÁP TIẾNG VIỆT THEO TIẾP
CẬN THỐNG KÊ
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: TS Lê Anh Cường
HÀ NỘI – 2009
Trang 3LỜI CẢM ƠN
Đầu tiên tôi xin tỏ lòng biết ơn sâu sắc đến thầy giáo hướng dẫn của tôi,TS Lê Anh Cường, người đã hướng dẫn, chỉ bảo và tạo điều kiện để tôi hoàn thành luận văn này
Tôi xin gửi lời cảm ơn sâu sắc tới thầy giáo TS Nguyễn Phương Thái và nhóm xây dựng ngữ liệu Viet Treebank, đặc biệt là thầy Ngyễn Phương Thái, người đã hướng dẫn và cung cấp tài liệu, dữ liệu cần thiết cho tôi trong quá trình hoàn thành luận văn
Tôi xin chân thành cảm ơn các thầy cô giáo trong trường Đại học Công nghệ, đặc biệt là những thầy cô trong bộ môn Khoa học máy tính, những người đã dạy bảo, tạo điều kiện cho tôi trong suốt quá trình học tập tại trường
Cuối cùng, gia đình và bạn bè là hậu phương vững chắc, là nguồn động viên giúp tôi hoàn thành luận văn này
Trang 4TÓM TẮT
Phân tích cú pháp là một trong những bài toán cơ bản và quan trọng nhất trong
xử lý ngôn ngữ tự nhiên (XLNNTN) Kết quả của phân tích cú pháp được sử dụng trong rất nhiều ứng dụng XLNNTN khác như dịch máy, hỏi đáp, trích chọn thông tin… Xây dựng một bộ phân tích cú pháp cho tiếng Việt có độ chính xác cao là một công việc rất có ý nghĩa Mục tiêu đề ra của luận văn là xây dựng bộ phân tích cú pháp tiếng Việt theo tiếp cận thống kê Đây là một hướng tiếp cận khá mới mẻ trong cách xây dựng bộ phân tích cú pháp tiếng Việt Luận văn sẽ trình bày khái quát về các cách tiếp cận trong việc xây dựng bộ phân tích cú pháp, và đi sâu tìm hiều về văn phạm phi ngữ cảnh xác suất từ vựng (Lexicalized Probabilistic Context Free Grammar) Cụ thể hơn, tôi tìm hiểu, nghiên cứu 3 mô hình xác suất của Collins [11], và áp dụng công cụ phân tích của Bikel’s [9] để thử nghiệm cho phân tích cú pháp tiếng Việt Phân tích cú pháp dựa theo thống kê cần có dữ liệu để huấn luyện mô hình Trong luận văn, tôi sẽ
sử dụng ngữ liệu Viet Treebank Kết quả thực nghiệm cho thấy độ chính xác (precision) là trên 80% với hơn 9000 câu huấn luyện và 500 câu kiểm tra Những kết quả của luận văn cho thấy rằng, đối với tiếng Việt, mô hình 1 của Collin có độ chính xác thấp hơn so với mô hình 2, và mô hình 3 chưa thực sự hiệu quả Ngoài ra, kết quả thực nghiệm còn chỉ ra một số tham số của mô hình 2 của Collins có ảnh hưởng tới độ chính xác của bộ phân tích cú pháp
Trang 5MỤC LỤC
MỞ ĐẦU 1
Chương 1 Giới thiệu 2
1.1 Xử lý ngôn ngữ tự nhiên và các vấn đề chính 2
1.2 Phân tích cú pháp và ứng dụng trong xử lý ngôn ngữ tự nhiên 3
1.2.1 Định nghĩa: 3
1.2.2 Vai trò của phân tích cú pháp trong xử lý ngôn ngữ tự nhiên 3
1.3 Phân tích cú pháp dành cho tiếng Việt 4
1.3.1 Nhập nhằng – vấn đề chính của xử lý ngôn ngữ tự nhiên: 4
1.3.2 Phân tích cú pháp trong tiếng Việt 5
1.4 Mục tiêu 6
Chương 2 Phương pháp phân tích cú pháp 7
2.1 Văn phạm phi ngữ cảnh 7
2.2 Các phương pháp cổ điển 8
2.2.1 Phân tích top – down 8
2.2.2 Phân tích bottom – up: 10
2.2.3 So sánh giữa top – down và bottom – up 13
2.2.4 Thuật toán CYK (Cocke – Younger – Kasami) 13
2.2.5 Thuật toán Earley 15
2.3 Văn phạm phi ngữ cảnh xác suất (PCFGs) 19
2.3.1 Định nghĩa 19
2.3.2 Nhược điểm của văn phạm phi ngữ cảnh xác suất 20
2.4 Văn phạm phi ngữ cảnh xác suất từ vựng (LPCFGs) 22
2.4.1 Cấu trúc head 22
2.4.2 Mô hình một: Mô hình cơ sở 23
2.4.3 Mô hình 2: Phân biệt định ngữ và bổ ngữ, subcategorization 25
2.4.4 Mô hình 3: Trace và Wh-movement 27
Trang 6Chương 3 Tiếp cận trong xây dựng bộ phân tích cú pháp Tiếng Việt 28
3.1 Penn Treebank 28
3.1.1 Gán nhãn từ loại 28
3.1.2 Bracketing 30
3.2 Viet Treebank 32
3.2.1 Mục tiêu 32
3.2.2 Danh sách từ loại và các nhãn cú pháp 32
3.2.3 Một số đặc điểm của Viet Treebank 34
Chương 4 Bộ phân tích cú pháp của Bikel 35
4.1 Một số nhiệm vụ cơ bản 35
4.1.1 Tiền xử lý 35
4.1.2 Huấn luyện 40
4.1.3 Các loại tham số và các đánh giá 42
4.1.4 Decode 48
4.2 Tổng quan về bộ phân tích cú pháp 49
4.2.1 Mở đầu 49
4.2.2 Vấn đề cơ bản 50
4.2.3 Tổng quan về hệ thống 50
4.2.4 Khả năng 54
4.3 Kết luận 55
Chương 5 Áp dụng bộ phân tích cú pháp của Bikel và dữ liệu Viet Treebank 56
5.1 Gói ngôn ngữ tiếng Việt 56
5.2 Quá trình thực hiện: 57
5.2.1 Xử lý dữ liệu 57
5.2.2 Cấu hình để thực hiện: 58
5.2.3 Huấn luyện 61
5.2.4 Phân tích cú pháp 62
5.2.5 Đánh giá kết quả: 62
Trang 75.3 Kết quả đạt được: 63 KẾT LUẬN 67 TÀI LIỆU THAM KHẢO 68
Trang 8DANH SÁCH CÁC BẢNG
Bảng 1: Bảng phân tích bằng thuật toán CYK 15
Bảng 2: Bảng nhãn từ loại trong Penn Treebank 29
Bảng 3: Bảng nhãn cú pháp trong Penn Treebank 31
Bảng 4: Nhãn từ loại trong Viet Treebank 32
Bảng 5: Bảng nhãn cụm từ trong Penn Treebank 33
Bảng 6: Bảng nhãn mệnh đề trong Viet Treebank 34
Bảng 7: Các mức back-off với 47
Bảng 8: Tham số do Bikel đề xuất 47
Bảng 9: Cấu trúc back-off đối với các tham số 48
Bảng 10: Sô lượng câu để huấn luyện 58
Bảng 11: Bảng so sánh kết quả đối với xâu dài không quá 40 từ 63
Bảng 12: Bảng so sánh kết quả đối với xâu dài không quá 100 từ 64
Trang 9DANH SÁCH CÁC HÌNH VẼ
Hình 1: Mô hình xử lý ngôn ngữ tự nhiên 1
Hình 2: Cây cú pháp của câu "tôi nhìn cô gái với chiếc ống nhòm" 5
Hình 3: Dẫn xuất phân tích top - down 10
Hình 4: Dẫn xuất phân tích bottom - up 13
Hình 5: Mã giả của thuật toán Earley 17
Hình 6: Miêu tả dẫn xuất xâu từ Ni 1
Hình 7: Cây cú pháp của câu "bò ăn cỏ " 20
Hình 8: Cây dẫn xuất thứ nhất của xâu "Trung hiểu Nam hơn Thắng" 21
Hình 9: Cây dẫn xuất thứ hai của xâu "Trung hiểu Nam hơnThắng" 21
Hình 10: Cây cú pháp của xâu "bò ăn cỏ" có thêm thông tin từ vựng 23
Hình 11: Miêu tả độ đo khoảng cách trong câu 25
Hình 12: Cây cú pháp với hậu tố - C đánh dấu complement "IBM" và "Lotus" là chủ ngữ và bổ ngữ, trong khi "Last week" là định ngữ .25
Hình 13: Hai ví dụ về các thành phần bổ trợ được sinh ra một cách độc lập đã gây ra sai số .26
Hình 14: Dữ liệu đã gán nhãn trước khi xử lý thủ công 30
Hình 15: Dữ liệu đã gán nhãn sau khi xử lý thủ công 30
Hình 16: Dữ liệu hoàn chỉnh 32
Hình 17: Liên kết từ trong Penn Treebank 36
Hình 18: Liên kết từ trong Viet Treebank 36
Hình 19: Nút NBP cần thêm nút NP 37
Hình 20: Nhãn NBP được chỉnh sửa 38
Hình 21: Nâng cấc dấu câu lên, trong cây bên phải xuất hiện các dấu phẩy nằm cạnh nhau 39
Hình 22: Nút có nhãn HEAD cũng không là ngoại lệ khi thay đổi nhãn chức năng .40
Hình 23: Một ví dụ về hàm vi (“verb intervening”) nhận giá trị true, do nhãn NP có chứ động từ 41
Hình 24: Các thành phần và luồng làm việc 51
Trang 11Chương 1 Giới thiệu
Đã từ lâu, con người luôn ước mơ phát minh ra một chiếc máy có khả năng nghe
và thực hiện các mệnh lệnh của con người Cho đến nay, một hệ thống như vậy vẫn còn trong ước mơ bởi máy móc vẫn gặp khó khăn trong việc nhận biết ngôn ngữ của con người, từ việc nghe đúng cho đến việc hiểu đúng được lời nói của con người rất là khó khăn Tuy nhiên, con người đang tích cực nghiên cứu phát triển ra công nghệ mới
để thực hiện được một hệ thống thông minh như con người, lĩnh vực đó là xử lý ngôn ngữ tự nhiên
1.1 Xử lý ngôn ngữ tự nhiên và các vấn đề chính
Xử lý ngôn ngữ tự nhiên là lĩnh vực trong khoa học máy tính, nhiệm vụ của nó là xây dựng một hệ thống có thể phân tích, hiểu được ngôn ngữ của con người, không những thế hệ thống này còn có khả năng phản hồi lại bằng chính ngôn ngữ của con người Như vậy ta có một mô hình đơn giản về một hệ thống xử lý ngôn ngữ tự nhiên như sau:
Xử lý ngôn ngữ tự nhiên có rất nhiều ứng dụng trong thực tế, có thể kể ra ở đây một vài ứng dụng của xử lý ngôn ngữ tự nhiên như là dịch máy (machine translation), tìm kiếm thông tin (information retrieval), trích chọn thông tin (information retrieval) hay như là nhận dạng tiếng nói (speech recognition)
- Dịch máy (machine translation) là một ứng dụng có nhiệm vụ dịch một văn bản
từ một ngôn ngữ (ví dụ như tiếng Anh) sang một ngôn ngữ khác (chẳng hạn là tiếng Việt), giống như người phiên dịch
Trang 12- Tìm kiếm thông tin (information retrieval): ở đây ta có thể thấy một ví dụ rất điển hình đó là web search engine, www.google.com, website này là một dạng của tìm kiếm thông tin, tức là khi cần một thông tin, hệ thống sẽ thực hiện việc tìm kiếm trong
dữ liệu (tập rất nhiều các văn bản) một hay nhiều văn bản tương tự với thông tin ta cần tìm kiếm
- Trích chọn thông tin (information extraction): khi đưa vào một tập văn bản, hệ thống này có thể trả về cho ta những đoạn trong văn bản đó miêu tả thông tin chúng ta quan tâm Một ví dụ đơn giản ở đây là khi gặp một trang blog ta cần xác định một số thông tin về cá nhân sở hữu blog như tên, giới tính, địa chỉ, v.v… thì hệ thống trích chọn thông tin có nhiệm vụ trả về cho ta các thông tin này
- Nhận dạng tiếng nói (speech recognition): Khi bạn nói một câu, chúng ta đã có những hệ thống có thể ghi lại những âm thanh này ở dạng dữ liệu số, mục tiêu của ứng dụng này là chuyển được sóng âm thanh này thành dữ liệu văn bản
Trên đây là một số ứng dụng của xử lý ngôn ngữ tự nhiên và trong thực tế còn nhiều ứng dụng khác đang được nghiên cứu và phát triển Tuy nhiên, các ứng dụng ngôn ngữ tự nhiên đều có chung một số bài toán cơ sở như là phân tích từ tố, phân tích
cú pháp, phân tích ngữ nghĩa Trong đó, phân tích cú pháp đóng vai trò trung tâm trong ứng dụng XLNNTN và là mục tiêu của luân văn này
1.2 Phân tích cú pháp và ứng dụng trong xử lý ngôn ngữ tự nhiên
1.2.1 Định nghĩa:
Phân tích cú pháp (parsing hay syntatic analys) là quá trình phân tích một chuỗi
từ tố (chuỗi từ tố này là kết quả của quá trình phần tích từ tố, thông thường đối với xử
lý ngôn ngữ là các từ), nhằm đưa ra cấu trúc ngữ pháp của chuỗi từ đó dựa vào một văn phạm nào đó Thông thường cấu trúc ngữ pháp được chọn ở đây thường là ở dạng cây, bởi thông qua dạng này sự phụ thuộc của các thành phần là trực quan
1.2.2 Vai trò của phân tích cú pháp trong xử lý ngôn ngữ tự nhiên
Có thể nói phân tích cú pháp là bài toán cơ sở, xuất hiện rất nhiều trong các ứng dụng của xử lý ngôn ngữ tự nhiên Ví dụ đầu tiên ta có thể thấy ngay đó là áp dụng phân tích cú pháp trong kiểm tra lỗi ngữ pháp Đối với việc kiểm tra lỗi ngữ pháp ta cần thực hiện việc phân tích cú pháp câu đầu vào, xem cấu trúc có đúng không?
Trong dịch máy, hiện nay, có ba chiến lược dịch cơ bản là dịch trực tiếp, dịch chuyển đổi và dịch liên ngữ Đối với dịch trực tiếp, cách dịch này dựa vào bộ từ điền
Trang 13song ngữ để dịch, không sử dụng đến phân tích cú pháp Tuy nhiên trong dịch chuyển đổi và dịch liên ngữ, quá trình phân tích cú pháp là một bước quan trọng Tư tưởng chung ở đây là đều phân tích câu nguồn trở thành cây cú pháp sử dụng bộ phân tích cú pháp Đối với dịch chuyển đổi, hệ thống sẽ xây dựng cây cú pháp tương đương trong ngôn ngữ đích và cuối cùng đưa cây cú pháp thành câu cần đưa ra Đối với dịch liên ngữ, cây cú pháp ở ngôn ngữ nguồn được đưa thành một biểu diễn chung giữa hai ngôn ngữ sau đó dạng biểu diễn chung này được chuyển về cây cú pháp ở ngôn ngữ đích, cuối cùng trả về câu cần dịch
Trong lĩnh vực như nhận dạng tiếng nói (speech recoginition) sử dụng phân tích
cú pháp có thể giúp sửa sai quá trình nhận dạng Trong tổng hợp tiếng nói, phân tích
cú pháp giúp đặt trọng âm vào đúng vị trí trong câu
Những ví dụ ở trên đây đã khẳng định được vai trò của phân tích cú pháp trong
xử lý ngôn ngữ tự nhiên Vì vậy, ứng dụng xử lý ngôn ngữ tự nhiên cho tiếng Việt cần phải giải quyết được bài toán cơ sở và trọng tâm là phân tích cú pháp cho tiếng Việt
1.3 Phân tích cú pháp dành cho tiếng Việt
1.3.1 Nhập nhằng – vấn đề chính của xử lý ngôn ngữ tự nhiên:
Trước tiên, ta lấy một câu làm ví dụ: “Con ngựa đá con ngựa đá” Trong câu này,
từ “đá” xuất hiện hai lần, từ đá thứ nhất là động từ chỉ hành động sử dụng chân tác động vào vật khác, từ “đá” thứ hai lại là tính từ thể hiện chất liệu của con ngựa thứ hai
Có một số nhập nhằng trong xử lý ngôn ngữ tự nhiên như là
- Nhập nhằng trong việc phân đoạn từ (word segmentation): ví dụ câu học sinh học sinh học, việc phân đoạn từ chính xác sẽ là học_sinh học sinh_học, nhưng có thể gặp tách như học_sinh học_sinh học, hoặc học sinh_học sinh_học Có thể thấy việc phân đoạn từ các từ đều chính xác nhưng trong hai cách tách từ cuối đều không chấp nhận được vì các cụm từ này không có ý nghĩa
- Nhập nhằn trong gán nhãn từ loại: giống như ví dụ “con ngựa đá con ngựa đá”
từ “đá” thứ hai có thể được gán nhãn là V (nhãn chỉ động từ) trong khi nó là một tính
Trang 14Ta sử dụng cây cú pháp để miêu tả 2 trường hợp của câu này
Hình 2: Cây cú pháp của câu "tôi nhìn cô gái với chiếc ống nhòm"
Cây cú pháp bên trái miêu tả trường hợp “với ống nhòm” bổ nghĩa cho từ “cô gái”, trong trường hợp này câu được hiều là “tôi” “nhìn” “cô gái với ống nhòm” (tôi nhìn thấy cố gái và cô gái ấy có một cái ống nhòm) Còn hình bên phải miêu ta trường hợp “với ống nhòm” bổ nghĩa cho động từ “nhìn” Câu này có thể hiểu là “tôi” “nhìn”
“cô gái” “với ống nhòm” (tôi dùng ống nhòm để nhìn cô gái)
+ Nhập nhằng thứ hai là hiện tượng liên kết từ: Nhập nhằng này xảy ra trong một câu mà một từ có thể liên kết với từ trước hay từ đằng sau nó tạo thành một câu có
ý nghĩa hoàn toàn khác nhau Ví dụ như câu sau: “Nam hiểu Trung hơn Thành” Nếu như từ “Thành” liên kết với từ “Trung” ta có thể hiểu câu này là Nam hiểu Trung nhiều hơn là Nam hiểu Thành, nhưng ta có thể hiểu câu này theo một cách khác là Nam hiểu Trung nhiều hơn Thành hiểu Trung
1.3.2 Phân tích cú pháp trong tiếng Việt
Mặc dù phân tích cú pháp có vai trò trung tâm trong các ứng dụng XLNNTN, nhưng những nghiên cứu về phân tích cú pháp cho tiếng Việt còn rất hạn chế và chưa
có bộ phân tích cú pháp nào được công bố rộng rãi Một số bộ phân tích cú pháp đi theo hướng tiếp cận cũ (knowledge-base) thực hiện việc xây dựng luật ngữ pháp thủ công và không sử dụng thống kê trong đó Do việc xây dựng luật ngữ pháp thủ công nên độ chính xác của bộ phân tích cú pháp này còn chưa cao, chỉ phân tích được một
Trang 15số lượng hữu hạn câu do văn phạm sinh ra Hướng tiếp cận sử dụng thống kê cũng đã được nghiên cứu [6], nhưng còn sơ lược và đặc biệt là chưa có kết quả thực nghiệm
Với mục tiêu đó luận văn sẽ trình bày các nội dung sau:
Chương 2 trình bày về các phương pháp tiếp cận trong việc xây dựng bộ phân tích cú pháp từ phương pháp cổ điển như chiến lược phân tích top-down hay chiến lược phân tích bottom-up, cho đến hướng tiếp cận thống kê như sử dụng văn phạm phi ngữ cảnh xác suất, cuối cùng là sử dụng văn phạm phi ngữ cảnh xác suất từ vựng để xây dựng bộ phân tích cú pháp
Chương 3 sẽ trình bày về kho ngữ liệu, một thành phần không thể thiếu theo hướng tiếp cận sử dụng thống kê Chương này sẽ giới thiệu về một số đặc điểm, cách tiếp cận xây dựng kho ngữ liệu tiếng Anh – Penn Treebank và kho ngữ liệu tiếng Việt – Viet Treebank
Chương 4 sẽ cung cấp cái nhìn tổng quan nhất về bộ phân tích cú pháp của Bikel Chương 5 sẽ trình bày về cách thức thực hiện thực nghiệm thông qua việc sử dụng bộ phân tích cú pháp của Bikel cho tiếng Việt dựa vào kho ngữ liệu Viet Treebank và các kết quả cũng như đánh giá với hướng tiếp thống kê sử dụng Viet Treebank để huấn luyện
Cuối cùng là kết luận và tài liệu tham khảo
Trang 16Chương 2 Phương pháp phân tích cú pháp
Trong chương trước chúng ta đã thấy được một số khái niệm cơ bản về xử lý ngôn ngữ tự nhiên, phân tích cú pháp là gì và vai trò của nó trong các vấn đề của xử lý ngôn ngữ tự nhiên Để xây dựng bộ phân tích cú pháp, hầu hết các phương pháp hiện nay đều sử dụng văn phạm phi ngữ cảnh (Context Free Grammar) hay những cải tiến
bố sung để miêu tả các ngữ pháp Trong chương này, chúng ta sẽ tìm hiểu một số phương pháp xây dựng bộ phân tích cú pháp từ trước đến nay Đầu tiên phần 2.1, sẽ nêu lại khái niệm về văn phạm phi ngữ cảnh, khái niệm chung để biểu diễn ngôn ngữ
và nền tảng cho các phương pháp sau này Trong phần 2.2, chúng ta sẽ nhắc lại hai phương pháp cổ điển là top – down và bottom – up (thuật toán CYK – cook, young and kasami), chart parsing (thuật toán Earley – phương pháp kết hợp giữa top – down
và bottom – up) Phần 2.2 sẽ đưa ra hướng đi mới trong việc xây dựng bộ phân tích cú pháp, bài toán phân tích cú pháp được coi như là một vấn đề trong học máy Và trong chương cuối, chúng ta sẽ tiếp cận với một mô hình sử dụng từ tố kết hợp với xác suất
để giải quyết bài toán
2.1 Văn phạm phi ngữ cảnh
Muốn thực hiện được phân tích cú pháp trước tiên ta cần phải biểu diễn được ngôn ngữ đó bằng máy tính Ngôn ngữ được định nghĩa là tập các xâu mà mỗi xâu này được tạo ra bởi một tập hữu hạn các phần tử không rỗng gọi là bảng chữ cái, ví dụ như bảng chữ cái tiếng Việt và ngôn ngữ tiếng Việt Văn phạm là một bộ gồm 4 phần từ: G
= <, , S, R> với
- chứa hữu hạn các phần từ được gọi là phần tử kết thúc – terminal
- chứa hưu hạn các phần tử được gọi là phần tử không kết thúc – nonterminal và
- S là một trong những phần tử được gọi là ký tự bắt đầu
- R là một tập hữu hạn các văn phạm, chứa các luật ngữ pháp(đôi khi gọi là sản xuất – production)
Hợp giữ và được gọi là từ điển đầy đủ của ngôn ngữ
Một xâu gọi là được sinh ra bởi văn phạm khi và chỉ khi xâu đó có một dẫn xuất đầy đủ trong G
Chomsky đưa ra phân loại của mình về văn phạm:
- Văn phạm loại 0: Văn phạm cấu trúc câu là các văn phạm mà luật có dạng
- Văn phạm loại 1: Văn pham cảm ngữ cảnh là văn phạm mà luật có dạng
với là độ xài của xâu
- Văn phạm loại 2: Văn phạm phi ngữ cảnh là văn phạm mà luật có dạng
- Văn phạm loại 3: Văn phạm chính quy là văn phạm mà luật có dạng
Trang 17Trong phân tích cú pháp người ta sử dụng văn phạm phi ngữ cảnh hoặc một số cải tiến của văn phạm phi ngữ cảnh để biểu diễn văn phạm xây dựng các phương pháp
để giải quyết bài toán phân tích cú pháp Phần tiếp theo sẽ trình bày về các phương pháp này
vế phải trong bộ luật Trong trường hợp phân tích top – dowm chưa kết thúc (chưa phát triển được toàn bộ xâu đầu vào) thì ta thực hiện quay lui để tìm luật khai triển phù hợp
2.2.1.2 Mô tả thuật toán
Đầu vào: văn phạm phi ngữ cảnh không đệ quy trái (nếu văn phạm đệ quy trái thì khi phân tích sẽ xảy ra hiện tượng lặp vô hạn) và chuỗi từ cần phân tích
Đầu ra: là các cây cú pháp của chuỗi từ cân phân tích
- Bước 1: Ta gọi gốc của cây là S (ký tự bắt đầu) Ta sử dụng một con trỏ chỉ vào xâu cần phân tích Từ vào hiện tại là từ trong xâu vào được con trỏ trỏ đến Vị trí đầu tiên của con trỏ là từ trái nhất của xâu
- Bước 2: Giả sử A là ký tự đỉnh hiện tại và con trỏ đang trỏ vào ký tự x của xâu đầu vào (đỉnh hiện tại là đỉnh sẽ được xây dựng tiếp theo)
+Nếu A thuộc tập ký tự không kết thúc thì chọn luật mà vế trái là A, giả sử luật này có dạng A X1X2 Xk thì ta chọn nút X1 làm nút đang xét Nếu như k = 0 thì đỉnh phân tích tiếp theo sẽ là ký tự bên phải của A
+ Nếu A thuộc tập ký tự kết thúc thì thực hiện so sánh với từ vào hiện tại Nếu trùng nhau thì lấy ký tự bên phải A là đỉnh phân tích tiếp và con trỏ dịch sang phải một ký tự Nếu như khác nhau thì quay lại bước 2a, chọn luật kế tiếp bắt đầu bằng
A
Sau một số hữu hạn bước ta sẽ phân tích được hết xâu vào, lúc đó sẽ có trường hợp sau:
- Xây dựng được cây cú pháp với đầu vào là văn phạm và xâu
- Không xây dựng được cây cú pháp
2.2.1.3 Ví dụ
Ta sử dụng văn phạm sau:
S NP VP (1)
Trang 18Ta thực hiện việc phân tích câu “tôi bò”
Sau đây là dẫn xuất của quá trình phân tích
Trang 19Hình 3: Dẫn xuất phân tích top - down
Quá trình phân tích từ trái qua phải, tìm dẫn xuất của ký tự không kết thúc trái nhất, ưu tiên luật từ trên xuống dưới, ở đây từ dẫn xuất d e ta thấy xâu “tôi” “ăn” không chính xác nên quay lui, ta có được dẫn xuất f khi sử dụng luật 9 Cuối cùng ta thu được xâu cần phân tích
2.2.2 Phân tích bottom – up:
2.2.2.1 Định nghĩa:
Khác hẳn với phân tích top – down, bộ phân tích bottom – up xuất phát từ một câu đầu vào, sử dụng hai hành động chính là đẩy vào (shift) và thu gọn (reduce) để thu gọn chuỗi đầu vào thành ký tự bắt đầu (gốc của cây cú pháp) Sử dụng một ngăn xếp,
ta tiến hành đẩy các từ đầu vào vào ngăn xếp theo chiều từ trái sang phải (shift), nếu như ngăn xếp có thể thu gọn (reduce – ngăn xếp lúc này chứa vế phải của một luật và những ký tự này có thể được thay bằng vế trái của luật đó) Cũng giống như trong phân tích top – down, khi xảy ra lỗi, hoặc không phân tích được, chúng ta thực hiện hành động quay lui để phát triển theo một luật khác Quá trình này tiếp tục cho đến khi
ta không thể quay lui được nữa, lúc này nếu ngăn xếp không được thu gọn về trạng thái bắt đầu thì bộ phân tích bottom – up không thể phân tích chuỗi từ đầu vào
Trang 22Hình 4: Dẫn xuất phân tích bottom - up
Ta thấy có quá trình tích khi đến trạng thái (e) có lỗi xảy ra nên thực hiện quay lui, chú ý ở đây có trường hợp N bò, và V bò, tuy nhiên với cách sắp xếp luật như trên nên trường hợp này không bị phân tích lỗi, tuy nhiên khi có lỗi xảy ra có thể vẫn quay lui về cây cú pháp đúng này
2.2.3 So sánh giữa top – down và bottom – up
Cả hai phương pháp này đều có những ưu điểm và nhược điểm riêng Chiến lược phân tích top – down không lãng phí thời gian để duyệt các cây không là kết quả đối với gốc S, khi mà nó bắt đầu được sinh ra bởi những cây này Điều đó có nghĩa là nó cũng không bao giờ thăm các cây con mà không thể tìm được vị trí trong các gốc cây
S Ngược lại, đối với chiến lược bottom – up, cây cú pháp có thể không được sinh ra bởi ký tự bắt đầu S hoặc phù hợp với bất kỳ nốt liền kề nào đó, mà được sinh ra một cách ngẫu nhiên
Cách tiếp cận có những nhược điểm nhất định Trong khi không lãng phí thời gian với nhưng cây không bắt đầu bởi S, bộ phân tích lại dành quá nhiều nỗ lực vào cây S mà không phù hợp với đầu vào Điểm yếu này của bộ phân tích là do việc sinh cây diễn tra trước khi kiểm tra về đầu vào
2.2.4 Thuật toán CYK (Cocke – Younger – Kasami)
2.2.4.1 Mô tả:
Thuật toán CYK, đôi khi được gọi là thuật toán CKY, có thể xác định được một xâu có do một văn phạm phi ngữ cảnh sinh ra hay không, và cách mà nó được sinh ra Thuật toán này là một dạng phân tích bottom – up sử dụng quy hoạch động Thuật toán CYK làm việc với văn phạm phi ngữ cảnh chuẩn Văn phạm phi ngữ cảnh chuẩn là
, và nếu văn phạm phi ngữ cảnh không chứa xâu rỗng thì đều có thể phân tích về dạng chuẩn Chomsky
Trang 232.2.4.2 Mã giả và ví dụ
- Mã giả của thuật toán CYK
Let the variable Carlos be the input string consisting
For each i = 2 to n Length of span
For each j = 1 to n-i+1 Start of span
For each k = 1 to i-1 Partition of span
For each production RA -> RB RC
If P[j,k,B] and P[j+k,i-k,C] then set P[j,i,A]
= true
If any of P[1,n,x] is true (x is iterated over the set
s, where s are all the indices for Rs)
Then Carlos is member of language
Else Carlos is not member of language
NP “tôi” (2a) (ghép luật (2) với luật (3))
NP “bò” (3a) (ghép luật (2) với luật (4))
NP “cỏ” (4a) (ghép luật (2) với luật (5))
N “tôi” (5a)
N “bò” (6a)
N “cỏ” (7a)
Trang 24VP “ăn” (8a) (ghép luật (6) với luật (8))
VP “bò” (9a) (ghép luật (6) với luật (9))
VP V PP (10a)
V “ăn” (11a)
PP “tôi” (13a) (ghép luật (10) với luật (3))
PP “bò” (14a) (ghép luật (10) với luật (4))
PP “cỏ” (15a) (ghép luật (10) với luật (5))
Bảng 1: Bảng phân tích bằng thuật toán CYK
2.2.5 Thuật toán Earley
2.2.5.1 Mô tả
Cũng giống nhưng CYK, Earley (Earley, 1970) sử dụng cách tiếp cận bằng quy hoạch động để đưa ra bộ phân tích top – down Như mọi lời giải của quy hoạch động, thuật toán này giảm thời gian chạy từ hàm mũ về hàm đa thức bằng cách loại bỏ những giải pháp con do việc quay lui sinh ra Trong trường hợp này, quy hoạch động làm cho thuật toán có thời gian chạy là O (N3) với N là tống số từ của chuỗi đầu vào
Tư tưởng chính của thuật toán Earley là duyệt từ trái qua phải và tạo ra một mạng
được gọi là chart có N + 1 thực thể Mỗi từ trong câu, chart chứa một danh sách các
trạng thái biểu diễn từng thành phần của cây phân tích mà nó được sinh ra Khi phân tích xong một câu, chart đánh dấu việc phân tích câu đầu vào đã kết thúc Mỗi cây con
có thể chỉ được biểu diễn một lần duy nhất và có thể được bộ phân tích sử dụng lại Mỗi trạng thái riêng chứa một thực thể chart bao gồm ba thông tin: một cây con tương ứng với một luật ngữ pháp, thông tin về quá trình phát triển cây, và vị trí của cây con tương ứng với đầu vào Chúng ta đặt ký tự chấm (.) ở bên phải của một luât ngữ pháp để miêu tả quá trình phát triển đã phân tích được luật đó Cấu trúc này được
gọi là dotted rule Trạng thái của vị trí sẽ được miêu tả bởi hai số: xác định vị trí trạng
thái bắt đầu và vị trí của dấu chấm
Sử dụng văn phạm ở phần 2.2.1 ta có ví dụ về dotted rule như sau:
Trang 25qua việc tạo thêm thông tin vào chart, trạng thái không bao giờ bị hủy bỏ và không có
quay lui về thực thể chart trước đó Và trạng thái S α , [0, N] trong danh sách các
trạng thái là thực thể chart cuối cùng, thể hiện quá trình phân tích thành công đầu vào
Ba toán từ chính của thuật toán Earley là PREDICTOR, COMPLETER và SCANNER Các toán từ này nhận đầu vào là một từ và dưa ra một trạng thái Hai toán
từ PREDICTOR và COMPLETER đưa thêm các trạng thái vào thực thể, còn SCANNER thêm trạng thái vào một thực thể chart mới
+ Predictor
Predictor có nghĩa là người dự đoán, đúng như tên gọi của nó toán từ này có nhiệm vụ tạo ra trạng thái mới, biểu diễn các trạng thái có thể xảy ra trong suốt quá trình phân tích PREDICTOR được áp dụng đối với bất kỳ trạng thái nào mà ký tự không kết thúc nằm ở bên phải của dấu chấm và không nằm trong nhóm part-of-speech Kết quả của toán tử này là một trạng thái mới cho mỗi mở rộng được thay thế cho kí tự không kết thúc trong ngữ pháp Chúng bắt đầu và kết thúc tại vị trí của dấu chấm trong xâu đầu vào tại điểm mà trạng thái được sinh ra kết thúc
+ Scanner
Khi một trạng thái có từ được gán nhãn nằm ở bên phải của dấu chấm, toán từ Scanner được goi để kiểm tra đầu vào và hợp nhất trạng thái tương ứng với các nhãn
để đưa vào chart Nhiệm vụ hoàn thành khi một trạng thái mới được tạo ra và thay đổi
vị trí của dấu chấm dựa vào nhóm đầu vào đã dự đoán Chú ý rằng, bộ phân tích Earley sử dụng đầu vào như bộ phân tích top – down để tránh nhập nhằng trong quá trình phân tích, chỉ những ký tự kết thúc (được gán nhãn) , những từ được dự đoán bởi những trạng thái, sẽ được phân tích bởi chart
+ Completer
Toán tử Completer áp dụng cho những trạng thái mà dấu chấm đã ở cuối luật Dễ dàng nhận thấy, trạng thái hiện tại thể hiện rằng bộ phân tích đã thành công trong việc tìm ra dẫn xuất theo ngôn ngữ của đầu vào Mục địch của toán tử Completer là tìm trong những luật ngữ pháp và phát triển những trạng thái trước đối với vị trí hiện tại của đầu vào Trạng thái mới được tạo bằng việc lấy những trạng thái cũ, và phát triển dấu chấm thông qua luật của ngữ pháp và đưa những trạng thái mới vào thực thể chart hiện tại
Trang 26Hình 5: Mã giả của thuật toán Earley
Ta sử dụng văn phạm ở phần trước để phân tích câu “tôi bò” dùng thuật toán Earley:
Trang 272.2.5.2 Khôi phục cây cú pháp từ Chart
Thuật toán Earley như ở trên chỉ có tác dụng xác định xem câu cần phân tích có thuộc bộ phân tích cú pháp hay không chứ không phải là một bộ phân tích cú pháp Sau khi thuật toán kết thúc, thực thể chart cuối cùng sẽ chứa một trạng thái như sau: S
α [0, N] Tuy nhiên, chúng ta không có phương pháp nào để thu hồi được cấu trúc của S Để xây dựng bộ phân tích cú pháp từ thuật toán Earley, chung ta cần đưa ra thông tin về cú pháp từ chart Để là được điều này, chúng ta sẽ miêu tả mỗi trạng thái bằng một tham số kết hợp với thông tin hỗ trợ để lưu trữ thông tin về trạng thái kết thúc
Những thông tin hỗ trợ này được sinh ra khi ta thay đổi toán tử COMPLETER Bằng việc đánh dấu trạng thái mới được sinh ra từ trạng thái nào trước đó Việc truy vết cây cú pháp từ chart chỉ đơn thuần là quá trình hồi quy bứt đầu với trạng thái kết thúc của S trong thực thể chart cuối cùng
Nếu có nhiều cây cú pháp đối với một câu, thuật toán Earley không thể trả về toàn bộ kết quả trong thời gian đa thức Nhưng thời gian tốt nhất để sinh ra chart là thời gian đa thức Một nhược điểm nữa đó là trong quá trình tạo ra các chart thì thuật toán cũng tạo ra những trạng thái thừa
Trang 282.3 Văn phạm phi ngữ cảnh xác suất (PCFGs)
2.3.1 Định nghĩa
Một hướng tiếp cận mới trong việc xây dựng bộ phân tích cú pháp là sử dụng phương pháp thống kê Bài toán phân tích cú pháp giống như một bài toán trong học máy, thông qua quá trình huấn luyện xây dựng một mô hình xác suất, để thực hiện việc lựa chọn cây cú pháp phù hợp nhất Trong phần này chúng ta sẽ tiếp cận văn phạm phi ngữ cảnh xác suất (PCFG – Probabilistic Context Free Grammar) Mô hình đơn giản nhất của PCFG là văn phạm phi ngữ cảnh (CFG – Context Free Grammar) với xác suất được thêm vào mỗi luật Tại sao lại sử dụng PCFGs, đó là vì: PCFGs rất đơn giản
và mô hình xác suất đơn giản đối với cấu trúc cây, mô hình toán học đơn giản, thuật toán không quá phức tạp, v.v…
Văn phạm phi ngữ cảnh xác suất bao gồm:
- Tập các ký tự kết thúc { wk } với k = 1, 2, … V
- Tập các ký tự không kết thúc { Ni } với i = 1, 2, … n
- Ký tự N1 được gọi là ký tự bắt đầu
- Tập các luật có dạng Ni αj với α [ w x N ]*
- Tương ứng với mỗi luật là một xác suất P (Ni αj) sao cho
với J là tống số luật có vế trái là Ni Khi viết P (Ni αj) có nghĩa là P (Ni αj | Ni) – xác suất sử dụng luật Ni αjkhi xuất hiện vế trái Ni Để miêu tả một câu là dùng chuỗi sau: w1w2…wm hay wab để miêu tả một chuỗi ký tự không kết thúc wa…wb Một dạng rút gọn khi biểu diễn các nhánh cây có gốc là nốt Ni và dẫn xuất ra xâu wa…wb như sau:
Ta có thể hiểu rằng xâu wa…wb có thể dẫn xuất từ Nj Xác suất của một câu sẽ được tính theo công thức
với t là cây cú pháp của xâu
Trang 29PP N 1.0 (10)
Hình 7: Cây cú pháp của câu "bò ăn cỏ "
Giả sử với cây cú pháp này ta sẽ tính toán xác suất của cây
2.3.2 Nhược điểm của văn phạm phi ngữ cảnh xác suất
- Văn phạm phi ngữ cảnh thiếu sự nhạy bén đối với các thông tin từ vựng Trong ngôn ngữ, ý nghĩa và cấu trúc câu phụ thuộc nhiều vào ngữ cảnh của câu đó, chằng hạn câu “Trung hiểu Nam hơn Thắng” Câu này có thể đưa phân tích thành 2 cấu trúc như Hình 8 và Hình 9
Trang 30Hình 8: Cây dẫn xuất thứ nhất của xâu "Trung hiểu Nam hơn Thắng"
Hình 9: Cây dẫn xuất thứ hai của xâu "Trung hiểu Nam hơnThắng"
Trang 31Câu này hoàn toàn đúng về mặt cú pháp, nếu xác suất của hai câu, ta phải đưa thông tin về từ vựng như ngữ cảnh nói vào để phân biệt
- Văn phạm phi ngữ cảnh xác suất thiếu nhạy bén trong việc xác định cấu trúc ngữ pháp: đôi khi trong việc phân tích cú pháp việc xác định cấu trúc còn phụ thuộc vào từ cấu tạo nên câu Một ví dụ đơn giản là nếu ta có một luật là NP N N, ta thấy trong ngôn ngữ có một số từ không thể đi cùng với nhau, nhưng trong quá trình tính toán cấu trúc có sự phi lý đó lại có xác suất lớn, vì vậy đó xảy ra hiện tượng nhập nhằng
Vì vậy, đối với văn phạm phi ngữ cảnh xác suất việc đưa thêm thông tin cú pháp vào là cải tiến có lợi
2.4 Văn phạm phi ngữ cảnh xác suất từ vựng (LPCFGs)
Như ở phần trước, chúng ta đã tiếp cận mô hình xác suất cho bộ phân tích cú pháp Tuy nhiên, mô hình nà vẫn còn một số nhược điểm Năm 1996, trong luận án, Collin đã đưa ra mô hình xác suất mới dựa vào từ vựng (LPCFG – Lexical Probabilistic Context Free Grammar) Trong ba mô hình, Collin đưa vào văn phạm phi ngữ cảnh xác suất cấu trúc head
“một” Tuy nhiên chú ý rằng ta có thể bỏ từ “một” nhưng cụm từ vẫn có nghĩa (“mái tóc đẹp”) … Như vậy, từ “mái” là thành phần trung tâm của cụm từ hay câu (head) Như vậy, trong văn phạm này, mỗi ký tự không kết thúc được gắn thêm thành phần trung tâm của cụm từ hay câu đó Việc xác định head của một ký tự không kết thúc, ta phải dựa vào head của các ký tự con
Trang 32Hình 10: Cây cú pháp của xâu "bò ăn cỏ" có thêm thông tin từ vựng
2.4.2 Mô hình một: Mô hình cơ sở
Đây là mô hình cơ bản nhất trong các mô hình do Collins đưa ra Đầu tiên ta có một luật giống như trong văn phạm phi ngữ cảnh xác suất (PCFG) có dạng như sau:
1
H là ký tự không kết thúc đánh dấu cho thành phần head và h là từ trung tâm được gán cho ký tự này L1, … Ln và R1 Rm là thành phần trái, phải của ký tự H Nếu như n hoặc m bằng không hay cả n và m đều bằng không thì luật unary Ngoải ra, ở vế trái và phải của chuỗi ta thêm 2 ký tự STOP nhằm đánh đấu kết thúc luật Vì vậy ta có
Ln+1 = Rm+1 = STOP
Ta lấy dẫn suất S (ăn) NP (bò) VP (ăn) làm ví dụ
ở đây n = 1, m = 0, P = S, H = VP, L1 = NP, L2 = STOP, R1 = STOP, h = (ăn, V),
l1 = (bò, N)
Xác suất của luật có thể được tính dựa vào chain rule như sau:
Trang 33Tiếp theo đó, chúng ta giả sử rằng các ký tự không kết thúc hoàn toàn độc lập thì
ta có thể viết lại biểu thức như sau:
34
Như vậy, mỗi bước phân tích về phải của luật từ vế trái của luật thì bao gồm ba
bước chính sau:
1 Sinh ra nhãn head của cây với xác suất là
2 Tính toán xác suất đối với vế trái của head có xác suất là
, trong đó Ln+1 (ln+1) = STOP Ký tự STOP sẽ được thêm vào bảng ký tự không kết thúc, và mô hình sẽ dừng việc sinh tiếp xác suất vế trái cho đến
khi gặp ký tự STOP
3 Tính toán xác suất đối với vế phải của head là và ký
tự Rm+1(rm+1) cũng là STOP giống như ở bước 2
Áp dụng phương trình 2 vào ví dụ trên ta sẽ có
Tuy nhiên, trong thực tế, các từ không hoàn toàn độc lập với nhau mà có một độ
phụ thuộc nào đó Đề giải quyết việc này, ta có thể sử dụng history base model để ước
lượng xác suất Sử dụng hàm để miêu tả cho ước lượng xác suất dựa vào history
base model Ta có:
5 6
Có thể nhận thấy rằng phương trình 5 và 6 là trường hợp ta loại bỏ mọi thứ đối
với hàm chỉ giữ lại P, H và h
Trang 34Chú ý rằng, khoảng cách giữa các từ bổ nghĩa cho thành phần trung tâm cũng rất quan trọng Trong một số trường hợp đặc biệt, đó là dấu hiệu để nhận biết của cấu trúc phân nhánh (độ phụ thuộc của các từ liền kề nhau), hay sự phụ thuộc thông qua động
từ
Thông tin về khoảng cách có thể được đưa vào mô hình nhằm nâng cao sự phụ thuộc giữa các từ bổ trợ Ta có thể viết lại công thức như sau:
7 8
Hình 11: Miêu tả độ đo khoảng cách trong câu
2.4.3 Mô hình 2: Phân biệt định ngữ và bổ ngữ, subcategorization
Ta thử lấy một cây như sau trong tiếng Anh:
Hình 12: Cây cú pháp với hậu tố - C đánh dấu complement "IBM" và "Lotus" là chủ ngữ
và bổ ngữ, trong khi "Last week" là định ngữ
Trong mô hình hai này, để đánh dấu đâu là bổ ngữ thì ta đưa thêm hậu tố -C vào mỗi ký tự không kết thúc Tại sao việc xác định bổ ngữ lại quan trọng? Trong ví dụ trên, “IBM” được xác định là chủ ngữ của câu, còn “Last week” là thành phần bổ nghĩa, mặc dù cả hai cùng được gán nhãn NP, ngoài ra “Lotus” cũng là một danh từ được gán nhãn NP, ở đây “Last week” là một thành phần bổ nghĩa cho sự kiện, còn
“Lotus” lại bổ nghĩa cho động từ “bought” Vì vậy “Lotus” là bổ ngữ (complement),
“Last week” là định ngữ (adjunction) Sự khác biệt về chức năng của hai nhãn NP
Trang 35(“Last week”, và “IBM”) là không phù hợp trong cây cú pháp, vì hai nhãn NP đặt cùng
vị trí Ngoài ra, chúng ta chỉ có thể đưa những thông tin này vào trong quá trình phân tích Việc đưa thông tin này vào làm tăng khả năng xác định cây cú pháp đúng, giảm
sự nhập nhằng của văn phạm
- Việc xác định bổ ngữ rất phức tạp đối với việc sử dụng xác suất Thông tin về
từ vựng là cần thiết Ngoài ra, độ ưu tiên của các subcategoziation cũng cần được để ý đến
- Trong quá trình phân tích cú pháp, việc phân biệt bổ ngữ và định ngữ cũng làm tăng độ chính xác
Mô hình một có thể được huấn luyện với tập dữ luyện nâng cao bao gồm các ký
tự không kết thúc và quá trình học các thông tin từ vựng có thể chỉ ra được sự phân biệt giữa bổ ngữ và định ngữ Tuy nhiên, nó vẫn còn gặp phải những ước lượng độc lập tồi Đề giải quyết vấn đề này, quá trình xử lý mới thừa kế mô hình một được cải tiến bằng cách thêm vào xác suất phụ thuộc của subcategorization frame trái và phải:
- Lựa chọn head H với xác suất
- Lựa chọn subcat frames trái và phải, LC và RC với xác suất và
Mỗi một subcat frame là một tập (tập này có thể chứa các ký tự không kết thúc có nhãn giống nhau) các từ bổ nghĩa cho head ở phía trái hoặc phải
Trang 36- Tính toán xác suất cho các từ bồ nghĩa ở vế trái hoặc phải của head dựa vào
Vì vậy, subcat cần được thêm vào trạng thái của ngữ cảnh Trong trường hợp bổ ngữ được sinh ra, chúng sẽ bị loại bỏ trong các tập subcat thích hợp Quan trọng nhất là xác suất của ký tự STOP được gán là 0 khi tập subcat không rỗng và xác suất của bổ ngữ bằng 0 khi nó không nằm trong tập subcat nào cả
2.4.4 Mô hình 3: Trace và Wh-movement
Một khó khăn cho việc phân tích vị ngữ đối với bộ phân tích cú pháp đó là movement (trong tiếng Anh, đây là thành phần nằm trong mệnh đề như which, whom v.v…, với tiếng việt đôi khi từ liên kết bị giảm đi ví dụ như câu “Nguyễn Văn A sinh viên trường công nghệ đã đoạt giải trong kỳ thi Sao Mai 2008 – Nguyen van A who is student in coltech, have just get price in Sao Mai 2008”) Ở đây, TRACE được dùng
wh-để dánh dấu các mệnh đề quan hệ như trong ví dụ sau:
Ví dụ 1: “Câu chuyên (SBAR mà TRACE mua Lotus)
Ví dụ 2: “Câu chuyện (SBAR mà IBM mua TRACE)
Ví dụ 3: “Câu chuyện (SBAR mà IBM mua Lotus từ TRACE)
Ta có thể viết các luật cơ bản để nhận dạng ra trường hợp này trong cây cú pháp Tuy nhiên, nhiệm vụ này nên được đưa vào trong bộ phân tích cú pháp bởi vì nó đủ phức tạp để nhân ra được sự thay đổi của xác suất và việc đưa vào bộ phân tích có thể nâng cao độ chính xác
Nguyên nhân thứ hai để đưa tham số này vào bộ phân tích cú pháp là nhằm nâng cao các tham số cho mô hình Thông thường, xác suất của các subcategorization không
rõ ràng trong quá trình phân tích Trong 3 ví dụ ở trên động từ “mua” là ngoại động từ nhưng nếu không có thông tin truy vết thì xác suất của “mua” sẽ làm cho nó trở thành nội động từ
Như vậy, đối với mỗi một ký tự không kết thúc trong cây cú pháp ta đưa thêm
vào đó một đặc trưng gap giống như GPSG (Gazadar et al 95) và đưa thêm đặc trưng
này vào cây cho đến khi không thể truy vết được nữa
Trang 37Chương 3 Tiếp cận trong xây dựng bộ phân tích cú pháp Tiếng Việt
Như trong chương trước, bộ phân tích cú pháp giống như bài toán trong học máy
Để xây dựng mô hình xác suất cho bộ phân tích chúng ta cần thông qua quá trình huấn luyện Vậy dữ liệu để huấn luyện bộ phân tích cú pháp là gì? Hiện nay, trên thế giới đã
có một số ngữ liệu cho Tiếng Anh (Penn Treebank), Tiếng Trung (Chinese Treebank)
và kho ngữ liệu dành cho tiếng Việt (Việt Treebank) đang được xây dựng Chương này
sẽ tập trung miêu tả về kho ngữ liệu Penn Treebank và Việt Treebank
3.1 Penn Treebank
Treebank là một kho ngữ liệu trong đó mỗi câu đều có cấu trúc cú pháp thường ở dạng cây Treebank thường được xây dựng dựa vào tập ngữ liệu đã gán nhãn, đôi khi các thông tin về ngôn ngữ hoặc ngữ nghĩa cũng được đưa vào cấu trúc cú pháp nhằm tăng chất lượng của Treebank Việc xây dựng Treebank có thể được thực hiện hoàn toàn thủ công hoặc bán tự động với bộ phân tích cú pháp, sau khi phân tích cú pháp, cây cú pháp cần được kiểm tra đôi khi phải hoàn chỉnh lại nó Công việc này có thể kéo dài đến hàng năm Penn treebank do đại học Pennsylvania phát triển, chứa khoảng 4.5 triệu câu Anh – Mỹ Trong ba năm từ 1989 đến 1992, người ta thực hiện việc gán nhãn từ loại cho các câu Ngữ liệu này có thể được tìm thấy trên website: http://www.ldc.upenn.edu/ Phần tiếp theo sẽ trình bày về một số nhãn từ loại trong Penn Treebank Sau đó, chúng ta chuyển sang nhiệm vụ xếp các thành phần với nhau
Mặc dù dựa trên tập nhãn cơ sở là các nhãn trong khối ngữ liệu Brown, nhưng nhóm xây dựng Penn Treebank sử dụng thông tin cú pháp và thông tin từ vựng trong việc làm giảm tập nhãn cú pháp Ngoài ra, việc kích thước tập nhãn cú pháp cũng làm
Trang 38tăng tính nhất quán trong ngữ liệu Một ví dụ đơn giản ở đây đó là nếu hai cụm từ hay câu về cú pháp có một sự tương đồng nhưng được gán nhãn hoàn toàn khác nhau là điều không thích hợp Trong Penn Treebank, nhóm xây dựng ngữ liệu đã đưa thêm thông tin liên quan đến ngữ cảnh vào để thực hiện việc gán nhãn, qua đó tăng độ chính xác của ngữ liệu Một đặc điểm riêng nữa của Penn Treebank đó là tính đa dạng Không như các ngữ liệu khác, việc gán nhãn không nhất thiết là một nhãn duy nhất mà
nó còn có thể có nhiêu loại nhãn khác nhau
Trang 39đẩu ra của PARTS sẽ được tự động từ tố hóa, sau đó được gán dựa vào tập các nhãn từ loại của Penn Treebank Sai số ở đây khoảng 7-9%
- Quá trình chỉnh sửa thủ công: sau khi được gán nhãn tự động bởi PARTS, đầu
ra bây giờ cần được chỉnh sửa lại cho đúng Công việc này được thực hiện bởi con người – người chú giải Anh ta sử dụng một trình soạn thảo văn bản (ở đây là GNU Emacs Lisp) để thao tác Dưới đây là ví dụ trước và sau khi xử lý được lấy ra từ tài liệu của nhóm xây dựng Penn Treebank
Hình 14: Dữ liệu đã gán nhãn trước khi xử lý thủ công
Hình 15: Dữ liệu đã gán nhãn sau khi xử lý thủ công
Hình 3 1: Sau khi được xử lý
3.1.2 Bracketing
3.1.2.1 Phương pháp cơ bản
Phương pháp để gộp toàn bộ ngữ liệu là xử lý song song đối với việc gán nhãn và chỉnh sửa thủ công Với bộ nhãn như trên, người ta sử dụng Fidditch, bộ phân tích tất định được phát triển bởi Donald Hindle Một số thuộc tính cơ bản của bộ phân tích:
- Fidditch luôn đưa ra ít nhất một cây cú pháp đối với một đầu vào, nên không cần tìm kiếm trong nhiều kết quả