fbpx Pipeline xử lý văn bản pipeline xử lý văn bản (NLP) Skip to main content
Pipe line

Pipeline xử lý văn bản pipeline xử lý văn bản (NLP) kiểu Machine Learning (ML)ản (NLP) kiểu Machine Learning (ML)

 

🧠 Tổng quan: NLP + ML Pipeline

Raw Text
   ↓
[1] Clean Text
   ↓
[2] Tokenization
   ↓
[3] POS Tagging (Tùy chọn)
   ↓
[4] Lemmatization / Stemming
   ↓
[5] Stopword Removal
   ↓
[6] Vectorization
   ↓
[7] Train/Test ML Model

🔍 Bước 1: Clean Text – Làm sạch dữ liệu

🎯 Mục tiêu:

  • Xóa bỏ các yếu tố không liên quan hoặc gây nhiễu.

🧼 Xử lý gồm:

  • Loại bỏ HTML tags

  • Loại bỏ ký tự đặc biệt, dấu chấm câu, số

  • Chuyển chữ hoa → chữ thường (lowercasing)

  • Loại bỏ khoảng trắng dư

📌 Ví dụ:

text = "This is <b>AWESOME</b>!!! Visit: https://example.com"
# Cleaned: "this is awesome visit"

🔠 Bước 2: Tokenization – Tách văn bản thành đơn vị nhỏ

🎯 Mục tiêu:

Tách câu thành từng từ (tokens) để xử lý riêng lẻ.

📦 Công cụ:

  • nltk.word_tokenize

  • spacy tokenizer

📌 Ví dụ:

text = "Python is awesome!"
tokens = ['Python', 'is', 'awesome', '!']

🏷 Bước 3: POS Tagging – Gắn nhãn từ loại (tùy chọn)

🎯 Mục tiêu:

Gắn nhãn từ loại cho từng token: noun (n), verb (v), adj, adv...

✅ Lý do:

Lemmatizer cần biết ngữ cảnh (danh từ/động từ) để đưa từ về gốc chính xác.

📌 Ví dụ:

"run" có thể là danh từ hoặc động từ
- POS = verb → gốc: run
- POS = noun → gốc vẫn là: run

🌱 Bước 4: Lemmatization / Stemming – Chuẩn hóa về gốc

🎯 Mục tiêu:

Đưa từ về dạng gốc (root form):

  • running, ran, runsrun

Kỹ thuật Output Ưu điểm Nhược điểm
Stemming runn Nhanh, đơn giản Không hợp ngữ pháp
Lemmatization run Hợp ngữ pháp, ngữ cảnh Chậm hơn, cần WordNet

🧹 Bước 5: Stopword Removal – Loại bỏ từ vô nghĩa

🎯 Mục tiêu:

Loại các từ thường xuyên xuất hiện nhưng ít giá trị như: is, the, and, but, a,...

📦 Công cụ:

  • nltk.corpus.stopwords

  • spacy.Defaults.stop_words


🔢 Bước 6: Vectorization – Chuyển văn bản thành số

🎯 Mục tiêu:

Mô hình ML chỉ hiểu số → cần biến văn bản thành dạng số hóa.

📌 Phương pháp phổ biến:

Phương pháp Mô tả
Bag of Words Đếm tần suất từ
TF-IDF Tần suất điều chỉnh theo độ hiếm
Word Embeddings Vector ẩn chứa ngữ nghĩa: Word2Vec, GloVe, BERT...

🤖 Bước 7: ML Model – Huấn luyện mô hình

🎯 Mục tiêu:

Dựa trên đặc trưng vector hóa để huấn luyện mô hình học máy:

Mô hình Ứng dụng thường gặp
Logistic Regression Phân loại cảm xúc, spam
Random Forest Phân loại log, lỗi
Naive Bayes Phân loại văn bản nhỏ
SVM, XGBoost Nâng cao, chính xác cao
Neural Networks Khi dữ liệu lớn, xử lý ngôn ngữ sâu

🔁 Pipeline thực tế bằng Scikit-learn

from sklearn.pipeline import Pipeline
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression

pipeline = Pipeline([
    ('vectorizer', TfidfVectorizer()),
    ('classifier', LogisticRegression())
])

pipeline.fit(X_train, y_train)

📦 Tổng hợp lại

Bước Mục tiêu Công cụ phổ biến
1 Làm sạch dữ liệu Regex, re, BeautifulSoup
2 Tách từ NLTK, SpaCy
3 Gắn nhãn từ loại (POS) NLTK, SpaCy
4 Chuẩn hóa từ (lemmatization/stemming) NLTK WordNet, PorterStemmer
5 Loại từ vô nghĩa NLTK stopwords
6 Vector hóa văn bản TF-IDF, CountVectorizer
7 Huấn luyện mô hình học máy Scikit-learn, XGBoost, etc.

 

About

Công ty thiết kế web app chuyên thiết kế web và các dịch vụ maketing digital, seo, google adword...