Kỹ thuật Stemming trong tiền xử lý văn bản cho Naive Bayes có mục đích gì?

Tác giả: AI VIET NAM (AI VIET NAM)

Keywords: stemming naive bayes, tiền xử lý văn bản, nlp cơ bản, bag of words, tf-idf

Mở đầu

Khi bắt đầu với các bài toán xử lý văn bản, nhiều bạn hay gặp một câu hỏi quen thuộc: “Tại sao trước khi đưa dữ liệu vào Naive Bayes lại phải làm Stemming? Nếu không Stemming thì mô hình có bị ảnh hưởng không?” Thắc mắc này là điều rất tự nhiên, đặc biệt khi bạn bắt đầu từ các bước cơ bản của NLP (liên quan đến Module 10 – NLP trong 12 module học thuật AIO). Stemming nghe có vẻ như một thao tác nhỏ, nhưng lại ảnh hưởng trực tiếp đến cách mô hình hiểu dữ liệu.

Stemming là gì?

Stemming là kỹ thuật rút gọn từ về gốc dạng thô, bằng cách loại bỏ hậu tố hoặc các phần biến đổi của từ. Ví dụ: “running”, “runs”, “ran” → “run” “studies”, “studying” → “studi” Stemming không quan tâm đến nghĩa chính xác của từ; mục tiêu của nó chỉ là giảm từ về dạng ngắn nhất có thể.

Mục đích của Stemming trong Naive Bayes

Naive Bayes là mô hình thống kê dựa trên tần suất xuất hiện của từ. Vì vậy, dữ liệu càng nhất quán, mô hình càng học tốt.

Giảm sự phân tán trong tập từ vựng

Nếu không Stemming: “run”, “runs”, “running” được xem là 3 từ khác nhau
→ Tập từ vựng phình to
→ Mỗi biến thể xuất hiện ít → khó học được quy luật
Sau Stemming: Tất cả trở về “run”
→ Mô hình hiểu đây là một ý nghĩa chung
→ Tần suất tăng → tính toán xác suất ổn định hơn
Điều này liên quan trực tiếp đến tư duy rút gọn đặc trưng trong ETL và xử lý dữ liệu chuỗi văn bản (Module 3 – Data Engineering & Data Analysis).

Giảm nhiễu trong dữ liệu

Naive Bayes không phân biệt ngữ pháp hoặc biến thể của từ. Nếu một từ có quá nhiều hình thức, mô hình dễ bị nhiễu bởi những từ xuất hiện rất ít. Stemming giúp gom chúng lại thành một nhóm duy nhất.

Giúp mô hình học khái quát hơn

Dạng gốc cho phép Naive Bayes nắm trọn ý nghĩa tổng quát. Ví dụ trong bài toán phân loại cảm xúc: “loved”, “loving”, “loves” → đều thể hiện cảm xúc tích cực Nếu không Stemming, mỗi từ có xác suất riêng và chiếm dung lượng khác nhau trong vector đặc trưng.

Cải thiện tốc độ huấn luyện và dự đoán

Khi số lượng từ giảm: Ma trận biểu diễn văn bản nhỏ hơn
Tính toán xác suất nhanh hơn
Mô hình gọn, dễ deploy hơn (ở những bước đầu trong pipeline ML – liên quan đến MLOps Series-1 trong Module 4)

Ví dụ thực tế

Giả sử bạn phân loại tin nhắn “spam” – “không spam” bằng Naive Bayes. Nếu tập dữ liệu có các từ: “offer”, “offers”, “offering”, “offered” Trong khi bản chất chúng đều chỉ hành động "đề nghị", mô hình lại phải học bốn xác suất khác nhau. Stemming gom chúng thành: “offer” Kết quả:

  • Tập từ vựng nhỏ gọn
  • Tần suất “offer” tăng
  • Mô hình dễ học mối liên hệ giữa từ này và lớp “spam”

Góc nhìn khi làm dự án AI/NLP

Trong những dự án thực tế:

  • Nếu dữ liệu lớn → Stemming giúp giảm kích thước mạnh.
  • Nếu dữ liệu nhỏ → Stemming giúp tăng tần suất xuất hiện của các từ mang tính quyết định.
  • Với bài toán cần độ chính xác về ngữ nghĩa (QA, summarization, semantic search) → thường ưu tiên Lemmatization hơn. Stemming đặc biệt phù hợp cho các mô hình dựa vào bag-of-words, TF-IDF, Naive Bayes, vốn được dạy nhiều trong nhóm bài toán NLP cơ bản (Module 10 – Tokenization & Embedding).

Lời khuyên cho người bắt đầu

Bạn có thể thử:

  • Chạy Naive Bayes không Stemming
  • Chạy Naive Bayes có Stemming
  • So sánh kích thước vocab và độ chính xác Các thử nghiệm nhỏ như vậy giúp hiểu rõ hơn tác động của từng bước tiền xử lý.

Tài nguyên học AI: