LỜI NÓI ĐẦU
Ngày nay cùng với sự bùng nổ thông tin trên Internet mà trong đó văn bản là một trong những dạng chủ yếu thì nhu cầu xử lý ngôn ngữ tự nhiên trên máy tính là rất lớn. Làm thế nào để máy tính có thể hiểu được ngôn ngữ của con người vẫn là một trong những câu hỏi thách thức các nhà khoa học trong suốt lịch sử nửa thế kỷ của ngành trí tuệ nhân tạo.
Những năm gần đây, với sự tiến bộ về năng lực tính toán và khả năng lưu trữ của máy tính, các tiếp cận mới về xử lý ngôn ngữ tự nhiên đã thu được những thành công đáng khích lệ, đặc biệt là cách tiếp cận sử dụng phương pháp thống kê trên kho ngữ liệu lớn.
Xử lý ngôn ngữ tự nhiên là xử lý ngôn ngữ nói và ngôn ngữ viết của con người nên nó mang nét đặc thù riêng cho mỗi ngôn ngữ, mỗi quốc gia. Ngành xử lý ngôn ngữ tiếng Việt mới được quan tâm nghiên cứu. So với nhiều nước thì sau họ rất nhiều năm. Tuy nhiên người đi sau cũng có những thuận lợi, chúng ta có thể nhanh chóng học hỏi công nghệ, kinh nghiệm từ các nước đi trước, định hướng được mục tiêu, cách thức tiến hành để sớm tiếp cận được trình độ công nghệ tiên tiến một cách nhanh nhất.
Trong xử lý ngôn ngữ tự nhiên, kho ngữ liệu là một nguồn tài nguyên quan trọng. Một mặt nó được dùng để huấn luyện các mô hình phân tích ngôn ngữ như tách câu, tách từ, gán nhãn từ loại, phân tích cú pháp. Mặt khác, nó còn được dùng để kiểm chứng độ tin cậy của các mô hình ngôn ngữ đó. Trong khuôn khổ làm luận văn tốt nghiệp hệ cao học em xin trình bày đề tài nghiên cứu “Phát triển bộ công cụ hỗ trợ xây dựng kho ngữ liệu cho phân tích văn bản tiếng Việt”. Đây cũng là một phần việc trong đề tài cấp Nhà nước về xử lý ngôn ngữ và tiếng nói tiếng Việt giai đoạn 2007-2009.
Bài luận văn trình bày một số nội dung nghiên cứu sau:
Chương 1 - Giới thiệu tổng quan một số vấn đề trong xử lý ngôn ngữ tự nhiên nói chung và xử lý ngôn ngữ tiếng Việt nói riêng. Tìm hiểu khái quát một số bài toán liên quan tới việc xây dựng kho ngữ liệu cho phân tích văn bản tiếng Việt, các hướng tiếp cận để giải các bài toán đó.
Chương 2 – Giới thiệu một số công cụ trong xây dựng kho ngữ liệu cho phân tích văn bản tiếng Việt.
ã Công cụ cho bài toán tách từ
ã Công cụ cho bài toán gán nhãn từ loại
ã Công cụ cho bài toán phân cụm
ã Công cụ cho bài toán phân tích cú pháp
Chương 3 – Phát triển bộ công cụ hỗ trợ xây dựng kho ngữ liệu cho phân tích văn bản tiếng Việt vnSynAF.
ã Giới thiệu về kho ngữ liệu có chú giải ngữ pháp
ã Giới thiệu về mô hình SynAF - mô hình chuẩn quốc tể chú giải cú pháp, mã hoá dựa trên định dạng XML có thể định dạng và mã hoá kho ngữ liệu tiếng Việt.
ã Bộ công cụ vnSynAF
Thực hiện được đề tài này, em đã vận dụng những kiến thức học được trong giai đoạn học đại học, học cao học, những kiến thức tích luỹ trong quá trình công tác thực tế, đồng thời học hỏi và nghiên cứu thêm về lĩnh vực ngôn ngữ học, tiếng Việt. Những công việc em đã thực hiện là sản phẩm bước đầu của quá trình nghiên cứu, song do kiến thức bản thân còn có hạn chế, thời gian thực hiện đề tài ít mà công việc thì lại tương đối nhiều nên không tránh được những hạn chế thiếu sót. Em rất mong muốn các thầy cô giáo, các nhà chuyên môn hỗ trợ chỉ bảo thêm.
MỤC LỤC
MỤC LỤC 1
LỜI NÓI ĐẦU 2
Chương 1. Giới thiệu chung xử lý ngôn ngữ tự nhiên và phân tích văn bản tiếng Việt 5
1.1. Tổng quan về xử lý ngôn ngữ tự nhiên 5
1.2. Một số bài toán cơ bản phân tích văn bản 7
1.2.1. Một số phương pháp giải các bài toán cơ bản: tách câu, tách từ, gán nhãn từ loại và phân tích cú pháp 8
1.2.1.1. Bài toán tách câu 8
1.2.1.2. Bài toán tách từ 9
1.2.1.3. Bài toán gán nhãn từ loại 11
1.2.1.4. Bài toán phân tích cú pháp 12
1.3. Kho ngữ liệu 13
Chương 2. Các công cụ phân tích văn bản tiếng Việt 14
2.1. Bài toán tách câu và công cụ vnSentDetector 14
2.2. Bài toán tách từ và công cụ vnTokenizer 15
2.3. Bài toán gán nhãn từ loại và công cụ vnQtag 17
2.4. Bài toán phân tích cú pháp và công cụ vnParser 20
Chương 3. Phát triển bộ công cụ hỗ trợ xây dựng kho ngữ liệu cho phân tích văn bản tiếng Việt 24
3.1. Giới thiệu 24
3.2. Nội dung và quy trình dựng kho ngữ liệu có chú giải cú pháp (treebank) 25
3.3. Mô hình chú giải cú pháp SynAF 29
3.3.1. Một số mô hình mã hóa cấu trúc cú pháp 29
3.3.2. Mô hình chú giải cú pháp SynAF 33
3.3.3 Mô hình chú giải cú pháp tiếng Việt - vnSynAF 35
3.4. Bộ công cụ hỗ trợ xây dựng kho ngữ liệu tiếng Việt - vnSynAF 36
KẾT LUẬN 41
43 trang |
Chia sẻ: banmai | Lượt xem: 2067 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Phát triển bộ công cụ hỗ trợ xây dựng kho ngữ liệu cho phân tích văn bản tiếng Việt, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
xử lý ngôn ngữ tự nhiên nói chung và xử lý ngôn ngữ tiếng Việt nói riêng. Tìm hiểu khái quát một số bài toán liên quan tới việc xây dựng kho ngữ liệu cho phân tích văn bản tiếng Việt, các hướng tiếp cận để giải các bài toán đó.
Chương 2 – Giới thiệu một số công cụ trong xây dựng kho ngữ liệu cho phân tích văn bản tiếng Việt.
Công cụ cho bài toán tách từ
Công cụ cho bài toán gán nhãn từ loại
Công cụ cho bài toán phân cụm
Công cụ cho bài toán phân tích cú pháp
Chương 3 – Phát triển bộ công cụ hỗ trợ xây dựng kho ngữ liệu cho phân tích văn bản tiếng Việt vnSynAF.
Giới thiệu về kho ngữ liệu có chú giải ngữ pháp
Giới thiệu về mô hình SynAF - mô hình chuẩn quốc tể chú giải cú pháp, mã hoá dựa trên định dạng XML có thể định dạng và mã hoá kho ngữ liệu tiếng Việt.
Bộ công cụ vnSynAF
Thực hiện được đề tài này, em đã vận dụng những kiến thức học được trong giai đoạn học đại học, học cao học, những kiến thức tích luỹ trong quá trình công tác thực tế, đồng thời học hỏi và nghiên cứu thêm về lĩnh vực ngôn ngữ học, tiếng Việt. Những công việc em đã thực hiện là sản phẩm bước đầu của quá trình nghiên cứu, song do kiến thức bản thân còn có hạn chế, thời gian thực hiện đề tài ít mà công việc thì lại tương đối nhiều nên không tránh được những hạn chế thiếu sót. Em rất mong muốn các thầy cô giáo, các nhà chuyên môn hỗ trợ chỉ bảo thêm.
Em xin được tỏ lòng cảm ơn sâu sắc tới TS.Nguyễn Thị Minh Huyền đã tân tình hướng dẫn và giúp đỡ, tạo mọi điều kiện về phương tiện và tài liệu để em hoàn thành bài luận văn này. Em cũng xin chân thành cảm ơn tới các thầy cô, các anh chị trong bộ môn Tin học đã ủng hộ, động viên giúp đỡ em trong suốt quá trình học tập và làm luận văn.
Và cuối cùng em cũng xin được cảm ơn tới bạn bè, toàn thể gia đình và người thân đã ủng hộ động viên em trong thời gian nghiên cứu học tập tại trường Đại học Khoa học Tự nhiên.
Em xin chân thành cảm ơn!
Hà Nội, ngày 30 tháng 11 năm 2009.
Học viên
Lưu Văn Tăng
Chương 1. Giới thiệu chung xử lý ngôn ngữ tự nhiên và phân tích văn bản tiếng Việt
1.1. Tổng quan về xử lý ngôn ngữ tự nhiên
Xử lý ngôn ngữ tự nhiên là một lĩnh vực nghiên cứu của Trí tuệ nhân tạo nhằm xây dựng một hệ thống xử lý cho máy tính, làm cho máy tính có thể “hiểu” được ngôn ngữ của con người gồm cả ngôn ngữ nói và viết. Nghĩa là, khi chúng ta nói hay viết thì máy tính hiểu được là chúng ta đang nói gì, viết gì. Không chỉ với một loại ngôn ngữ của một dân tộc, của một quốc gia máy tính có thể hiểu được, máy tính có thể hiểu được ngôn ngữ của tất cả các dân tộc, các quốc gia trên thế giới. Nhờ đó, mọi người trên thế giới dựa vào máy tính cũng có thể hiểu, giao tiếp được với nhau mà không cần học, hiểu ngôn ngữ của nhau… Và hơn thế nữa, máy tính có thể phân tích, tổng hợp ngôn ngữ để đưa ra tri thức cho con người một cách nhanh và chính xác nhất. Nhất là khi các dữ liệu liên quan đến ngôn ngữ đang dần trở nên là kiểu dữ liệu chính của con người.
Để làm được những việc đó người ta đã xác định một số bài toán ứng dụng cơ bản trong xử lý ngôn ngữ tự nhiên để giải quyết. Đó là:
- Bài toán tổng hợp tiếng nói: Bài toán này giải quyết vấn đề là làm cho máy biết đọc các văn bản thành tiếng người.
- Bài toán nhận dạng tiếng nói: Tức việc làm cho máy biết chuyển tiếng nói của người thành dãy các từ.
- Nhận dạng chữ viết: Từ một văn bản in trên giấy, máy tính chuyển thành một tệp văn bản trên máy tính.
- Tóm tắt văn bản: Từ một văn bản dài, máy tính tóm tắt thành văn bản ngắn hơn với những nội dung cơ bản nhất.
- Dịch tự động: Là việc dịch tự động từ tiếng này sang tiếng khác, chẳng hạn dịch câu “ông già đi nhanh quá” sang tiếng Anh. Việc dịch này đòi hỏi máy không những phải hiểu đúng nghĩa câu tiếng Việt mà còn phải tạo ra được câu tiếng Anh tương ứng.
- Tìm kiếm thông tin trên mạng: Đây là lĩnh vực có sự chia sẻ nhiều nhất giữa trí tuệ nhân tạo và Internet, và ngày càng trở nên hết sức quan trọng. Sẽ sớm đến một ngày, mọi tri thức của con người được số hóa và để lên mạng hay các thư viện số cực lớn.
- Phát triển tri thức và khai phá dữ liệu văn bản: Từ nhiều nguồn tài nguyên khác nhau, thậm chí còn không có liên quan gì đến nhau, máy tính tìm ra được những tri thức mới mà trước đó chưa có ai biết.
Còn nhiều bài toán và công nghệ xử lý ngôn ngữ tự nhiên khác, như giao diện người-máy bằng ngôn ngữ tự nhiên, các hệ hỏi đáp, các hệ sinh ngôn ngữ, …
Về Công nghệ xử lý ngôn ngữ, nhất là xử lý văn bản, về đại thể bao gồm các bước cơ bản sau:
(1) Tầng ngữ âm: Nghiên cứu về ngữ âm.
(2) Tầng hình thái: Nghiên cứu về các thành phần có nghĩa của từ (word), như từ được tạo ra bởi các hình vị (morphemes) và từ được tách ra trong một câu thế nào. Trong tiếng Việt, một bài toán quan trọng là phân tách từ (word segmentation). Một thí dụ quen thuộc là câu “Ông già đi nhanh quá” có thể phân tách thành (Ông già) (đi) (nhanh quá) hoặc (Ông) (già đi) (nhanh quá) hoặc những cách khác nữa.
(3) Tầng ngữ pháp: Nghiên cứu các quan hệ cấu trúc giữa các từ, xem các từ đi với nhau thế nào để tạo ra câu đúng. Quá trình này thường được cụ thể trong các bước cơ bản sau:
(a) Xác định từ loại (POS tagging): Xem mỗi từ trong câu là loại gì (danh từ, động từ, giới từ, …). Trong thí dụ trên, có thể “Ông già” là danh từ, “đi” là động từ, “nhanh” là trạng từ, và “quá” là thán từ.
(b) Xác định cụm từ (chunking): Thí dụ “Ông già” là cụm danh từ, “đi” là cụm động từ, “nhanh quá” là cụm trạng từ. Như vậy câu trên có hai phân tích (Ông già) (đi) (nhanh quá) hoặc (Ông) (già đi) (nhanh quá).
(c) Xác định quan hệ ngữ pháp (parsing): (Ông già) (đi) (nhanh quá) là quan hệ chủ ngữ-vị ngữ-trạng ngữ.
(4) Tầng ngữ nghĩa (semantic layer) : Nghiên cứu xác định nghĩa của từng từ và tổ hợp của chúng để tạo nghĩa của câu. Thí dụ trong phân tích (Ông già) (đi) (nhanh quá), động từ “đi” có thể có nghĩa “bước đi”, hay “chết” hay “điều khiển” (khi dánh cờ), … và tương ứng ta có các nghĩa khác nhau của câu.
(5) Tầng ngữ dụng (pragmatic layer): Nghiên cứu mối quan hệ giữa ngôn ngữ và ngữ cảnh xử dụng ngôn ngữ (context-of-use). Ngữ dụng như vậy nghiên cứu việc ngôn ngữ được dùng để nói về người và vật như thế nào.
Việc phân tích một câu nói hay một câu trong văn bản ở các tầng từ ngữ âm (1) đến tầng ngữ pháp (3) gọi là phân tích sơ bộ (shallow parsing). Nếu phân tích thêm cả tầng ngữ nghĩa (từ (1) đến (4)) ta sẽ có phân tích đầy đủ (fully parsing). Trong các vấn đề của xử lí ngôn ngữ, có vấn đề cần đến phân tích đầy đủ (như dịch tự động), nhưng cũng có những vấn đề chỉ với phân tích sơ bộ cũng có thể đã xử lí được (như tìm kiếm thông tin, phân tích văn bản cho tổng hợp tiếng nói, mô hình ngôn ngữ trong nhận dạng tiếng nói…).
1.2. Một số bài toán cơ bản phân tích văn bản
Phân tích văn bản là một bài toán lớn, phức tạp. Nó là nền tảng, tiền đề cho việc xây dựng các ứng dụng quan trọng của xử lý ngôn ngữ như: nhận dạng chữ viết, tóm tắt văn bản, dịch tự động, tìm kiếm thông tin trên mạng, …
Quá trình phân tích văn bản được chia thành các bước: phân tách văn bản ra thành các câu. Với mỗi câu thực hiện phân tích cú pháp để xác định ngữ nghĩa của câu. Từ đó người ta xác định được nội dung văn bản cần phân tích. Việc phân tích câu cũng được chia thành các bước nhỏ hơn nữa như: tách từ, xác định từ loại, xác định các thành phần ngữ pháp trong câu. Trong xử lý ngôn ngữ tự nhiên, người ta đưa ra các bài toán cơ bản để thực hiện các bài toán trong các bước phân tích văn bản đó. Đó là:
Bài toán tách câu: tách một văn bản ra thành các câu.
Bài toán tách từ: tách một câu thành các đơn vị từ có nghĩa.
Bài toán gán nhãn từ loại: gán cho mỗi từ trong một câu một nhãn từ loại.
Bài toán phân tích cú pháp: phân tích câu thành các thành phần ngữ pháp, xác định mối quan hệ ngữ nghĩa, quan hệ ngữ pháp giữa các thành phần đó.
Để phân tích văn bản tốt thì việc giải quyết tốt các bài toán cơ bản này là rất quan trọng. Đây cũng là những bài toán khó đối với ngôn ngữ tiếng Việt, đã và vẫn đang được các nhà nghiên cứu quan tâm.
Phần sau là một số phương pháp để giải các bài toán cơ bản đó.
1.2.1. Một số phương pháp giải các bài toán cơ bản: tách câu, tách từ, gán nhãn từ loại và phân tích cú pháp
1.2.1.1. Bài toán tách câu
Vấn đề tách một văn bản ra thành các đơn vi câu độc lập dường như được ít các nhà nghiên cứu quan tâm nhất, mặc dù nó cũng là phần việc quan trọng trong phân tích văn bản. Để tách một văn bản ra thành các đơn vi câu độc lập đối với tiếng Việt không đơn thuần là chỉ dựa vào các dấu hiệu kết câu (đấu chấm ‘.’, dấu chấm than ‘.’ và dấu chấm hỏi ‘?’). Vẫn có những câu tiếng Việt mà các dấu hiệu kết câu đó vẫn chưa phải là kết câu. Ví dụ như “Giá xăng mới tăng lên thành 16.000 đồng/lít”, hay “Tp.Hà Nội”, “TS.Phạm Lan”,…
Theo tạp chí Computational Linguistics, đối với các ngôn ngữ Âu – Mỹ, trong thời gần đây có một số bài báo giới thiệu một số phương pháp và hệ thống tách câu. Các phương pháp chủ yếu là dựa trên luật, học máy có giám sát và học máy không giám sát.
Với ngôn ngữ tiếng Việt có công trình nghiên cứu của nhóm tác giả Lê Hồng Phương và Hồ Tường Vinh với phương pháp học máy thông kê, sử dụng mô hình Maximum Entropy. Tức là dựa vào một tập văn mẫu các câu được tách, mô hình sẽ học và đưa ra quyết định xem với mỗi vị trí có dấu hiệu kết câu trong văn bản cần tách có đúng là ranh giới giữa các câu hay chưa. Phương pháp này dễ thực hiện và độ tin cậy phụ thuộc vào tập văn mẫu các câu đã được tách. Tập văn này càng lớn, chính xác thì độ tin cậy càng cao.
1.2.1.2. Bài toán tách từ
Trong những năm gần đây có nhiều công trình nghiên cứu để giải quyết bài toán tách từ tiếng Việt. Các nghiên cứu này thường tập trung vào 2 hướng tiếp cận lớn để giải quyết bài toán này là tách từ dựa trên đơn vị từ và tách từ dựa trên âm tiết.
Hướng tiếp cận để giải bài toán dựa trên đơn vị từ:
Hướng tiếp cận dựa trên từ với mục tiêu tách được các từ hoàn chỉnh trong câu. Hướng tiếp cận này có thể chia ra theo ba hướng: dựa trên thống kê (statistics - based), dựa trên từ điển (dictionary – based) và hydrid (kết hợp nhiều phương pháp với hy vọng đạt được những ưu điểm của các phương pháp này)
Hướng tiếp cận dựa trên thống kê: Dựa trên các thông tin như tần số xuất hiện của từ trong tập huấn luyện ban đầu. Hướng tiếp cận này đặc biệt dựa trên tập ngữ liệu huấn luyện, nhờ vậy nên hướng tiếp cận này tỏ ra linh hoạt và hữu dụng trong nhiều lĩnh vực khác nhau.
Hướng tiếp cận dựa trên từ điển: Ý tưởng của hướng tiếp cận này là những cụm từ được tách ra từ văn bản phải được so khớp với các từ trong từ điển. Do đó trong hướng tiếp cận này đòi hỏi từ điển riêng cho từng lĩnh vực quan tâm. Hướng tiếp cận “full word / phrase” cần sử dụng một từ điển hoàn chỉnh để có thể tách được đầy đủ các từ hoặc ngữ trong văn bản, trong khi đó hướng tiếp cận thành phần “component” lại sử dụng từ điển thành phần. Từ điển thành phần chỉ chứa các thành phần của từ và ngữ như hình vị và các từ đơn giản. Hướng tiếp cận theo từ điển vẫn còn một số hạn chế trong việc tách từ vì thực hiện hoàn toàn dựa vào từ điển. Nếu như thực hiện thao tác tách từ bằng cách sử dụng từ điển hoàn chỉnh thì trong thực tế việc xây dựng một bộ từ điển hoàn chỉnh là khó thực hiện vì đòi hỏi nhiều thời gian và công sức. Nếu tiếp cận theo hướng sử dụng từ điển thành phần thì sẽ giảm nhẹ hạn chế, khó khăn khi xây dựng từ điển, vì khi đó chúng ta sẽ sử dụng các hình vị từ và các từ đơn giản và các từ khác để hình thành nên từ, cụm từ hoàn chỉnh.
Hướng tiếp cận theo Hybrid: Với mục đích kết hợp các hướng tiếp cận khác nhau để thừa hưởng được các ưu điểm của nhiều kỹ thuật và các hướng tiếp cận khác nhau nhằm nâng cao kết qủa. Hướng tiếp cận này thường kết hợp giữa hướng dựa trên thống kê và dựa trên từ điển nhằm tận dụng các mặt mạnh của các phương pháp này. Tuy nhiên hướng tiếp cận Hybrid lại mất nhiều thời gian xử lý, không gian đĩa và đòi hỏi nhiều chi phí.
Hướng tiếp cận để giải bài toán dựa trên đơn vị âm tiết
Trong tiếng Việt, hình vị nhỏ nhất là âm tiết (tiếng) được hình thành bởi nhiều ký tự trong bảng chữ cái. Hướng tiếp cận này đơn thuần rút trích ra một số lượng nhất định các tiếng trong văn bản như rút trích từ 1 ký tự (unigram) hay nhiều ký tự (n-gram) và cũng mang lại một số kết qủa nhất định được minh chứng thông qua một số công trình nghiên cứu đã được công bố, như của tác giả Lê An Hà [2003] xây dựng tập ngữ liệu thô 10MB bằng cách sử dụng phương pháp qui hoạch động để cựa đại hóa xác suất xuất hiện của các ngữ. Rồi công trình nghiên cứu của H.Nguyễn [2005] làm theo hướng tiếp cận là thay vì sử dụng ngữ liệu thô, công trình tiếp cận theo hướng xem Internet như một kho ngữ liệu khổng lồ, sau đó tiến hành thống kê và sử dụng thuật giải di truyền để tìm cách tách từ tối ưu nhất, và một số công trình của một số tác giả khác. Khi so sánh kết qủa của tác giả Lê An Hà và H.Nguyễn thì thấy công trình của H.Nguyễn cho được kết qủa tốt hơn khi tiến hành tách từ, tuy nhiên thời gian xử lý lâu hơn. Ưu điểm nổi bật của hướng tiếp cận dựa trên nhiều ký tự là tính đơn giản, dễ ứng dụng, ngoài ra còn có thuận lợi là ít tốn chi phí cho thao tác tạo chỉ mục và xử lý nhiều câu truy vấn. Qua nhiều công trình nghiên cứu của các tác giả đã được công bố, hướng tiếp cận tách từ dựa trên nhiều ký tự, cụ thể là cách tách từ hai ký tự được cho là sự lựa chọn thích hợp.
1.2.1.3. Bài toán gán nhãn từ loại
Gán nhãn từ loại chính là việc xác định chức năng ngữ pháp của từ trong câu. Đây là bước cơ bản khi phân tích sâu văn phạm hay các vấn đề xử lý ngôn ngữ phức tạp khác.
Quá trình gán nhãn có thể được chia thành các bước sau:
Gán nhãn tiên nghiệm, tức là tìm cho mỗi từ tập tất cả các nhãn từ loại mà nó có thể có. Tập nhãn này có thể thu được từ cơ sở dữ liệu từ điển hoặc kho văn bản đã gán nhãn bằng tay. Đối với một từ mới chưa xuất hiện trong cơ sở ngữ liệu thì có thể dùng một nhãn ngầm định hoặc gắn cho nó tập tất cả các nhãn. Trong các ngôn ngữ biến đổi hình thái người ta cũng dựa vào hình thái từ để đoán nhận lớp từ loại tương ứng của từ đang xét.
Quyết định kết quả gán nhãn, đó là giai đoạn loại bỏ nhập nhằng, tức là lựa chọn cho mỗi từ một nhãn phù hợp nhất với ngữ cảnh trong tập nhãn tiên nghiệm. Có nhiều phương pháp để thực hiện việc này, trong đó người ta phân biệt chủ yếu các phương pháp dựa vào quy tắc ngữ pháp và các phương pháp xác suất . Ngoài ra còn có các hệ thống sử dụng mạng nơ-ron, các hệ thống lai sử dụng kết hợp tính toán xác suất và ràng buộc ngữ pháp, gán nhãn nhiều tầng.
Về mặt ngữ liệu, các phương pháp phân tích từ loại thông dụng hiện nay dùng một trong các loại tài nguyên ngôn ngữ sau:
Từ điển và các văn phạm loại bỏ nhập nhằng.
Kho văn bản đã gán nhãn, có thể kèm theo các quy tắc ngữ pháp xây dựng bằng tay.
Kho văn bản chưa gán nhãn, có kèm theo các thông tin ngôn ngữ như là tập từ loại và các thông tin mô tả quan hệ giữa từ loại và hậu tố.
Kho văn bản chưa gán nhãn, với tập từ loại cũng được xây dựng tự động nhờ các tính toán thống kê. Trong trường hợp này khó có thể dự đoán trước về tập từ loại.
Các bộ gán nhãn từ loại dùng từ điển và văn phạm gần giống với một bộ phân tích cú pháp. Các hệ thống học sử dụng kho văn bản để học cách đoán nhận từ loại cho mỗi từ. Từ giữa những năm 1980 các hệ thống này được triển khai rộng rãi vì việc xây dựng kho văn bản mẫu ít tốn kém hơn nhiều so với việc xây dựng một từ điển chất lượng cao và một bộ quy tắc ngữ pháp đầy đủ. Một số hệ thống sử dụng đồng thời từ điển để liệt kê các từ loại có thể cho một từ, và một kho văn bản mẫu để loại bỏ nhập nhằng.
Các bộ gán nhãn thường được đánh giá bằng độ chính xác của kết quả: [số từ được gán nhãn đúng] / [tổng số từ trong văn bản]. Các bộ gán nhãn tốt nhất hiện nay có độ chính xác đạt tới 98%.
1.2.1.4. Bài toán phân tích cú pháp
Các hướng tiếp cận để giải bài toán phân tích cú pháp đều sử dụng văn phạm phi ngữ cảnh để biểu diễn ngôn ngữ, sau đó dùng một số kỹ thuật phân tích để xác định cây phân tích cú pháp. Sở dĩ vậy là vì nó biểu diễn được hầu hết các ngôn ngữ tự nhiên, và nó cũng có đủ hạn chế để xây dựng các trình phân tích câu hiệu quả.
Văn phạm phi ngữ cảnh khi được sử dụng để biểu diễn cấu trúc cú pháp thì các ký hiệu kết thúc tương ứng với các từ trong ngôn ngữ, các ký hiệu không kết thúc tương ứng với các phân loại cú pháp (hay từ loại). Tiên đề biểu diễn phân loại "câu". Các quy tắc sinh biểu diễn các quy tắc ngữ pháp. Ta có thể chia chúng thành các qui tắc từ vựng (chứa ít nhất một ký hiệu kết thúc) và các qui tắc ngữ đoạn (không chứa ký hiệu kết thúc nào). Với mỗi từ trong từ vựng có một tập các qui tắc sinh chứa từ này trong vế phải. Một cây dẫn xuất cũng được gọi là cây cú pháp cho một phân tích của một ngữ đoạn thành các thành phần kế tiếp.
1.3. Kho ngữ liệu
Trong các phương để giải các bài toán cơ bản của phân tích ngôn ngữ thì phương pháp thống kê trên một tập dữ liệu mẫu được các nhà nghiên cứu đặc biệt quan tâm hơn cả. Một mặt là do phương pháp dễ triển khai thực hiện và được sử dụng rộng rãi trong nhiều ngôn ngữ khác nhau (Anh, Pháp, Trung, Nhật, Thái,…). Mặt nữa là ngày nay với sự phát triển mạnh của công nghệ phần cứng, những khó khăn hạn chế về không gian lưu trữ cũng như tốc độ xử lý được cải thiện. Máy tính có thể tính toán và xử lý cho kết quả một cách nhanh chóng. Và phương pháp thống kê này cho kết quả ổn định và độ chính xác cao nếu có tập dữ liệu mẫu đủ lớn. Tập dữ liệu mẫu này chính là kho ngữ liệu.
Có các loại kho ngữ liệu về câu, từ, từ được gán nhãn, câu được gán nhãn cú pháp. Trong đó kho dữ liệu về các câu được gán nhãn cú pháp là đầy đủ nhất, từ đây có thể đễ dàng rút được các dữ liệu mẫu về câu, từ hay từ được gán nhãn. Các kho ngữ liệu này ngoài việc dùng để làm dữ liệu huấn luyện các mô hình xử lý ngôn ngữ tự động, nó còn có một vai trò quan trọng khác là để đánh giá, kiểm chứng hiệu quả của các mô hình.
Bộ công cụ trong đề tài nghiên cứu luận văn này chính là để hỗ trợ xây dựng kho ngữ liệu câu tiếng Việt có chú giải cú pháp (gán nhãn cú pháp). Việc xây dựng kho ngữ liệu này được thực hiện bởi các chuyên gia ngôn ngữ là các nhà nghiên cứu xử lý ngôn ngữ, các nhà ngôn ngữ học. Việc thực hiện là thủ công bằng tay hoặc bán tự động bằng việc sử dụng các công cụ đã có như tách câu, tách từ, gán nhãn từ loại, gán nhãn cú pháp được tích hợp vào chương trình.
Chương 2. Các công cụ phân tích văn bản tiếng Việt
Trong chương này em giới thiệu một số công cụ phân tích văn bản tiếng Việt đã có áp dụng cho các bài toán cơ bản: tách câu, tách từ, gán nhãn từ loại và phân tích cú pháp. Đây là những công cụ được xây dựng bằng ngôn ngữ Java mã nguồn mở, có thể dễ dàng mở rộng, tích hợp được vào các hệ thống khác.
2.1. Bài toán tách câu và công cụ vnSentDetector
Đặt bài toán
Cho một văn bản tiếng Việt bất kỳ. Hãy phân tách văn bản đó ra thành các đơn vị câu độc lập.
Bài toán tách câu đặt ra với mục đích xây dựng công cụ tự động tách các câu trong một văn bản tiếng Việt bất kỳ một cách chính xác nhất có thể.
Công cụ tách câu vnSententDetector của hai tác giả Lê Hồng Phương và Hồ Tường Vinh được xây dựng dựa trên mô hình xác suất với Maximum Entropy. Mô hình này được đào tạo trên tạp dữ liệu được huấn luyện gồm có 4.800 câu tiếng Việt. Bộ dữ liệu này được các nhà ngôn ngữ học thuộc trung tâm từ điển học Việt Nam (Vietlex) xây dựng thủ công bằng tay. Với phương pháp này, theo bài báo mà các tác giả đã công bố thì độ chính xác đạt được 95%.
Ý tưởng của phương pháp là xây dựng mô hình xác suất ước lượng lớp b xảy ra trong ngữ cảnh c, p(b,c).
Trong đó: b {no, yes}, αj là những tham số chưa biết của mô hình và mỗi αj có ứng một đặc trưng mô hình fj, π là một hằng số.
Gọi ={no,yes} là tập khả năng của các lớp, là tập khả năng về các ngữ cảnh. Khi đó các đặc trưng fj là hàm nhị phân . Các hàm này dùng để mã hóa thông tin ngữ cảnh. Xác suất để biết ranh giới câu trong ngữ cảnh c được cho bởi p(yes,c). αj được chọn để cực đại hàm likelihood của tập dữ liệu mẫu.
Mô hình sử dụng luật quyết định đơn giản để xác định khả năng ranh giới câu. Ranh giới hiện tại là khả năng ranh giới câu nếu và chỉ nếu p(yes,c) >0.5, trong đó:
và c là ngữ cảnh có chứa khả năng là ranh giới câu.
Một phần quan trọng của phương pháp là lựa chọn các đặc trưng fj. Các đặc trưng của mô hình Maximum Entropy có thể mã hóa bất kỳ thông tin nào có ích cho việc xác định các ranh giới câu. Các khả năng ranh giới câu được xác định bằng cách quét văn bản theo các chuỗi ký tự được ngăn cách bởi kí tự trắng mà trong đó có chứa một trong các ký hiệu “.”, “!” hoặc “?”
2.2. Bài toán tách từ và công cụ vnTokenizer
Đặt bài toán
Cho một câu tiếng Việt bất kỳ, hãy tách câu đó thành những đơn vị từ vựng (từ), hoặc chỉ ra những âm tiết nào không có trong từ điển (phát hiện đơn vị từ vựng mới).
Giới thiệu công cụ vnTokenizer
vnTokenizer là công cụ tách từ tiếng Việt được nhóm tác giả Nguyễn Thị Minh Huyền, Vũ Xuân Lương và Lê Hồng Phương phát triển dựa trên phương pháp so khớp tối đa (Maximum Matching) với tập dữ liệu sử dụng là bảng âm tiết tiếng Việt và từ điển từ vựng tiếng Việt.
Công cụ được xây dựng bằng ngôn ngữ Java, mã nguồn mở. Có thể đễ dàng sửa đổi nâng cấp và tích hợp vào các hệ thống phân tích văn bản tiếng Việt khác.
Quy trình thực hiện tách từ theo phương pháp khớp tối đa:
Hình 1. Quy trình tách từ
Đầu vào của công cụ tách từ vnTokenizer là một câu hoặc một văn bản được lưu dưới dạng tệp.
Đầu ra là một chuỗi các đơn vị từ được tách.
Các đơn vị từ bao gồm các từ trong từ điển cũng như các chuỗi số, chuỗi kí từ nước ngoài, các hình vị ràng buộc (gồm các phụ tố), các dấu câu và các chuỗi kí tự hỗn tạp khác trong văn bản (ISO, 2008). Các đơn vị từ không chỉ bao gồm các từ có trong từ điển, mà cả các từ mới hoặc các từ được sinh tự do theo một quy tắc nào đó (như phương thức thêm phụ tố hay phương thức láy) hoặc các chuỗi kí hiệu không được liệt kê trong từ điển.
Công cụ sử dụng tập dữ liệu đi kèm là tập từ điển từ vựng tiếng Việt, danh sách các đơn vị từ mới bổ sung, được biểu diễn bằng ôtômat tối tiểu hữu hạn trạng thái, tệp chứa các biểu thức chính quy cho phép lọc các đơn vị từ đặc biệt (xâu dạng số, ngày tháng,…), và các tệp chứa các thống kê unigram và bigram trên kho văn bản tách từ mẫu.
Với các đơn vị từ đã có trong từ điển, khi thực hiện tách từ cũng được xử lý hiện tượng nhập nhằng bằng cách kết hợp với các thống kê unigram và bigram. Chẳng hạn trong tiếng Việt thường gặp các trường hợp nhập nhằng như:
- Xâu AB vừa có thể hiểu là 1 đơn vị từ, vừa có thể là chuỗi 2 đơn vị từ A-B.
- Xâu ABC có thể tách thành 2 đơn vị AB-C hoặc A-BC.
Đánh giá kết quả
Kết quả đánh giá của công cụ được cho là ổn định đối với nhiều loại văn bản/ văn phong khác nhau. Độ chính xác trung bình đạt được là khoảng 94%.
2.3. Bài toán gán nhãn từ loại và công cụ vnQtag
Đặt bài toán tổng quát
Cho một câu tiếng Việt đã được tách thành các đơn vị độc lập. Gán cho mỗi đơn vị từ đó một nhãn từ loại ngôn ngữ.
Đã có một số công cụ gán nhãn từ loại được xây dựng như vnQtag, vnTagger và JvnTagger. Trong đó vnQtag được xây dựng từ năm 2003 theo phương pháp xác suất và đã được công bố rộng rãi trong cộng đồng các nhà nghiên cứu xử lý ngôn ngữ tiếng Việt. Gần đây có vnTagger [Lê Hồng Phương, 2009] và JvnTagger [Phan Xuân Hiếu, VLSP, 2009] được xây dựng theo phương pháp học máy thống kê (Maxmimum Entropy và Conditional Rundom Fields), sử dụng bộ ngữ liệu mẫu Vietreebank [Nguyễn Phương Thái, VLSP] để huấn luyện mô hình học.
Trong đề tài này em mới sử dụng tích hợp công cụ gán nhãn vnQtag vào công cụ hỗ trợ xây dựng kho ngữ liệu phân tích văn bản tiếng Việt.
Giới thiệu nguồn gốc công cụ vnQtag
vnQtag là công cụ gán nhãn từ loại cho văn bản tiếng Việt đã tách từ, được phát triển bởi nhóm tác giả Nguyễn Thị Minh Huyền, Vũ Xuân Lương và Lê Hồng Phương dựa trên xác suất, 2003, sử dụng bộ ngữ liệu mẫu đã gán nhãn. Việc thực hiện gán nhãn được thực hiện qua thao tác dòng lệnh (môi trường DOS) và được tiến hành qua hai bước: huấn luyện và gán nhãn.
Gán nhãn theo xác suất
Ý tưởng của phương pháp gán nhãn từ loại xác suất là xác định phân bố xác suất trong không gian kết hợp giữa dãy các từ Sw và dãy các nhãn từ loại St. Sau khi đã có phân bố xác suất này, bài toán loại bỏ nhập nhằng từ loại cho một dãy các từ được đưa về bài toán lựa chọn một dãy từ loại sao cho xác suất điều kiện P(St | Sw) kết hợp dãy từ loại đó với dãy từ đã cho đạt giá trị lớn nhất.
Theo công thức xác suất Bayes ta có:
P(St | Sw) = P(Sw | St).P(St)/P(Sw).
Ở đây dãy các từ Sw đã biết, nên thực tế chỉ cần cực đại hoá xác suất P(Sw|St).P(St).
Với mọi dãy St = t1t2 ... tN và với mọi dãy Sw = w1w2 ... wN :
P(w1w2... wN|t1t2...tN) = P(w1|t1t2...tN) P(w2|w1,t1t2...tN)...P(wN|w1...wN-1, t1t2...tN)
P(t1t2...tN) = P(t1)P(t2|t1) P(t3 | t1t2) ... P(tN|t1...tN-1)
Người ta đưa ra các giả thiết đơn giản hoá cho phép thu gọn mô hình xác suất về một số hữu hạn các tham biến.
Đối với mỗi P(wi|w1... wi-1, t1t2...tN), giả thiết khả năng xuất hiện một từ khi cho một nhãn từ loại là hoàn toàn xác định khi biết nhãn đó, nghĩa là P(wi|w1... wi-1, t1t2...tN) = P(wi|ti).
Như vậy xác suất P(w1w2... wN|t1t2...tN) chỉ phụ thuộc vào các xác suất cơ bản có dạng P(wi| ti):
P(w1w2... wN | t1t2...tN) = P(w1 | t1)P(w2 | t2) ... P(wN | tN)
Đối với các xác suất P(ti|t1...ti-1), giả thiết khả năng xuất hiện của một từ loại là hoàn toàn xác định khi biết các nhãn từ loại trong một lân cận có kích thước k cố định, nghĩa là: P(ti|t1...ti-1)= P(ti | ti-k...ti-1). Nói chung, các bộ gán nhãn thường sử dụng giả thiết k bằng 1 (bigram) hoặc 2 (trigram).
Như vậy mô hình xác suất này tương đương với một mô hình Markov ẩn, trong đó các trạng thái ẩn là các nhãn từ loại (hay các dãy gồm k nhãn nếu k > 1), và các trạng thái hiện (quan sát được) là các từ trong từ điển. Với một kho văn bản đa gán nhãn mẫu, các tham số của mô hình này dễ dàng được xác định nhờ thuật toán Viterbi.
Dữ liệu mẫu
Bộ gán nhãn QTAG là một bộ gán nhãn trigram. QTAG sử dụng kết hợp hai nguồn thông tin: một từ điển từ chứa các từ kèm theo danh sách các nhãn có thể của chúng cùng với tần suất xuất hiện tương ứng; và một ma trận gồm các bộ ba nhãn từ loại có thể xuất hiện liền nhau trong văn bản với các tần số xuất hiện của chúng. Cả hai loại dữ liệu này thu được dễ dàng dựa vào kho văn bản mẫu đã gán nhãn. Các loại dấu câu và các kí hiệu khác trong văn bản được xử lý như các đơn vị từ vựng, với nhãn chính là dấu câu tương ứng.
Thuật toán gán nhãn từ loại
Về mặt thuật toán, QTAG làm việc trên một cửa sổ chứa 3 từ, sau khi đã bổ sung thêm 2 từ giả ở đầu và cuối văn bản. Các từ được lần lượt đọc và thêm vào cửa sổ mỗi khi cửa sổ di chuyển từ trái sang phải, mỗi lần một vị trí. Nhãn được gán cho mỗi từ đã lọt ra ngoài cửa sổ là nhãn kết quả cuối cùng. Thủ tục gán nhãn như sau:
1. Đọc từ (token) tiếp theo
2. Tìm từ đó trong từ điển
3. Nếu không tìm thấy, gán cho từ đó tất cả các nhãn (tag) có thể
4. Với mỗi nhãn có thể
5. Tính Pw = P(tag|token) là xác suất từ token có nhãn tag
6. Tính Pc = P(tag|t1,t2), là xác suất nhãn tag xuất hiện sau các nhãn t1, t2, là nhãn tương ứng của hai từ đứng trước từ token.
7. Tính Pw,c = Pw * Pc, kết hợp hai xác suất trên.
8. Lặp lại phép tính cho hai nhãn khác trong cửa sổ
Sau mỗi lần tính lại (3 lần cho mỗi từ), các xác suất kết quả được kết hợp để cho ra xác suất toàn thể của nhãn được gán cho từ. Vì các giá trị này thường nhỏ, nên chúng được tính trong biểu thức logarit cơ số 10. Giá trị xác suất tính được cho mỗi nhãn tương ứng với một từ thể hiện độ tin cậy của phép gán nhãn này cho từ đang xét.
2.4. Bài toán phân tích cú pháp và công cụ vnParser
Đặt bài toán tổng quát
Cho một câu tiếng Việt. Phân tích cú pháp đưa ra mô tả về quan hệ và vai trò ngữ pháp của các từ, các cụm từ (hoặc ngữ) trong câu, đồng thời đưa ra hình thái của câu.
Đầu vào của giai đoạn này là câu đã được phân tách từ, trong đó mỗi từ có đặc điểm hình thái xác định. Quá trình kiểm tra cú pháp tiến hành phân tích và tổ hợp các từ ở đầu vào, dựa trên các luật cú pháp để loại bỏ các trường hợp bất quy tắc và từng bước dựng lên cấu trúc cú pháp (cây phân tích) của câu. Kết quả cần đạt được là hình thái của câu.
Bộ công cụ vnParser
Công cụ phân tích cú pháp vnParser được tác giả Lê Hồng Phương trình bày trong khóa luận tốt nghiệp cử nhân khoa học, 2002, với cơ sở lý thuyết là sử dụng phương pháp phân tích từ trên xuống cho các mạng chuyển đệ quy (RTN – recursive transition networks).
Công cụ sử dụng 2 loại dữ liệu ngôn ngữ là:
Từ điển từ vựng tiếng Việt có kèm theo chú giải từ loại, là các nhãn từ loại có thể. Từ điển này có khoảng 37.000 từ được cung cấp bởi các chuyên gia ngôn ngữ thuộc trung tâm từ điển học Việt Nam (Vietlex).
Tập các luật cú pháp cho ngôn ngữ tiếng Việt, là các quy tắc sinh ngôn ngữ. Tác giả mới thử nghiệm chạy thành công với tập luật đơn giản phân tích được một số câu tiếng Việt.
Để công cụ vnParser chạy tốt thì rất cần có bộ dữ liệu ngôn ngữ đủ chuẩn và đủ lớn có thể bao phủ được hầu hết các từ ngữ tiếng Việt thuộc nhiều lĩnh vực khác nhau.
Ý tưởng thực hiện
Về tư tưởng của phương pháp là xây dựng một hệ các ôtômat, là các mạng chuyển đệ quy:
Từ các quy tắc của văn phạm, xây dựng các ôtômat hữu hạn trạng thái.
Từ các từ và các nhãn trong từ điển, các nhãn ở đây chính là các trạng thái kết của văn phạm đã cho. Xây dựng các ôtômat cho các trạng thái kết này với mỗi cung chuyển sẽ sinh ra một từ.
Với hệ ôtômat này, áp dụng kỹ thuật phân tích từ trên xuống cho một câu cần phân tích đầu vào ta sẽ có kết quả xác định ôtômat có đoán nhận được câu hay không.
Ví dụ: xét văn phạm đơn giản:
1. S → NP (Aux) V (NP) PP*
1’. S → Aux NP V (NP) PP*
2. NP → (Det) (Quant) Adj* N* N PP*
3. PP → Prep NP
Văn phạm này định nghĩa một ngôn ngữ phi ngữ cảnh trên bảng chữ cái {Aux, V, Det, Quant, Adj, N, Prep}. Ở đây có một mở rộng so với thông thường là các ngoặc tròn, chứa các phần tử tuỳ chọn, và dấu hoa thị dùng để chỉ ký hiệu đi kèm với nó có thể không có hoặc xuất hiện nhiều hơn một lần.
Các vế phải của các quy tắc cũng có thể được xem như định nghĩa của các biểu thức của các ngôn ngữ chính quy, hay các biểu thức chính quy, tương ứng trên các bảng chữ cái {NP, Aux, V, PP} đối với quy tắc 1, {Det, Quant, Adj, N, PP} đối với quy tắc 2 và {Prep, PP} đối với quy tắc 3.
Từ các quy tắc của văn phạm, ta xây dựng được các ôtômát hữu hạn trạng thái tương đương:
Từ tập từ điển, ví dụ có các quy tắc viết lại:
Det → 'a'
Det → 'the'
Det → 'some'
Ta có thể xây dựng dạng chuyển như sau và gắn kết quả vào mạng văn phạm tương tự như A1-A3:
Để minh họa rõ hơn một quá trình phân tích, ta xét văn phạm sau:
Với bộ từ vựng:
ART the, a
NUMBER one
PRONOUN one
ADJ wild, green
NOUN dogs, man, saw, green
VERB cried, saw, broke, faded, man
Khi đó, với câu cần phân tích:
1 The 2 wild 3 dogs 4 cried 5
Sẽ được phân tích như sau:
Bước Nốt hiện tại Vị trí hiện tại Ðiểm trả về Cung được đi
1. S 1 nil S/1
2. NP 1 {S1} NP/1
3. NP1 2 {S1} NP1/1
4. NP1 3 {S1} NP1/2
5. NP2 4 {S1} NP2/1
6. S1 4 nil S1/1
7. S2 5 nil N2/1
Ở bước thứ 7, khi mà quá trình phân tích đã đi được hết câu (vị trí 5), điểm trả về là rỗng tức là các trạng thái lưu trữ tạm thời trong quá trình phân tích đã hết thì quá trình phân tích thành công.
Chương 3. Phát triển bộ công cụ hỗ trợ xây dựng kho ngữ liệu cho phân tích văn bản tiếng Việt
3.1. Giới thiệu
Kho văn bản mà trong đó mỗi câu được chú giải cấu trúc cú pháp là nguồn tài nguyên rất hữu ích trong lĩnh vực xử lý ngôn ngữ tự nhiên. Kho văn bản này được gọi là treebank. Treebank có nhiều ứng dụng quan trọng như đánh giá, kiểm định các công cụ xử lí ngôn ngữ tự động, các phần mềm dịch máy, tóm tắt văn bản, các hệ thống hỏi đáp… Các hệ thống treebank cho các thứ tiếng được nghiên cứu nhiều như Anh, Pháp, Hoa… đã được xây dựng từ lâu, đối với tiếng Việt, việc xây dựng treebank đang là công việc mới bắt đầu.
Trong lĩnh vực XLNN tự nhiên, nguồn tài nguyên ngôn ngữ đóng vai trò rất quan trọng trong việc nghiên cứu và phát triển các phương pháp và công cụ tự động. Việc chuẩn hoá vấn đề mã hoá tài nguyên ngôn ngữ nói chung và mã hoá treebank nói riêng nhằm mở rộng đến mức tối đa phạm vi sử dụng và khai thác tài nguyên là vấn đề rất quan trọng. Gần đây một số dự án xây dựng kho ngữ liệu trên thế giới đưa vấn đề chuẩn hóa lên hàng đầu. Đặc biệt là dự án European eContent LIRICS đã và đang xử lý quá trình chuẩn hóa quốc tế về chú giải tài nguyên cú pháp - SynAF (Syntactic Annotation Framework). Mô hình SynAF được thiết kế dựa vào cả hai cấu trúc phụ thuộc và cấu trúc thành phần, bên cạnh đó thì danh mục dữ liệu (danh sách bộ nhãn gán cho các nút, các cung) trên sơ đồ cũng được xây dựng theo một chuẩn để dễ dàng sử dụng, có thể ánh xạ, tham chiếu sang bộ danh mục của các nước khác nhau một cách dễ dàng.
Có hai cách thường được sử dụng để mã hóa cây cú pháp. Cách thứ nhất đơn giản, sử dụng cấu trúc dấu ngoặc. Theo cách này mỗi thành phần cú pháp sẽ có một cặp dấu ngoặc bao quanh. Ngay sau dấu ngoặc đầu tiên là ký hiệu ngữ pháp và các thuộc tính (nếu có), tiếp theo là danh sách các thành phần cú pháp con. Cách thứ hai là sử dụng lược đồ mã hóa XML (eXtended Markup Language). Cách này đa được nghiên cứu kỹ lưỡng và được áp dụng vào một số dự án về xử lý ngôn ngữ của Châu Âu.
Vấn đề xây dựng kho ngữ liệu chuẩn cho tiếng Việt đang là vần đề cấp thiết. Việc xây dựng công cụ hỗ trợ cho việc mã hóa XML theo chuẩn hóa quốc tế cũng là một nhiềm vụ cần thiết trong việc xây dựng treebank cho tiếng Việt.
3.2. Nội dung và quy trình dựng kho ngữ liệu có chú giải cú pháp (treebank)
Kho ngữ liệu (treebank) là ngân hàng các câu được chú giải cấu trúc ngữ pháp.
Quy trình xây dựng treebank thường tuân theo các bước sau:
Tìm hiểu: Xác định tiếp cận xây dựng treebank phù hợp với ngôn ngữ đang được xem xét. Tức là lựa chọn một lược đồ giải thích cấu trúc cú pháp phù hợp. Có hai loại lược đồ chú giải cấu trúc cú pháp là chú giải theo cấu trúc thành phần và chú giải theo cấu trúc phụ thuộc. Loại thứ nhất quan tâm đến cấu trúc ngữ đoạn trong câu trong khi loại thứ hai chủ yếu quan tâm đến sự phụ thuộc ngữ pháp giữa các từ trong câu. Tùy vào đặc điểm ngôn ngữ học khác nhau mà lược đồ chú giải của các ngôn ngữ khác nhau. Với tiếng Việt là ngôn ngữ đơn lập, cấu tạo từ cũng phức tạp (đơn và đa âm tiết) nên lựa chọn phù hợp là lược đồ chú giải theo cấu trúc thành phần. Các lược đồ chú giải cấu trúc theo thành phần thường có các đặc điểm:
Về mức độ gán nhãn: tách từ, gán nhãn từ loại và gán nhãn cú pháp
Nhãn cú pháp gồm có cả nhãn chức năng
Đảm bảo sự nhận diện các quan hệ ngữ pháp cơ bản: quan hệ chủ vị, phụ thuộc, đẳng lập, bổ ngữ, phụ ngữ, đề ngữ, …
Thiết kế tập nhãn và tài liệu hướng dẫn gán nhãn
Xây dựng công cụ
Thu thập văn bản thô: thường được lấy từ các loại sách, báo, tap chí. Chẳng hạn như treebank tiếng Anh chọn báo Wall Street Journal, treebank tiếng Trung chọn báo XinHua.
Thực hiện gán nhãn
Với tiếng Việt, treebank được nghiên cứu xây dựng trong khuôn khổ đề tài VLSP và có tên là vietreebank. Mục tiêu của vietreebank là xây dựng được lược đồ giải thích cú pháp được 10.000 câu.
Tập nhãn của vietreebank được thiết kế gồm có:
Tập nhãn từ loại. Về nguyên tắc, các thông tin về từ có thể được chứa trong nhãn từ loại bao gồm: từ loại cơ sở (danh từ, động từ, v.v.), thông tin hình thái (số ít, số nhiều, thì, ngôi, v.v.), thông tin về phân loại con (ví dụ động từ đi với danh từ, động từ đi với mệnh đề, v.v.), thông tin ngữ nghĩa, hay một số thông tin cú pháp khác. Với đặc điểm của tiếng Việt, tập nhãn từ loại chỉ chứa thông tin về từ loại cơ sở mà không bao gồm các thông tin như hình thái, phân loại con, v.v.
Các nhãn từ loại:
STT
Tên
Chú thích
N
Danh từ
Nc
Danh từ chỉ loại
V
Động từ
A
Tính từ
P
Đại từ
D
Định từ
M
Số từ
R
Phụ từ
…
…
…
Tập nhãn các thành phần cú pháp. Tập nhãn này chứa các nhãn mô tả các thành phần cú pháp cơbản là cụm từ và mệnh đề. Nhãn thành phần cú pháp là thông tin cơ bản nhất trên cây cú pháp, nó tạo thành xương sống của cây cú pháp.
Các nhãn cụm từ:
STT
Tên
Chú thích
NP
Cụm danh từ
VP
Cụm động từ
AP
Cụm tính từ
RP
Cụm phụ từ
PP
Cụm giới từ
QP
Cụm từ chỉ số lượng
WHNP
Cụm danh từ nghi vấn (ai, cái gì, con gì, v.v.)
…
…
Các nhãn mệnh đề:
STT
Tên
Chú thích
S
Câu trần thuật (khẳng định hoặc phủ định)
SQ
Câu hỏi
SE
Câu cảm thán
SC
Câu mệnh lệnh
SBAR
Mệnh đề phụ (bổ nghĩa cho danh từ, động từ, và tính từ)
…
…
Tập nhãn chức năng ngữ pháp. Nhãn chức năng của một thành phần cú pháp cho biết vai trò của nó trong thành phần cú pháp mức cao hơn. Nhãn chức năng cú pháp được gán cho các thành phần chính trong câu như chủ ngữ, vị ngữ, tân ngữ. Nhờ thông tin do nhãn chức năng cung cấp ta có thể xác định các loại quan hệ ngữ pháp cơ bản sau đây:
Chủ-vị
Đề-thuyết
Phần chêm
Bổ ngữ
Phụ ngữ
Sự kết hợp
Các nhãn chức năng cú pháp
STT
Tên
Chú thích
SBJ
Nhãn chức năng chủ ngữ
OBJ
Nhãn chức năng tân ngữ trực tiếp
IO
Nhãn chức năng tân ngữ gián tiếp
TPC
Nhãn chức năng chủ đề
PRD
Nhãn chức năng vị ngữ không phải cụm động từ
…
…
Việc thực hiện gán nhãn được thực hiện qua ba bước: tách từ, gán nhãn từ loại và gán nhãn cú pháp. Quá trình gán nhãn thực hiện tài liệu hướng dẫn gán nhãn.
Một số ví dụ gán nhãn cú pháp:
- Gán nhãn cho cụm danh từ: NP
Cấu trúc cơ bản của một cụm danh từ:
Với cụm danh từ: “quả bóng màu xanh”, ta có:
(NP (Nu quả)
(N bóng)
(N màu xanh))
- Gán nhãn cho cụm động từ: VP
Giống như cụm danh từ, cấu tạo một cụm động từ về cơ bản như sau:
Với cụm động từ: “đang ăn cơm”, ta có:
(VP (R đang)
(V ăn)
(NP cơm))
- Gán nhãn cho câu trần thuật: S
Theo quan điểm coi cấu trúc chủ-vị là cấu trúc chủ đạo của câu tiếng Việt, một câu trần thuật gồm hai phần là chủ ngữ và vị ngữ:
Trong đó chủ ngữ thường là cụm danh từ, còn vị ngữ thường là cụm động từ hoặc cụm tính từ. Với một số ngôn ngữ như tiếng Anh, vị ngữ luôn là cụm động từ.
Với câu: “Anh yêu em”, ta có:
(S (NP-SBJ Anh)
(VP (V yêu)
(NP-OBJ em))
(. .))
Quy trình gán nhãn cú pháp cho tiếng Việt được hướng đẫn chi tiết trong tài liệu Thiết kế tập nhãn cú pháp và hướng dẫn gán nhãn khi xây dựng treebank tiếng Việt trong đề tài VLSP.
Bộ công cụ hỗ trợ xây dựng, tổ chức, biểu diễn kho ngữ liệu để sử dụng lâu dài là cần thiết.
3.3. Mô hình chú giải cú pháp SynAF
3.3.1. Một số mô hình mã hóa cấu trúc cú pháp
Để mã hoá cấu trúc cú pháp của một câu trong ngôn ngữ, UPenn Treebank sử dụng lược đồ mã hoá ngoặc đơn để phân cấp cấu trúc của câu, cùng với chú giải ngữ pháp và thuộc tính cần sử dụng. Ví dụ, câu "Pierre Vinken, 61 years old, will join the board as the board as a nonexecutive director Nov. 29" được mã như sau:
( (S (NP-SBJ (NP Pierre Vinken)
,
(ADJP (NP 61 years)
old)
,)
(VP will
(VP join
(NP the board)
(PP-CLR as
(NP a nonexecutive director))
(NP-TMP Nov. 29)))
.))
Cấu trúc đồ hoạ của câu được cho trong Hình 2.
Hình 2 . Cấu trúc cú pháp của một câu trong UPenn Treebank
Prague Dependency Treebank chú giải cú pháp dựa trên mô hình hai lớp: lớp cấu trúc thành phần và lớp cấu trúc phụ thuộc. Prague Dependency Treebank sử dụng lược đồ mã hoá PML (The Pargue Markup Language) - một định dạng mã hoá dữ liệu mở dựa trên XML [9]. Các cấu trúc cây phụ thuộc và cây thành phần được mã bằng hai lớp tương ứng. Ví dụ, câu "John loves Mary. He told her this Friday" có chú giải phụ thuộc và thành phần với PML như sau:
Chú giải phụ thuộc
<annotation xmlns="
pml/">
Jan Novak
Sun May 1 18:56:55
2005
Pred
loves
Subj
John
Obj
Mary
Pred
told
Subj
He
Obj
her
Adv
Friday
Attrib
this
Chú giải thành phần
<annotation xmlns="
pml/">
John Smith
Sun May 1 18:56:55
2005
John
loves
Mary
He
told
her
this
Friday
Ví dụ sau là biểu diễn cây chú giải cú pháp của một câu tiếng Đức và mã hóa của nó dưới dạng TIGER XML - một định dạng mã hoá treebank của tiếng Đức, một trong các tiền đề tham khảo để xây dựng định dang ISO SynAF.
Hình 3. Biểu diễn một cây chú giải cú pháp một câu tiếng Đức
Dạng mã hóa dưới dạng TIGER XML:
3.3.2. Mô hình chú giải cú pháp SynAF
Mô hình chú giải cú pháp SynAF (Syntactic Annotation Framework) là một siêu mô hình bao phủ cả hai mảng cấu trúc cú pháp phụ thuộc và cú pháp thành phần. Mô hình SynAF là là nền tảng của chú giải đa tầng, cho phép kết hợp sự chú giải dữ liệu ngôn ngữ thông qua cả hai mảng cấu trúc. Ngoài ra, SynAF còn cung cấp danh sách các hạng mục dữ liệu được chuẩn hoá quốc tế cho cho cả hai mảng cấu trúc và cú pháp. Các phần tử cơ bản của mô hình SynAF gồm có:
l TNodes: Biểu diễn các nút kết của cây cú pháp, thường gồm các từ được gán nhãn hình thái cú pháp. Các nút TNode được xác định trên một khoảng (span), có thể là một span bội (dùng để xét các thành phần không liên tục). Các nút TNode được gán các nhãn từ loại thích hợp ở mức từ.
l NTNodes: Biểu diễn các nút không kết của cây cú pháp, chủ yếu chứa các nút kết thúc TNode và không kết thúc NTNode. Các nút NTNode cũng được xác định trên một span (bội). Chúng được sử dụng để gán nhãn ở mức cụm từ (ngữ) và mức cao hơn (mệnh đề, câu).
l Edges : Biểu diễn quan hệ phụ thuộc giữa các nút (cả hai loại nút kết và không kết), đây là quan hệ nhị phân, gồm một tên nhãn và cặp nút nguồn và nút đích.
l Syntactic Annotation (SA) : Biểu diễn việc áp dụng thông tin chú giải cú pháp vào đầu vào của nền chú giải hình thái-cú pháp MAF (Morphosyntactic
Annotation Framework). Việc áp dụng này có thể là tự động hoặc bằng tay. Khi chú giải cú pháp được gắn vào các nút (kết hoặc không kết), nó sinh ra một nút mới (không kết) hoặc một cạnh phụ thuộc.
Biểu diễn UML (Unified Modeling Language) của mô hình SynAF như Hình 4. Để gán nhãn cho các TNode, NTNode, Edge người ta đa sử dụng danh sách các các nhãn từ loại và nhãn quan hệ được khuyến nghị như trong tài liệu ISO/CD/24615.
Hình 4 . Mô hình SynAF
S
NP
VP
John
V
NP
D
N
cake
the
wants
SUB
Ví dụ về mã hoá một cây cú pháp bằng SynAF:
...
Hình 5. Biểu diễn diễn cây phân tích cú pháp trong SynAF
...
3.3.3 Mô hình chú giải cú pháp tiếng Việt - vnSynAF
Mô hình SynAF của ISO là cơ sở tốt cho việc xây dựng mô hình chú giải cú pháp câu tiếng Việt. Mô hình chú giải cú pháp câu tiếng Việt – vnSynAF được xây dựng dựa trên mô hình SynAF đó. Danh mục các nhãn từ loại dùng để gán nhãn cho các nút TNode, NTNode, và các cung Edge được sử dụng dựa trên tài liệu “Thiết kế tập nhãn cú pháp và hướng dẫn gán nhãn”.
Các nút TNode dùng để mô tả thuộc tính của mỗi đơn vị từ đầu vào (token). Các nút NTNode dùng để biểu diễn các thành phần không kết thúc như từ loại, cụm từ, nhãn qui ước cho các dấu… Các cung (Edge) dùng để liên kết giữa các nút, biểu diễn chức năng của một thành phần cú pháp, cho biết vai trò của nó trong thành phần cú pháp mức cao hơn, nhờ đó giúp chúng ta biết được quan hệ ngữ pháp giữa các nút, như là chủ ngữ, vị ngữ, tân ngữ… Khi đưa thông tin chú giải vào sơ đồ chú giải cú pháp chúng ta cũng có thể lấy trong một tài liệu có trước hoặc là xây dựng một công cụ tự động.
3.4. Bộ công cụ hỗ trợ xây dựng kho ngữ liệu tiếng Việt - vnSynAF
Bộ công cụ vnSynAF là một chương trình ứng dụng độc lập được xây dựng trên nền tảng Eclipse, một môi trường tích hợp phát triển lập trình bằng ngôn ngữ Java. vnSynAF cung cấp một môi trường đồ họa, giúp người sử dụng có thể dễ dàng tạo, chỉnh sửa cây biểu diễn cú pháp của mộ câu tiếng Việt. Công cụ hỗ trợ xây dựng cây phân tích cú pháp bằng giao diện đồ họa, thực hiện bởi các thao tác chuột và bàn phím. Và được hỗ trợ ở nhiều mức khác nhau.
- Dữ liệu đầu vào của công cụ có thể là:
Một câu văn bản tiếng Việt
Soạn thảo cây phân tích trực tiếp trên giao diện đồ họa cho câu: các nút lá là các từ trong câu, các nút trung gian là các thành phần ngữ pháp và các cung
Nhập câu từ bàn phím qua giao diện nhập câu. Chương trình tự động tách câu thành các từ và hiển thị trên giao điện soạn thảo cây là các nút lá. Người sử dụng dựng thêm các nút trung gian, các cung để hoàn thiện cây phân tích.
Một văn bản tiếng Việt thô lưu dưới dạng tệp
Chương trình đọc và hiển thị nội dung của tệp dưới dạng một danh sách các câu (tự động tách câu). Người sử dụng lần lượt chọn từng câu trên danh sách đó, thực hiện tách từ tự động, hiển thị các từ trên giao diện vẽ cây là các nút kết, vẽ hoàn thiện cây phân tích cú pháp.
Một tệp văn bản tiếng Việt đã được tách từ và gán nhãn từ loại
Chương trình đọc và hiển thị nội dung của tệp dưới dạng một danh sách các câu được gán nhãn từ loại. Người sử dụng lần lượt chọn từng câu trên danh sách đó, chuyển qua chế độ vẽ cây. Chương trình sẽ tự động hiển thị các nút kết là các từ, các nút không kết là các nhãn và các cung nối tương ứng. Người dùng tiếp tục và xây dựng cây phân tích cú pháp hoàn chỉnh.
- Dữ liệu đầu ra là tệp chứa kết quả cây phân tích các câu được mã hóa bằng XML.
Ngoài chức năng chính là soạn thảo cây phân tích cú pháp, chương trình còn hỗ trợ một số tính năng như: tách từ một tệp văn bản lưu dưới dạng tệp, gán nhãn từ loại cho một tệp đã dược tách từ.
Ví dụ với câu: “Tôi đi học”, sử dụng công cụ vẽ Palette ta xây dựng được cây phân tích:
Hình 6. Xây dựng cây phân tích cú pháp bằng công cụ vnSynAF
Kết quả biểu diễn phân tích dạng xml:
Giới thiệu một số giao diện chính của bộ công cụ vnSynAF
Giao diện chính: Gồm các vùng chức năng soạn thảo, hỗ trợ xây dựng cây cú phân tích cú pháp:
(1) thanh menu: tạo cây mới, mở cây, mở thêm các view
(2) thanh công cụ hỗ trợ chỉnh sửa hình thức cây hiển thị, lưu cây
(3) Bộ công cụ vẽ cây
(4) View hình ảnh cây
(5) Vùng soạn thảo cây
(6) Các view hỗ trợ chỉnh sửa nội dung cây, view nhập câu, hiển thị nội dung văn bản dưới dạng danh sách các câu
4
2
1
5
6
3
Hướng dẫn sử dụng công cụ
vnSynAF hỗ trợ xây dựng cây phân tích ở nhiều mức khác nhau:
Mức 1 - Xây dựng trực tiếp: lần lượt tạo các nút kết TNode, nút không kết NTNode, và các cung Connection.
Thực hiện: File > New > Syn Diagram > Đặt tên file biểu diễn đồ họa *.sdi > Đặt tên file lưu dạng biểu diễn phân tích cú pháp *.syn > Tạo cây biểu diễn cú pháp > Lưu lại.
Mức 2 – Hỗ trợ tạo tự động các nút kết (các nút biểu diễn các từ của câu) với đầu vào là một câu.
Thực hiện:
- Từ view: Words View (Show view > Other… > VnParser > Words View), nhập một câu cần tạo cây phân tích.
- Chương trình tách câu đó ra thành các từ (Tokenizer).
- Chương trình thể hiện các từ đó lên vùng đồ họa là các nút kết (Show Graph).
- Người dùng tiếp tục hoàn thiện các nút ở mức trên và các cung
- Người dùng có thể sửa lại các thành phần của cây
Mức 3 – Hỗ trợ tạo tự động cây phân tích với đầu vào là một câu (đang xây dựng)
Thực hiện:
- Từ view: Words View (Show view > Other… > VnParser > Words View), nhập một câu cần tạo cây phân tích.
- Chương trình hiển thị câu đó trên vùng đồ họa là một cây phân tích (Show Full Grap)
- Người dùng có thể lại các thành phần của cây rồi lưu cây
Mức 4 – Hỗ trợ tạo cây phân tích từ một file văn bản.
Thực hiện:
- Từ view: Sentences View (Show view > Other… > VnParser > Sentences View), chọn một file văn bản chứa các câu cần xây dựng câu phân tích.
- Chương trình đọc văn bản, tách và thể hiện các câu trong văn bản đó trong một view (To Sentences).
- Người dùng lựa chọn câu cần phân tích. Câu này sẽ hiện bên view Words View, chọn mức hỗ trợ 2 hoặc 3 để tạo cây phân tích cho câu.
KẾT LUẬN
Xử lý ngôn ngữ tự nhiên nói chung, trong đó có xử lý ngôn ngữ tiếng Việt vẫn đang là một đề tài nóng, một lĩnh vực mà ngày càng có nhiều nhà nghiên cứu quan tâm. Ngày nay, với sự bùng nổ thông tin tri thức thì tham vọng làm chủ thông tin tri thức đó của con người là lớn hơn bao giờ hết. Để đạt được điều này thì các kết quả nghiên cứu về xử lý ngôn ngữ tự nhiên là rất cần thiết.
Ở Việt nam, việc nghiên cứu xử lý ngôn ngữ tiếng Việt vẫn là đang trong giai đoạn đầu nên rất cần có một cơ sở dữ liệu ngôn ngữ đầy đủ, lớn, chính xác và thống nhất. Kho ngữ liệu ngôn ngữ tiếng Việt cũng là một phần trong đó.
Việc xây dựng bộ công cụ hỗ trợ xây dựng kho ngữ liệu VnSynAF bước đầu đã có kết quả ứng dụng được. Tuy nhiên để tốt hơn thì cần có thêm thời gian nghiên cứu. Thứ nhất là về công cụ xây dựng chương trình - Eclipse. Eclispe là công cụ mã nguồn mở cung cấp nhiều thư viện tiện ích giúp xây dựng chương trình ứng dụng bằng ngôn ngữ Java dễ dàng và nhanh chóng. Tuy nhiên nó vẫn còn rất mới ở Việt Nam, còn ít người biết đến. Thứ hai là về công nghệ xử lý ngôn ngữ - các mô đun tự động tách câu, tách từ, gán nhãn từ loại, phân tích cú pháp … Em rất mong có được sự ủng hộ đóng góp quý báu của các chuyên gia, thầy cô và bạn bè.
TÀI LIỆU THAM KHẢO
Tiếng Việt
Đỗ Bá Lâm, Lê Thanh Hương, Xây dựng hệ thống phân tích cú pháp tiếng Việt sử dụng văn phạm HPSG, Kỷ yếu hội thảo ICT.rda’08.Hà Nội.
Phan Xuân Hiếu,, Lê Minh Hoàng, Nguyễn Cẩm Tú, Gán nhãn từ loại tiếng Việt dựa trên các phương pháp học máy thống kê, Kỷ yếu hội thảo ICT.rda’08.Hà Nội.
Nguyễn Thị Minh Huyền, Vũ Xuân Lương, Lê Hồng Phương, Sử dụng bộ gán nhãn từ loại xác suất Qtag cho văn bản tiếng việt, Kỷ yếu hội thảo ICT.rda'03.Hà Nội.
Nguyễn Thị Minh Huyền, Phan Thị Hà, Lê Hồng Phương, Lưu Văn Tăng, Xây dựng sơ đồ mã hóa và công cụ trợ giúp gán nhãn cú pháp tiếng Việt, Kỷ yếu hội thảo ICT.rda’08.Hà Nội.
Nguyễn Thị Minh Huyền, Vũ Xuân Lương, Nguyễn Phương Thái, Xây dựng treebank tiếng Việt, Kỷ yếu hội thảo ICT.rda’08.Hà Nội.
Các báo cáo kỹ thuật,
Tiếng Anh
ISO/CD/24615, Language Resource Management- Syntactic Annotation Framework (SynAF”, TC 37 / SC 4 N421, 22th Aug 2007.
Le An Ha, A method for word segmentation in Vietnamese, Proceedings of Corpus Linguistics 2003, Lancaster, UK, 2003.
H. Nguyen, H. Nguyen, T. Vu, N. Tran, K. Hoang, Internet and Genetics Algorithm-based Text Categorization for Documents in Vietnamese, Research, Innovation and Vision of the Future, the 3rd International Conference in Computer Science, (RIVF 2005), Can Tho, Vietnam, 2005.
L. H. Phuong and H. T. Vinh, A Maximum Entropy Approach to Sentence Boundary Detection of Vietnamese Texts, IEEE International Conference on Research, Innovation and Vision for the Future RIVF 2008, Vietnam, 2008.
Các file đính kèm theo tài liệu này:
- luanvan1.doc