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 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ỏ, 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 phần biến đổi.

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 là đưa từ về dạng ngắn nhất có thể.

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

Naive Bayes dựa vào tần suất xuất hiện của từ; 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à ba 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 quy luật

Sau Stemming:

  • Gom về “run”
  • Tần suất tăng
  • Mô hình ước lượng xác suất ổn định hơn

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

Các biến thể hiếm dễ gây nhiễu khi tính xác suất.
Stemming gom tất cả thành một đại diện → giảm nhiễu rõ rệt.

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

Trong sentiment analysis:

  • “loved”, “loving”, “loves” → đều mang ý nghĩa tích cực

Nếu không Stemming, mỗi từ giữ một xác suất riêng → mô hình khó nhận ra ý nghĩa chung.

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

Khi vocab nhỏ đi:

  • Vector nhỏ hơn
  • Tính toán nhanh hơn
  • Mô hình nhẹ hơn, deploy tiện hơn

Ví dụ thực tế

Trong bài toán spam:

“offer”, “offers”, “offering”, “offered” → đều diễn tả ý "đề nghị".

Nếu không Stemming:

  • Mô hình học bốn xác suất khác nhau

Nếu có Stemming:

  • Tất cả về “offer”
  • Tần suất tăng, mô hình dễ bắt tín hiệu spam hơn

Góc nhìn dự án AI/NLP

  • Dataset lớn → Stemming giảm mạnh kích thước
  • Dataset nhỏ → tăng tần suất từ quan trọng
  • Tác vụ yêu cầu ngữ nghĩa chuẩn → ưu tiên Lemmatization
  • Mô hình phù hợp: Bag-of-Words, TF-IDF, Naive Bayes, Logistic Regression, SVM

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

Hãy thử:

  • Chạy Naive Bayes không Stemming
  • Chạy Naive Bayes có Stemming
  • So sánh vocab size, accuracy

Bạn sẽ thấy sự khác biệt rất rõ.

Hỏi đáp nhanh về chủ đề

Có cần bắt buộc Stemming khi dùng Naive Bayes không?
→ Không, nhưng Stemming thường giúp mô hình ổn định và chính xác hơn.

Stemming có làm mất nghĩa của từ không?
→ Có, nhưng mức độ thường chấp nhận được với mô hình truyền thống.

Nếu đã dùng TF-IDF thì có cần Stemming không?
→ Có, vì TF-IDF không gom nhóm các biến thể của từ.

Lemmatization có tốt hơn Stemming không?
→ Có, nhưng chậm hơn và không cần thiết cho mô hình baseline.

FAQ về chương trình AIO

Q1. Con số 0 thì học nổi không?
Ans: Chỉ cần bạn có thời gian học. Điều quan trọng nhất không phải giỏi hay không, mà là có học đều mỗi ngày. Kiến thức – tài liệu – môi trường đã có team lo. Nếu bạn không có thời gian thì nên cân nhắc.

Q2. Ai dạy AIO?
Ans: Đội admin dạy toàn bộ. Admin trực tiếp hướng dẫn và hỗ trợ mọi câu hỏi của bạn trong suốt quá trình học.

Q3. Admin có “xịn” không?
Ans: Admin đều là người làm nghề thật, mỗi người một cách dạy. Quan trọng là bạn cảm thấy hợp cách truyền đạt. Admin không dám nói xịn, chỉ dạy bằng hết sức.

Q4. AIO có gì khác những nơi khác?
Ans: AIO không phải trung tâm. Đây là dự án học tập cộng đồng, được cải tiến qua từng khóa. Tinh thần của AIO: Cùng nhau học – cùng nhau khổ – cùng nhau lớn. Nếu hợp tinh thần đó, bạn sẽ thấy phù hợp.

Tài nguyên học AI: