Chuyển đến nội dung chính

Bài 1: NLP là gì? — Toàn cảnh lĩnh vực Xử lý Ngôn ngữ Tự nhiên

Định nghĩa NLP, lịch sử phát triển từ rule-based đến deep learning. Các bài toán cốt lõi: classification, NER, POS tagging, parsing, generation, QA, summarization. NLP pipeline tổng quan. Demo end-to-end đơn giản với Python.

🧠 AI & ML — Bài 0 Bài 1: NLP là gì? — Toàn cảnh lĩnh vực Xử lý Ngôn ngữ Tự nhiên

NLP từ Cơ bản đến Nâng cao: Làm chủ Xử lý Ngôn ngữ Tự nhiên

Phần 1: Nền tảng NLP — Hiểu Ngôn ngữ qua lăng kính Máy tính

xdev.asia

Giới thiệu

Natural Language Processing (NLP) — Xử lý Ngôn ngữ Tự nhiên — là lĩnh vực giao thoa giữa Khoa học Máy tính, Trí tuệ Nhân tạo và Ngôn ngữ học, nghiên cứu cách giúp máy tính hiểu, phân tích và sinh ngôn ngữ con người.

💡 Một câu: NLP dạy máy tính "đọc", "hiểu" và "viết" ngôn ngữ tự nhiên.

Từ Google Search, Gmail Smart Compose, ChatGPT đến trợ lý ảo Siri — tất cả đều dựa trên NLP.


1. NLP nằm ở đâu trong AI?

┌─────────────────────────────────────────────────────────┐
│                  ARTIFICIAL INTELLIGENCE                 │
│                                                         │
│   ┌─────────────────────────────────────────────────┐   │
│   │              MACHINE LEARNING                    │   │
│   │                                                  │   │
│   │   ┌────────────────────────────────────────┐    │   │
│   │   │          DEEP LEARNING                  │    │   │
│   │   │                                         │    │   │
│   │   │   ┌──────────┐  ┌──────────────────┐   │    │   │
│   │   │   │    NLP    │  │ Computer Vision  │   │    │   │
│   │   │   │          │  │                  │   │    │   │
│   │   │   │ • Text   │  │ • Image          │   │    │   │
│   │   │   │ • Speech │  │ • Video          │   │    │   │
│   │   │   └──────────┘  └──────────────────┘   │    │   │
│   │   └────────────────────────────────────────┘    │   │
│   └─────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────┘

2. Lịch sử NLP — Từ Rule-based đến Transformer

Thời kỳPhương phápĐặc điểmVí dụ
1950s–1980sRule-basedViết regex, grammar rules thủ côngELIZA chatbot
1990s–2000sStatisticalXác suất, n-gram, HMM, CRFSpam filters, POS tagging
2010sML/Deep LearningWord2Vec, RNN, LSTM, CNNSentiment analysis
2017TransformerSelf-attention, parallelizationGoogle Translate cải tiến
2018–nowPre-trained LMsBERT, GPT, T5, LLaMAChatGPT, Gemini, Claude

Bước ngoặt quan trọng

  1. 2013 — Word2Vec: Lần đầu biểu diễn từ bằng dense vectors có nghĩa
  2. 2017 — Transformer: "Attention Is All You Need" thay đổi tất cả
  3. 2018 — BERT & GPT: Transfer learning cho NLP, pre-train một lần dùng mọi nơi
  4. 2022 đến nay — LLM era: ChatGPT, khả năng emergent, reasoning

3. Các bài toán cốt lõi trong NLP

3.1 Phân loại theo cấp độ

┌────────────────────────────────────────────────────────┐
│                    CÁC BÀI TOÁN NLP                    │
│                                                        │
│  📝 CẤP ĐỘ TỪ (Token-level)                          │
│  ├── POS Tagging: gán nhãn từ loại (danh từ, động từ) │
│  ├── NER: trích xuất thực thể (người, địa điểm, tổ chức)│
│  └── Word Segmentation: tách từ (quan trọng cho tiếng Việt)│
│                                                        │
│  📄 CẤP ĐỘ CÂU/TÀI LIỆU (Sequence-level)            │
│  ├── Text Classification: phân loại văn bản            │
│  ├── Sentiment Analysis: phân tích cảm xúc             │
│  └── Topic Modeling: phát hiện chủ đề                  │
│                                                        │
│  🔄 CẤP ĐỘ SINH (Generation)                          │
│  ├── Machine Translation: dịch máy                     │
│  ├── Text Summarization: tóm tắt                       │
│  ├── Question Answering: hỏi đáp                       │
│  └── Text Generation: sinh văn bản (ChatGPT, Gemini)   │
│                                                        │
│  🔗 CẤP ĐỘ QUAN HỆ (Relation)                        │
│  ├── Semantic Similarity: đo độ tương đồng nghĩa       │
│  ├── Textual Entailment: suy luận logic                 │
│  └── Coreference Resolution: xác định đại từ           │
└────────────────────────────────────────────────────────┘

3.2 Ví dụ thực tế

Bài toánInputOutputỨng dụng
Sentiment Analysis"Sản phẩm này tuyệt vời!"Positive (0.95)Review monitoring
NER"Nguyễn Văn A làm việc tại FPT"PER: Nguyễn Văn A, ORG: FPTTrích xuất thông tin
Translation"Hello, how are you?""Xin chào, bạn khỏe không?"Google Translate
SummarizationBài báo 1000 từTóm tắt 50 từTin tức tự động
QAContext + "CEO Apple là ai?""Tim Cook"Chatbot, search

4. NLP Pipeline tổng quan

Dù giải quyết bài toán nào, NLP pipeline cơ bản gồm các bước:

Input Text
    │
    ▼
┌──────────────────┐
│  1. Preprocessing │ ← Tokenization, cleaning, normalization
└────────┬─────────┘
         │
         ▼
┌──────────────────┐
│  2. Representation│ ← BoW, TF-IDF, Word Embeddings, BERT
└────────┬─────────┘
         │
         ▼
┌──────────────────┐
│  3. Modeling      │ ← ML/DL model: classification, NER, generation
└────────┬─────────┘
         │
         ▼
┌──────────────────┐
│  4. Post-processing│ ← Decode, format, threshold, filter
└────────┬─────────┘
         │
         ▼
    Output

5. Demo: NLP trong 5 phút với Python

# Cài đặt: pip install transformers torch

from transformers import pipeline

# 1. Sentiment Analysis
sentiment = pipeline("sentiment-analysis")
result = sentiment("Khóa học NLP này thực sự hay quá!")
print(result)
# [{'label': 'POSITIVE', 'score': 0.9998}]

# 2. Named Entity Recognition
ner = pipeline("ner", grouped_entities=True)
entities = ner("Elon Musk là CEO của Tesla và SpaceX tại California")
for e in entities:
    print(f"  {e['word']}: {e['entity_group']} ({e['score']:.2f})")
# Elon Musk: PER (0.99)
# Tesla: ORG (0.98)
# SpaceX: ORG (0.97)
# California: LOC (0.99)

# 3. Question Answering
qa = pipeline("question-answering")
answer = qa(
    question="NLP là gì?",
    context="NLP (Natural Language Processing) là lĩnh vực AI giúp máy tính hiểu ngôn ngữ tự nhiên."
)
print(f"Answer: {answer['answer']} (score: {answer['score']:.2f})")

# 4. Summarization
summarizer = pipeline("summarization")
summary = summarizer("Your long text here...", max_length=50)
print(summary)

# 5. Translation
translator = pipeline("translation_en_to_vi", model="Helsinki-NLP/opus-mt-en-vi")
result = translator("Natural Language Processing is amazing!")
print(result)

🎯 Chỉ với Hugging Face pipeline, bạn đã chạy được 5 bài toán NLP khác nhau — chưa cần hiểu lý thuyết!


6. NLP cho Tiếng Việt — Tổng quan nhanh

Tiếng Việt có những thách thức đặc thù:

Thách thứcVí dụGiải pháp
Word segmentation"học sinh" vs "học" + "sinh"VnCoreNLP, underthesea
Dấu thanh"hoc" ≠ "học" ≠ "họa"Accent normalization
Ít tài nguyênÍt dataset so với tiếng AnhPhoBERT, ViT5, VLSP datasets
Từ ghép"máy tính", "bàn phím"Dictionary-based segmentation
# Demo NLP tiếng Việt với underthesea
from underthesea import word_tokenize, pos_tag, ner

text = "Nguyễn Phú Trọng làm việc tại Hà Nội"

# Word segmentation
print(word_tokenize(text))
# ['Nguyễn_Phú_Trọng', 'làm_việc', 'tại', 'Hà_Nội']

# POS Tagging
print(pos_tag(text))
# [('Nguyễn_Phú_Trọng', 'Np'), ('làm_việc', 'V'), ('tại', 'E'), ('Hà_Nội', 'Np')]

📌 Bài 17 sẽ đi sâu vào NLP cho tiếng Việt.


Tổng kết

Khái niệmÝ nghĩa
NLPLĩnh vực AI giúp máy tính hiểu ngôn ngữ tự nhiên
Lịch sửRule-based → Statistical → Deep Learning → Transformer → LLM
Bài toánClassification, NER, QA, Summarization, Translation, Generation
PipelinePreprocessing → Representation → Modeling → Post-processing
Tiếng ViệtThách thức word segmentation, ít tài nguyên nhưng đang phát triển

Bài tiếp theo

Bài 2: Text Preprocessing — Đi sâu vào bước đầu tiên và quan trọng nhất: Tokenization, cleaning, normalization. "Garbage in, garbage out" — data preprocessing quyết định 80% thành công trong NLP.