Các bước tiền xử lý cơ bản cho Text Classification (loại bỏ RT, URL, dấu câu)

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

Keywords: text preprocessing, NLP, text classification, RT URL removal

Vì sao bước tiền xử lý văn bản lại dễ gây rối cho người mới?

Khi bắt đầu với NLP hoặc thử xây dựng một mô hình phân loại văn bản (text classification), nhiều bạn thường gặp một cảm giác khá giống nhau: văn bản thực tế “không sạch” như ví dụ trên sách. Đặc biệt là dữ liệu mạng xã hội: RT, dấu #, link URL, icon lạ, ký tự kéo dài, hoặc câu viết không dấu. Điều đó khiến câu hỏi tưởng chừng đơn giản trở nên khó: “Tiền xử lý văn bản cần làm những bước nào? Làm sao để loại bỏ RT, URL và dấu câu mà không làm mất thông tin quan trọng?” Bài viết dưới đây giúp bạn nhìn rõ bản chất của các bước này — mạch lạc, dễ hiểu, và gắn với thực tế khi làm dự án.

Bản chất của tiền xử lý trong Text Classification

Ở nhiều bài toán NLP (thuộc nhóm kiến thức quan trọng trong Module 10 – NLP của AIO), dữ liệu thô thường chứa nhiều thành phần không phục vụ cho mục tiêu phân loại.

Tiền xử lý giúp:

  • làm văn bản thống nhất hơn
  • giảm nhiễu
  • giúp mô hình học đúng trọng tâm
  • tránh trường hợp mô hình chú ý sai vào ký tự lạ thay vì ý nghĩa thật

Trong các pipeline NLP, bước này thường đi sau thao tác dữ liệu (Module 3 – ETL) và trước phần trích xuất đặc trưng như tokenization & embedding.

Các bước tiền xử lý cơ bản nhất (đúng tinh thần dự án thực tế)

Dưới đây là ba nhóm xử lý thường gặp nhất khi xây dựng text classifier đơn giản:

Loại bỏ RT (retweet indicators)

Trong dữ liệu Twitter hoặc mạng xã hội, “RT” chỉ là ký hiệu retweet, không có giá trị ngữ nghĩa trong nội dung cần phân loại. Việc loại bỏ “RT” giúp câu văn gọn lại mà không ảnh hưởng đến meaning.

Trường hợp cần giữ lại? Khi bạn phân loại hành vi người dùng như “retweet hay không”, “tương tác hay không”. Còn với sentiment hoặc phân loại chủ đề, “RT” hầu như không cần thiết.

Loại bỏ URL

Link như “https://…” hầu như không đóng góp vào chủ đề của câu (topic).
Trong dự án thực tế, URL thường gây:

  • nhiễu trong tokenization
  • tăng kích thước từ vựng
  • làm embedding rối vì mô hình coi URL là một từ riêng lẻ

Thông thường, URL được thay bằng placeholder như:

<URL>

Cách này giúp giữ lại thông tin “có link” mà không duy trì toàn bộ chuỗi dài.

Loại bỏ dấu câu

Dấu câu có thể không quan trọng trong các tác vụ classification cơ bản như sentiment hoặc spam detection.

Ví dụ:

  • “Hay quá!!!”
  • “Hay quá.”

Hai câu này khác nhau ở mức độ,… nhưng với mô hình classification đơn giản, dấu “!!!” có thể được coi là nhiễu.

Tuy nhiên, khi làm các tác vụ liên quan đến ngữ pháp, hoặc các mô hình seq-to-seq (liên hệ Module 6 & 7 – mô hình tiền DL và DL cơ bản), dấu câu có thể chứa thông tin cần thiết.
Do đó, quyết định giữ hay bỏ cần dựa trên mục tiêu.

Ví dụ minh họa trước – sau tiền xử lý

Giả sử câu thô:
RT Wow!!! Sản phẩm này tốt quá 😍😍 Link: https://example.com

Sau tiền xử lý có thể thành:
wow sản phẩm này tốt quá

<URL>

Bạn có thể thấy:

  • “RT” biến mất
  • URL được thay bằng
    <URL>
  • Dấu câu và một số ký tự thừa được gọn lại
  • Nghĩa chính vẫn giữ nguyên

Đây là trạng thái dễ để mô hình NLP xử lý hơn.

Góc nhìn khi làm dự án NLP thật

Trong các dự án thực tế, việc tiền xử lý không có công thức cố định.
Mỗi bài toán cần đặt câu hỏi:

  • Mục tiêu phân loại là gì?
  • Bỏ thông tin này có làm mất ngữ nghĩa quan trọng không?
  • Mô hình dùng là truyền thống (Bag-of-Words, TF-IDF) hay deep learning (Transformer – liên hệ Module 10 và Module 12)?
  • Có dữ liệu lớn hay nhỏ?

Ví dụ:

  • Với mô hình Transformer lớn, nhiều khi bạn không cần loại bỏ quá nhiều, vì tokenizer đã làm tốt.
  • Với mô hình truyền thống, bạn cần làm rõ ràng hơn để từ vựng không bị bùng nổ.

Tiền xử lý vì thế trở thành một phần của tư duy pipeline — điều quen thuộc trong MLOps Series (modules 4–7 của AIO).

Khi nào nên linh hoạt hơn?

Bạn có thể cân nhắc giữ lại dấu câu hoặc emoji khi:

  • làm sentiment analysis
  • phân tích cảm xúc trên mạng xã hội
  • phân loại toxic comment
  • nghiên cứu hành vi người dùng

Emoji hoặc “!!!” đôi khi chính là tín hiệu cảm xúc mạnh.

Gợi ý học thuật chung cho người mới bắt đầu

Nếu bạn đang bắt đầu tìm hiểu về NLP:

  • Bạn có thể thử tiền xử lý ở nhiều mức độ khác nhau.
  • Bạn có thể quan sát sự thay đổi khi huấn luyện mô hình đơn giản trước (như Logistic Regression hoặc Naive Bayes — nhóm kiến thức ở Module ML cơ bản).
  • Bạn có thể kiểm tra xem việc giữ/bỏ dấu câu có làm độ chính xác tăng hay giảm.

Những thử nghiệm nhỏ này giúp bạn hiểu rõ hơn bản chất của dữ liệu và tác động của xử lý văn bản.

Tài nguyên học AI: