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

  • Số trang: 78 |
  • Loại file: DOCX |
  • Lượt xem: 38 |
  • Lượt tải: 0
nhattuvisu

Đã đăng 26946 tài liệu

Mô tả:

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ 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 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ 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 LỜ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. TÓ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. MỤ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 Chươ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 5.3. Kết quả đạt được:....................................................................................63 KẾT LUẬN.......................................................................................................67 TÀI LIỆU THAM KHẢO .................................................................................68 DANH 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 DANH 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 MỞ ĐẦU Phân tích cú pháp là một bài toán trung tâm trong XLNNTN. Phân tích cú pháp được sử dụng trong rất nhiều ứng dụng của XLNNTN. Độ chính xác của bộ phân tích cú pháp có ảnh hưởng lớn tới kết quả của các ứng dụng xử lý ngôn ngữ khác. Các nghiên cứu về xây dựng phân tích cú pháp tự động đã được phát triển từ rất sớm và đã có nhiều bộ phân tích cú pháp với chất lượng rất tốt cho các ngôn ngữ như tiếng Anh, tiếng Trung [9]. Ngày nay, nhiều ứng dụng trong XLNNTN đang được nghiên cứu và phát triển cho tiếng Việt và nhu cầu về một bộ phân tích cú pháp tiếng Việt với độ chính xác cao là rất cấp thiết. Tuy nhiên, các nghiên cứu về phân tích cú pháp tiếng Việt vẫn còn hạn chế và tập trung chủ yếu vào tiếp cận cũ (Knowledge-based), với kết quả còn hạn chế và chưa có bộ phân tích nào được công bố rộng rãi. Vì vậy, khóa luận này hướng tới việc xây dựng bộ phân tích cú pháp tiếng Việt theo tiếp cận thống kê. Chúng tôi theo tiếp cận này sử dụng văn phạm phi ngữ cảnh xác suất từ vựng (Lexicalized Probabilistic Context Free Grammar). Luận văn sẽ nghiên cứu các cách tiếp cận cơ bản trong phân tích cú pháp, đi sâu tìm hiểu văn phạm phi ngữ cảnh xác suất từ vựng theo 3 mô hình của Collins [11]. Từ đó, dựa vào hiểu biết về ngữ liệu Viet Treebank để huấn luyện và đánh giá độ chính xác của mô hình dựa trên việc tích hợp tiếng Việt vào bộ phân tích cú pháp của Bikel [9]. Kiến trúc cúa hệ phân tích cú pháp của Bikel cũng được nghiên cứ và phân tích để có thể sửa đổi đối tượng tương thích cho tiếng Việt cũng như khảo sát ảnh hưởng của các tham số khác nhau đối với phân tích cú pháp tiếng Việt. 1 Chươ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: ngôn ngôn Hệ thống hiểu ngôn sinh ra ngôn Hình 1: Mô hình xử lý ngôn ngữ tự nhiên 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. 2 - 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 3 song 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 từ thể hiện chất liệu. - Nhập nhằng trong phân tích cú pháp: Đối với phân tích cú pháp ta có thể thấy hai loại như sau: + Nhập nhằng do việc xác định từ bổ nghĩa: Ví dụ: “Tôi nhìn cô gái với ống nhòm” 4 Ta 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 5 số 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. 1.4. Mục tiêu Luận văn hướng tới việc xây dựng bộ phân tích cú pháp tiếng Việt theo tiếp cận thống kê với các nghiên cứu cụ thể sau: - Nghiên cứu các tiếp cận và phương pháp cơ bản trong phân tích cú pháp, tập trung vào tiếp cận sử dụng thông kê và thông tin từ vựng. - Phân tích và áp dụng bộ phân tích cú pháp của Bikel [9] để xây dựng bộ phân tích cú pháp tiếng Việt. 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. 6 Chươ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 7 Trong 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. 2.2. Các phương pháp cổ điển 2.2.1. Phân tích top – down 2.2.1.1. Định nghĩa Cây cú pháp sinh ra bởi bộ phân tích top – down là kết quá của quá trình xây dựng cây bằng việc xuất phát từ một ký tự bắt đầu(gốc của cây), sử dụng các luật trong văn phạm phi ngữ cảnh để đi từ gốc đến là (ký tự kết thúc – nằm trong chuỗi cần phân tích). Đối với các luật có cùng vế trái, việc lựa chọn luật có thể đơn giản dựa theo độ lớn của xâu về phải (so sánh giữa các xâu về phải) hoặc đơn giản là thứ tự của các xâu 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 NP VP N (1) (2) 8 N N N VP VP V V PP “tôi” (3) “bò” (4) “cỏ” (5) V (6) V PP (7) “ăn” (8) “bò” (9) N (10) Ta 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 9 Hì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. 2.2.2.2. Ví dụ Ta sử dụng lại văn phạm đã định nghĩa ở trên để phân tích câu “bò ăn cỏ” S NP VP (1) NP N (2) N “tôi” (3) N “bò” (4) N “cỏ” (5) 10 VP VP V V PP V V PP “ăn” “bò” N (10) (6) (7) (8) (9) Ta có cây phân tích 11
- Xem thêm -