# Natural Language Processing
[TOC]
## 1. Giới thiệu
### I. Giới thiệu
#### Khái niệm
- Ngôn ngữ tự nhiên (Natural Language): được hình thành tự phát trong quá trình phát triển của loài người, như tiếng Anh, Việt,...
- Ngôn ngữ nhân tạo (Artificial Language): được xây dựng có chủ đích với kích thước giới hạn để giao tiếp trong một phạm vi nhất định, như ngôn ngữ lập trình C, Python,...
| Xử lý ngôn ngữ tự nhiên | Ngôn ngữ học tính toán |
| --------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| Phát triển các phương pháp giải quyết những vấn đề thực tế liên quan đến ngôn ngữ:<br>- Nhận dạng giọng nói<br>- Dịch máy<br>- Trích chọn thông tin | Nghiên cứu quá trình tính toán bên trong ngôn ngữ của con người:<br>- Hiểu ngôn ngữ<br>- Phát ngôn<br>- Học ngôn ngữ |
#### Mục tiêu của NLP
- Mục tiêu cao nhất:
- Hiểu những gì con người nói và viết
- Phân tích, tổng hợp
- Báo cáo trực tiếp
- Mục tiêu hiện tại:
- Xây dựng các hệ thống máy tính có khả năng xử lý văn bản và giọng nói một cách thông minh
### II. Các cơ sở khoa học của NLP
#### Ngôn ngữ học:
1. __Khái niệm về ngôn ngữ:__ Là một hệ thống những đơn vị vật chất và những quy tắc hoạt động của chúng, dùng làm công cụ giao tiếp của con người, được phản ánh trong ý thực cộng đồng và trừu tượng hoá khỏi bất kỳ một tư tưởng, cảm xúc và ước muốn cụ thể nào.
2. __Bản chất của ngôn ngữ tự nhiên:__
- Là hiện tượng xã hội đặc biệt
- Phương tiện giao tiếp quan trọng nhất của con người
- Hiện tượng trực tiếp của tư tưởng, là phương tiện của tư duy
- Là một hệ thống tín hiệu gồm có 2 mặt: mặt biểu hiện vật chất (âm, chữ) và mặt được biểu hiện (ý nghĩa)
3. __Tính hệ thống của ngôn ngữ:__
_Các cấp độ trong ngôn ngữ_
- Âm vị (phoneme): đơn vị âm thanh nhỏ nhất để cấu tạo và khu biệt về mặt biểu hiện vật chất (âm thanh) của các đơn vị khác. Ví dụ: b - i - g (big)
- Hình vị (morpheme): đơn vị nhỏ nhất mang nghĩa (ngữ pháp hay từ vựng) được cấu tạo bởi các âm vị. Ví dụ: read-ing (reading)
- Từ (word): đơn vị mang nghĩa độc lập, được cấu tạo bởi các hình vị, có chức năng định danh.
- Ngữ (phrase): gồm hai hay nhiều từ có quan hệ ngữ pháp hay ngữ nghĩa với nhau.
- Câu (sentence): gồm các từ/ngữ có quan hệ ngữ pháp hay ngữ nghĩa với nhau và có chức năng cơ bản là thông báo.
- Văn bản (text): hệ thống các câu được liên kết với nhau về mặt hình thức, ngữ pháp, ngữ nghĩa và ngữ dụng.
_Các quan hệ trong ngôn ngữ_
- Quan hệ cấp bậc (hierarchical relation): đơn vị cấp bậc cao hơn bao giờ cũng bao hàm đơn vị cấp bậc thấp hơn.
- Quan hệ ngữ đoạn (syntagmatical relation): Nối kết các đơn vị ngôn ngữ thành chuỗi khi ngôn ngữ đi vào hoạt động (tính hình tuyến của ngôn ngữ). Các đơn vị ngôn ngữ phải nối tiếp nhau để tạo thành những sự kết hợp gọi là ngữ đoạn.
- Quan hệ liên tưởng (associative relation): các yếu tố tương tự theo khía cạnh nào đó có thể thay thế nhau.<br>Ví dụ: He saw a __book__ <-{picture, pen, man,…}
_Các phương diện trong ngôn ngữ_
- Hình thái: quan hệ giữa đơn vị ngôn ngữ với hình thức cấu tạo của đơn vị đó
- Ngữ pháp: quan hệ giữa đơn vị ngôn ngữ này với các đơn vị ngôn ngữ khác cùng xuất hiện với nó.
- Ngữ nghĩa: quan hệ giữa đơn vị ngôn ngữ với nội dung (mặt ý nghĩa) của đơn vị đó
- Ngữ dụng: mối quan hệ giữa đơn vị ngôn ngữ với mục đích sử dụng của đơn vị đó.
4. __Phân loại ngôn ngữ:__
_Phân loại theo cội nguồn_
- Ấn-Âu: Ấn độ, Iran, Bantic, Slave, Roman, Hy Lạp, German (gồm: Đức, Anh, Hà Lan,…)
- Semite: dòng Semite, Ai Cập, Kusit, Becbe,… - Thổ: Thổ Nhĩ Kỳ, Azecbaizan, Tacta,…
- Hán – Tạng: dòng Hán, Tạng – Miến,…
- Nam phương: Nam-Thái, Nam Á. Trong dòng Nam Á có các ngành Nahali, Munda, Nicoba và MônKhmer (có nhóm Việt-Mường)
_Phân loại theo loại hình_
- Ngôn ngữ hòa kết (flexional): Đức, Latin, Hy Lạp, Anh, Pháp, Nga, A Rập,…
- Ngôn ngữ chắp dính (agglutinate) có hiện tượng nối tiếp thêm một hay nhiều phụ tố vào căn tố trong đó mỗi phụ tố chỉ mang một ý nghĩa ngữ pháp nhất định. (Thổ Nhĩ Kỳ, Nhật Bản, Triều Tiên,…)
- Ngôn ngữ đơn lập (isolate): ngôn ngữ phi hình thái, không biết hình, đơn tiết, phân tiết. (Việt, Hán,…)
_Phân loại theo trật tự từ của ngôn ngữ_
- SVO: Anh, Việt,… chiếm 32.4 – 41.8%
- SOV: Nhật,… chiếm 41 – 51.8%
- VSO: chiếm 2 – 3%
- VOS: chiếm 18%
- OSV: chiếm khoảng 1%
- OVS: chiếm khoảng 1%
5. __Quá trình xử lý ngôn ngữ tự nhiên:__
- Biểu diễn văn bản:
1. Phân tích hình thái (Morphology): hình vị, từ
2. Phân tích cú pháp (Syntax): ngữ, câu
- Ngữ nghĩa văn bản:
3. Phân tích ngữ nghĩa (Semantic): từ, ngữ, câu
4. Phân tích ngữ dụng (Pragmatic): từ ngữ, câu
5. Phân tích diễn ngôn (Discourse): văn bản
#### Trí tuệ nhân tạo:
- Cấu trúc biểu diễn
- Các mô hình tính toán
- Các thuật toán
### III. Các hướng nghiên cứu và ứng dụng của NLP
#### Các hướng nghiên cứu
- Tạo sinh văn bản và giọng nói (Speech and Text Generation)
- Hiểu văn bản và giọng nói (Speech and Text Understanding)
- Truy hồi thông tin (Information Retrieval)
- Trích chọn thông tin (Information Extraction)
- Xử lý hội thoại (Dialogue Processing)
- Tóm tắt văn bản (Text Summarization)
- Suy luận (Inference)
#### Các ứng dụng của NLP
- Sửa lỗi chính tả, sửa lỗi văn phạm (Word spell checker & grammar checker)
- Chatbot (Eliza http://psych.fullerton.edu/mbirnbaum/psych101/Eliza.htm)
- Dịch tự động (Google Translate https://translate.google.com)
- Hệ thống hỏi đáp (START http://start.csail.mit.edu/index.php)
- Công cụ tìm thông tin (Search Engine: Google, Bing, Yahoo)
- Tóm tắt văn bản
- Nhận dạng đạo văn
- …
## 3. Context Free Grammar
### I. Khái niệm
#### Văn phạm (Grammar)
- Phân chia kho từ vừng của ngôn ngữ thành từng lớp theo khả năng kết hợp với các đơn vị ngôn ngữ
- Xác định các quy tắc kết hợp các đơn vị ngôn ngữ
Ví dụ:
- Danh từ: sách, cây, bảng,…
- Tính từ: mới, tốt,…
- Đại từ: tôi, nó,…
#### Từ loại
Từ vựng được phân chia dựa trên những tiêu chuẩn:
- Ý nghĩa khái quát: nghĩa chung cho cả một lớp từ. Trong tiếng việt không có dấu hiệu âm thanh biểu hiện trong bản thân từ vựng.
- Khả năng kết hợp: thể hiện trong việc kết hợp với các từ khác.
- Chức vụ cú pháp của từ trong câu: vị trí của từ trong mối liên hệ ngữ pháp với từ (hay cụm từ) khác trong câu.
Một số từ loại trong tiếng Việt:
- Danh từ: có nghĩa khái quát chỉ vật, thường giữ vai trò là chủ ngữ hoặc bổ ngữ trong câu. Danh từ có các tiểu loại:
- Danh từ riêng: tên riêng của người, địa điểm, vật,… Ví dụ: Hoa, Long An,…
- Danh từ chung: tên chung của một lớp đối tượng có một số tính chất chung nào đó. Ví dụ: mèo, đèn,…
- Động từ: có nghĩa khái quát chỉ hành động, có thể đứng sau từ “hãy”, thường giữ vai trò vị ngữ trong câu.
- Xét về ý nghĩa, động từ có thể chia thành các tiểu loại: động từ chỉ trạng thái (thích, ghét,…), động từ tình thái (cần, nên, phải,…), động từ chỉ trạng thái (có, ngủ,…), động từ chỉ hành động (đi, ăn,…)
- Xét về khả năng kết hợp, động từ có thể chia thành động từ nội động và động từ ngoại động.
- Tính từ: có nghĩa khái quát chỉ tính chất, có thể đứng sau từ “rất”, thường hay làm vị ngữ hay định ngữ trong câu. Ví dụ: mới, đẹp,…
- Số từ: có nghĩa khái quát chỉ số lượng. Ví dụ: một, hai, trăm,…
- Đại từ: có nghĩa khái quát thay thế cho một đối tượng cụ thể nào đó. Ví dụ: tôi, nó, ai,…
- Kết từ (liên từ): liên kết một cách bình đẳng các đơn vị ngôn ngữ. Ví dụ: và, còn, thì,…
- Giới từ: liên kết hai đơn vị ngôn ngữ có phân biệt quan hệ chính phụ. Ví dụ: tại, với, cho,…
- Trạng từ: bổ sung ý nghĩa cho các tính từ. Ví dụ: “rất”, “quá”,…
- Trợ từ: chỉ xuất hiện ở bậc câu. Ví dụ: cả, chính, đúng,…
- Tình thái từ: chỉ xuất hiện ở bậc cả câu. Ví dụ: à, nhỉ,…
- Thán từ: biểu thị cảm xúc. Ví dụ: ôi!
Một số nhãn được sử dụng tương ứng với từ loại theo Penn TreeBank:
| Từ loại | Kí hiệu | Từ loại | Kí hiệu |
| ------------------------------------- | ------- | ------------------------------------------------------ | ------- |
| Danh từ chung | NN | Danh từ riêng | NNP |
| Động từ (bare) | VB | Tính từ | JJ |
| Số từ | CD | Đại từ (nó, họ) | PRP |
| Liên từ (và, với) | CC | Trạng từ | RB |
| Động từ tình thái<br>(cần, phải, nên) | MD | Lượng từ<br>(mấy, vài, mỗi, các,<br>nhiều, ít, tất cả) | DT |
| Giới từ | IN | Danh từ chỉ đơn vị | UN |
| Từ so sánh (adj) | JJR | Từ so sánh nhất (adj) | JJS |
| Từ so sánh (adv) | RBR | Từ so sánh nhất (adv) | RBS |
Lưu ý: Trong tiếng Việt có phân biệt thêm một loại danh từ chỉ đơn vị. Danh từ chỉ đơn vị này sẽ được gán nhãn là UN (Unit Noun). Ví dụ: cái, chiếc, mẩu,…
#### Ngữ đoạn
Ngữ đoạn là một nhóm từ có liên hệ trực tiếp với nhau ở trong câu. Ngữ đoạn có vai trò quan trọng trong việc phân tích cú pháp và mô hình hóa câu để hiểu câu dễ dàng. Ngữ đoạn có ba phần: phần trung tâm, phần phụ trước và phần phụ sau. Phần trung tâm mang ý nghĩa chính của ngữ đoạn, các phần phụ bổ nghĩa cho phần trung tâm.
Một số ngữ đoạn thường thấy:
- Danh ngữ: là ngữ đoạn có phần trung tâm có chức năng như một danh từ. Danh ngữ có chức năng như một danh từ. Ví dụ: một con gà trống
- Động ngữ: là ngữ đoạn có phần trung tâm là động từ. Động ngữ có chức năng như một động từ. Ví dụ: muốn được tặng quà
- Tính ngữ: là ngữ đoạn có phần trung tâm là tính từ. Tính ngữ có chức năng như một tính từ. Ví dụ: mới rất đắt
Một số nhãn tương ứng với các ngữ đoạn trên theo Penn Treebank:
- Danh ngữ: NP
- Động ngữ: VP
- Tính ngữ: ADJP
- Giới ngữ: PP
#### Câu
Câu là đơn vị ngôn ngữ có cấu tạo ngữ pháp tự lập và có ngữ điệu kết thúc, mang một tư tưởng tương đối trọn vẹn có kèm thái độ của người nói, giúp hình thành và biểu hiện, truyền đạt tư tưởng, tình cảm với tư cách là đơn vị thông báo nhỏ nhất.
Có 3 cách phân loại câu gồm phân loại theo mục đích, theo quan hệ với hiện thực và theo cấu tạo.
Phân loại:
- Phân loại theo mục đích: Câu tường thuật, câu nghi vấn, câu mệnh lệnh, câu cảm thán
- Phân loại theo quan hệ với hiện thực: Câu khẳng định, câu phủ định.
- Theo cấu tạo: câu đơn và câu ghép.
- Câu đơn: câu chỉ có một nhóm chủ ngữ và vị ngữ. Ví dụ: Lan học bài
- Câu ghép: câu có từ hai nhóm chủ ngữ và vị ngữ trở lên. Ví dụ:
- Hoa sẽ mua sách nếu Hoa có tiền.
- Hoa đã gặp một người nâng được xe tải.
Nhãn tương ứng với câu theo Penn TreeBank:
- Câu: S
- Câu (mệnh đề) làm một thành phần trong câu: SBAR
#### Văn phạm cấu trúc ngữ đoạn
Là phương pháp phân tích một đơn vị ngôn ngữ thành các ngữ đoạn hoặc từ vựng và xác chức năng của những ngữ đoạn đó.
Văn phạm cấu trúc ngữ đoạn gồm một tập các luật cấu tạo các ngữ đoạn có vai trò ngữ pháp xác định một đơn vị ngôn ngữ lớn hơn.
Các luật cấu tạo ngữ đoạn được xác định dựa trên thực tế hiểu ngôn ngữ theo cách của người bản địa.
Văn phạm cấu trúc ngữ đoạn là một văn phạm phi ngữ cảnh. Các luật ngữ pháp đều có dạng: $X\rightarrow\alpha$ với $\alpha\in(N\cup\sum)^+, X\in N$
Văn phạm cấu trúc ngữ đoạn không thể đoán nhận và phân tích bằng các FSA và FST.
### II. Các quy tắc cú pháp
ADJP -> JJ (xanh)
ADJP -> JJ JJ (trong xanh)
ADJP -> JJ PP (vui-vẻ trong cuộc-sống)
ADJP -> RB JJ (rất đẹp)
ADJP -> RB JJR NP (cao hơn đầu)
ADJP -> JJ JJR NP (xanh như mực)
ADJP -> JJ JJS (đẹp nhất)
ADJP -> JJ JJS NP (đẹp nhất làng)
ADJP -> JJ JJS PP (nóng nhất trong năm)
ADJP -> JJ CC JJ (trong và xanh)
ADVP -> RB (rất)
ADVP -> RB RB (rất nhanh)
ADVP -> RB RBR (tốt hơn)
ADVP -> RB RBR NP (nhanh như chớp)
ADVP -> RB RBS (nhanh nhất)
ADVP -> RB RBS NP (hay nhất nhà)
ADVP -> RB RBS PP (nhanh nhất trên thế-giới)
ADVP -> RB CC RB (nhanh và tốt)
NP -> NN (Xe)
NP -> NNP (Hoa)
NP -> PRP (nó)
NP -> UNN NN (chiếc xe)
NP -> NN NNP (nhà Hoa)
NP -> NN PRP (nhà tôi)
NP -> CD NP (hai chiếc xe)
NP -> DT NP (vài chiếc xe)
NP -> NN NP (gà nhà tôi)
NP -> NP ADJP (hồ Gươm trong xanh)
NP -> NP PP (cây bút của tôi)
NP -> NN VP (súng chống tăng)
VP -> VB (ngủ)
VP -> VB NP (làm bánh)
VP -> VB VP (học làm bánh)
VP -> MD VP (phải học làm bánh)
VP -> ADVP VB (không ngủ)
VP -> ADVP VP (đã không học làm bánh)
VP -> VB ADVP (đọc chậm và rõ)
VP -> VB PP (nằm trên võng)
VP -> VB NP PP (mua hai ký táo ở chợ Bà Chiểu)
VP -> VB NP VP (nhắc các bạn trong lớp đăng ký môn đại số)
VP -> ADVP MD VP (không cần học làm bánh)
PP -> IN NP (trên bàn)
PP -> IN VP (để biết làm toán)
S -> NP VP
S -> NP VP PP
S -> NP ADJP
S -> VP
### III. Phân tích cú pháp với CFG
Cho một văn phạm G sản sinh ra ngôn ngữ L(G), có hai bài toán quan trọng:
- Đoán nhận (recognize): Xác định một câu s có thuộc L(G) hay không. Kết quả là YES/NO
- Nếu s thuộc L(G), phân tích (parse) cấu trúc của s theo G. Kết quả là cây cú pháp (parsing tree/ derivation tree).
Phân tích cú pháp (parse) là quá trình áp dụng các luật dẫn để xác nhận một câu đã cho có thỏa một văn phạm CFG hay không.
Cây cú pháp (parsing tree/derivation tree) là một cây có gốc, có thứ tự, biểu diễn cấu trúc cú pháp của một câu. Cây cú pháp được hình thành từ quá trình áp dụng các luật dẫn khi phân tích một câu.
## 5. Phân tích cú pháp có ràng buộc ngữ nghĩa
### Sự phù hợp giữa các từ
#### Vấn đề ràng buộc ngữ nghĩa
Nguyên tắc ràng buộc ngữ nghĩa:
- Các thành phần cấu tạo của một ngữ đoạn phải có ngữ nghĩa phù hợp với nhau.
- Ngữ nghĩa của ngữ đoạn là ngữ nghĩa của thành phần trung tâm cấu tạo nên ngữ đoạn.
#### Một số ràng buộc ngữ nghĩa
- Ràng buộc ngữ nghĩa giữa tính ngữ và danh ngữ
- Ràng buộc ngữ nghĩa giữa danh từ và danh từ đơn vị
- Ràng buộc ngữ nghĩa giữa danh ngữ và giới ngữ
- Ràng buộc ngữ nghĩa giữa danh ngữ và động ngữ