Văn phạm phụ thuộc

Một phần của tài liệu TIỂU LUẬN NGÔN NGỮ HỌC MÁY TÍNH PHÂN TÍCH CÚ PHÁP NGÔN NGỮ TỰ NHIÊN VỚI CÔNG CỤ NLTK (NATURAL LANGUAGE TOOLKIT) (Trang 52)

5. TÌM HIỂU MỘT SỐ CHỨC NĂNG TRONG NLTK

5.4.6.Văn phạm phụ thuộc

Cụm từ cấu trúc văn phạm được quan tâm với cái cách các từ và trình tự của các từ kết hợp để tạo thành các thành phần. Một cách tiếp cận khác biệt và bổ sung, phụ thuộc văn phạm, tập trung thay cho cách mà các từ từ liên quan đến các từ khác. Phụ thuộc là một mối quan hệ bất đối xứng nhị phân để giữ giữa head và thành phần phụ thuộc của nó. Head của một câu thường là các thì của động từ, tất cả các từ khác cũng phụ thuộc vào head này. Hoặc kết nối tới nó thông qua các đường dẫn của sự phụ thuộc.

Biểu diễn sự phụ thuộc là một đồ thị có hướng có đánh nhãn, trong đó các nodes là các phần tử từ vựng và nhãn của cung thể hiện mối quan hệ phụ thuộc từ head tới các thành phần phụ thuộc.

Mũi tên chỉ sự phụ thuộc từ head tới các thành phần,với các nhãn

- SBJ: Subject

- OBJ: Object

- MOD: Modifer

Ví dụ: shot là head của câu, I là subject của shot(head), in là một noun modifier (NMOD) của elephant.Ngược lại với cụm từ cấu trúc văn phạm, văn phạm phụ thuộc có thể được sử dụng trực tiếp thể hiện các chức năng văn phạm như là một loại phụ thuộc.

Dưới đây là cách cài đặt một văn phạm phụ thuộc trong NLTK. Lưu ý nó chỉ cần thông tin phụ thuộc mà không cần chỉ định loại phụ thuộc.

>>> groucho_dep_grammar = nltk.parse_dependency_grammar(""" 'shot' -> 'I' | 'elephant' | 'in'

'elephant' -> 'an' | 'in' 'in' -> 'pajamas'

'pajamas' -> 'my' """)

>>> print groucho_dep_grammar

Dependency grammar with 7 productions 'shot' -> 'I'

'shot' -> 'elephant' 'shot' -> 'in' 'elephant' -> 'an' 'elephant' -> 'in' 'in' -> 'pajamas' 'pajamas' -> 'my'

Một đồ thị phụ thuộc là hình chiếu(projective) nếu, khi tất cả các từ được viết theo thứ tự tuyến tính. Điều này là giống như nói rằng một từ và tất cả các con cháu (người phụ thuộc và phụ thuộc người phụ thuộc của nó, vv) tạo thành một chuỗi tiếp giáp của các từ trong câu. Hình ở trên là một projective, và chúng ta có thể phân tích cú pháp nhiều câu tiếng Anh bằng cách sử dụng projective dependency parser. Ví dụ tiếp theo đưa ra cách groucho_dep_grammar cung cấp một cách tiếp cận thay thế để bắt các phần mơ hồ rằng chúng đã thực hiện trước đó với cụm từ cấu trúc văn phạm.

>>> pdp = nltk.ProjectiveDependencyParser(groucho_dep_grammar) >>> sent = 'I shot an elephant in my pajamas'.split()

>>> trees = pdp.parse(sent) >>> for tree in trees:

... print tree

(shot I (elephant an (in (pajamas my)))) (shot I (elephant an) (in (pajamas my)))

Các tiêu chí khác nhau đã được đề xuất để quyết định Head H và những gì là phụ thuộc D trong việc xây dựng C. Một số điều quan trọng sau đây:

1. H xác định các lớp phân phối của C, hoặc cách khác, các thuộc tính bên ngoài cú pháp của C phụ thuộc H.

2. H xác định loại ngữ nghĩa của C.

3. H là bắt buộc trong khi D có thể là tùy chọn.

4. H chọn D và quyết định cho dù đó là bắt buộc hoặc tùy chọn.

5. Hình thức hình thái học của D được xác định bởi H (ví dụ như hiệp định hoặc trường hợp chính phủ).

6. KẾT LUẬN

Chúng ta đã tìm hiểu qua một số nguyên lý và cách sử dụng công cụ NLTK - Tách câu và từ.

- Các mô hình phân lớp: Cây quyết định, Naive Bayes, - Gán nhãn từ: Ngram,Classifier-based,Brill tagger,HMM. - Phân tích cú pháp với CFG, và văn phạm phụ thuộc.

Qua đó có thể thấy rằng hầu như tất cả các bước xử lý trong xử lý ngôn ngữ tự nhiên của công cụ này đều có sử dụng các phương pháp liên quan đến thông kê và có sự kết hợp với các luật văn phạm.

Do thời gian hạn chế, dù em đã cố gắng hết sức nhưng dường như phạm vi quá rộng, có quá nhiều phương pháp và mô hình khác nhau nên không thể nào gói gọn trong một bài viết nhỏ này. Hướng nghiên cứu tiếp theo của em là:

- Tìm hiểu các bước tiền xử lý và xử lý khác trong phân tích cú pháp như chuẩn hóa từ, xác định các thành phần và quan hệ, xác định thực thể trong câu (chunking). (adsbygoogle = window.adsbygoogle || []).push({});

- Các phương pháp gom cụm ứng dụng trong NLP. - Tìm hiểu về xử lý ngữ nghĩa sau khi phân tích cú pháp.

- Tìm hiểu chuyên sâu về một lĩnh vực cụ thể nào đó như: dịch tự động, tìm kiếm ngữ nghĩa, tìm kiếm thông minh, hệ thống hỏi đáp tự động…

Tài liệu tham khảo

1. Xử lý ngôn ngữ tự nhiên - Bách khoa toàn thư mở Wikipedia (tổng quan).

2. Slide bài giảng của TS. Nguyễn Tuấn Đăng (CFG và cú pháp)

3. Slide bài giảng: Phân loại dữ liệu - Trường Đại Học Bách Khoa Tp. HCM (phân lớp).

4. Applications of Hidden Markov Models -Narayanan Ramanathan 5. Hidden Markov Models- Phil Blunsom , August 19, 2004

6. Natural Language Processing with Python- Steven Bird, Ewan Klein, and Edward Loper.

7. Python Text Processing with NLTK 2.0 Cookbook - Jacob Perkins. 8. Natural Language Toolkit - www.nltk.org/book

Một phần của tài liệu TIỂU LUẬN NGÔN NGỮ HỌC MÁY TÍNH PHÂN TÍCH CÚ PHÁP NGÔN NGỮ TỰ NHIÊN VỚI CÔNG CỤ NLTK (NATURAL LANGUAGE TOOLKIT) (Trang 52)