Xử lý ngôn ngữ tự nhiên (Phần 1)


Hi bạn, mở đầu loạt bài kiến thức chủ đề Computer Science, mình sẽ giới thiệu về Xử lý ngôn ngữ tự nhiên ( Natural Language Processing – NLP). Đây là một lĩnh vực của Khoa học máy tính (Computer Science), Trí tuệ nhân tạo (Artificial Intelligence) và Ngôn ngữ học tính toán (Computational Linguistics) liên quan tới sự tương tác giữa ngôn ngữ con người (natural language) với máy tính.

Chúng ta sẽ được làm quen những kỹ thuật, các văn phạm được sử dụng để phân tích một câu (ngôn ngữ người). Bài viết có tham khảo bài giảng của thầy Nguyễn Tuấn Đăng, cùng những kinh nghiệm có được của bản thân trong quá trình học tập và trao đổi với bạn bè. Khó tránh khỏi những sơ sót và những vấn đề bạn cảm thấy chưa được sáng tỏ trong blog, đừng ngần ngại hãy comment cho mình biết nha.

Tham khảo đề cương môn học:

– Để phân tích cú pháp chúng ta dựa trên:

+ Văn phạm hình thức: Văn phạm phi ngữ cảnh (Context Free Grammar -CFG).
+ Definite Clause Grammar – DCG  =>Prolog.
+ Phương pháp phân tích cú pháp.

– Biểu diễn bằng: Biểu thức chính quy; Văn phạm chính quy.
– Bây giờ ta thử phân tích một câu tiếng Việt cơ bản như sau: “Nam học bài”.

  • Câu này có 3 từ, gồm 3 loại từ (Danh từ riêng, động từ và danh từ chung).
  • Danh từ riêng (Nam) giữ chức năng chủ ngữ.
  • Từ “học”, động từ ở Tiếng Việt khác với trong Tiếng Anh (Các Thì: Hiện tại, quá khứ,…; Thể: Chủ động, bị động; Ngôi: số 3 số ít/nhiều;..)
  • Từ “bài” giữ chức năng bổ ngữ làm rõ nghĩa cho cả câu.
  • “học bài” là ngữ động từ =>vị ngữ.

Tương tự bạn hãy phân tích câu sau: “Nam học chăm chỉ”. XD

Qua ví dụ phân tích câu trên, bạn đã được ôn lại cách phân tích một câu trong ngôn ngữ. Bây giờ chúng ta tìm hiểu sơ lược về lịch sử một tí:

Để có thể giải quyết vấn đề xử lý được ngôn ngữ tự nhiên trên máy tính, Leonard Bloomfield (1887-1949) đã tiến hành nghiên cứu và đưa ra “Mô hình phân tích thành tố trực tiếp“. Học trò của ông ta là Zellig Harris (1909-1992) và người học trò của Z. Harris là Noam Chomsky (1928-). Chúng ta sẽ tiếp thu kiến thức từ những công trình nghiên cứu và kết quả của ông Noam Chomsky trong phần chủ đề này.

Năm 1957, N.Chomsky đã trở thành nhân vật nổi bật trong lĩnh vực ngôn ngữ học bằng thuật ngữ “Syntactic Structures – Ngữ pháp cấu trúc ngữ đoạn”. Cụ thể hơn chúng ta sẽ tiếp cận với “Phrase Structure Grammar – Ngữ pháp/văn phạm cấu trúc ngữ đoạn”.

Khá sơ lược những gì chúng ta sẽ tìm hiểu. Ở phần 1, chúng ta cần nắm được cách thức giải thích câu theo “Mô hình phân tích thành tố trực tiếp” và “Văn phạm phi ngữ cảnh“.

1) Giải thích câu: “Nam học bài” theo “Mô hình phân tích thành tố trực tiếp”.
Để phân tích một câu nào đó theo mô hình này, chúng ta phải hiểu câu đó, ngôn ngữ đó đang sử dụng là gì (Anh, Pháp, Hoa, Việt,…). Trong quá trình phân tích, chúng ta không quan tâm các từ được phân rã giữ chức năng, từ loại nào.
Giải:

xlnn1

Tương tự ta phân tích câu: “Nam đang học toán”

xlnn2

2) Giải thích câu: “Nam học bài” theo Phrase Structure Grammar _ CFG (Context-Free Grammar – Văn phạm phi ngữ cảnh).

xlnn3

Một số quy tắc ký hiệu (theo thầy):
NNP: Danh từ riêng; NP: Danh ngữ; NN: Danh từ chung; PRP: Đại danh từ (nó,họ,…); VP: Ngữ động từ; VB: Động từ;    RB: Trạng từ; IN: Giới từ; PP: Giới ngữ; CC: Liên từ(và, với);   S: Câu

Dựa vào cây cú pháp trên, Chomsky viết như sau:

Tương tự ta phân tích câu: “Nam đang học toán” (Lời giải: Trong phần 2 😛 )

*Note: Có 4 lớp văn phạm gồm “Văn phạm chính quy“; “Context- Free Grammar(s)“; “Context- Sensitive Grammar(s)“; “Văn phạm tự do“.

Tài liệu tham khảo:
[1] Nguyễn Tuấn Đăng, Xử lý ngôn ngữ tự nhiên (Bài giảng), mã lớp CS221.G11, lớp Cử nhân Chính quy Khoa học máy tính, Trường Đại học Công Nghệ Thông Tin, ĐHQG-HCM.
[2] Nguyễn Tuấn Đăng, Ngôn ngữ học máy tính (Giáo trình), NXB Đại học quốc gia TP. Hồ Chí Minh, 2015.

[3] Kiến thức cơ bản về xử lý ngôn ngữ tự nhiên http://viet.jnlp.org/ 

Phần mềm tham khảo ngữ nghĩa từ:
Từ điển LẠC VIỆT mtd2002 – EVA:  http://dcs.lacviet.com.vn/vi/
Từ điển Lingoes v2.9.2 (2014-08-16): http://www.lingoes.net/

OK! Kết phần 1, bạn đã nắm được các ký tự và quy tắc cú pháp theo CFG. Ở phần 2 chúng ta sẽ tìm hiểu làm thế nào máy tính có thể chạy được các quy tắc này.


Cảm ơn bạn đã theo dõi blog.
Nhiều ngày tốt lành!

Advertisements

3 thoughts on “Xử lý ngôn ngữ tự nhiên (Phần 1)

  1. Pingback: Xử lý ngôn ngữ tự nhiên (Phần 2) | Sâu non tìm lá

  2. Pingback: Prolog + (Java/C#) | Sâu non tìm lá

  3. Mình đang làm đề tài về ngôn ngữ học máy tính
    bạn có thể cho tham khảo project nào được ko vậy
    thanks bạn

    Like

Cho mình biết cảm nhận của bạn nhé

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s