Text Classification
Phân loại văn bản
Một khách nhắn trên fanpage: "Đăng nhập vào app mãi không được, đã thử đổi mật khẩu rồi". Theo bạn, chatbot nên chuyển cho bộ phận nào?
Thời ông bà mình, mọi công ty đều có nhân viên thư phòng. Bác ấy ngồi giữa đống phong bì: đọc qua vài dòng, liếc tem, rồi bỏ vào đúng ngăn — khách hàng, nhà cung cấp, hóa đơn, khiếu nại. Ngày mấy nghìn lá thư. Phân loại văn bản (text classification) là phiên bản máy tính của chính công việc đó — chỉ khác là bác thư phòng xử 2.000 thư/ngày, còn AI xử 2 triệu tin nhắn/giây.
Năm “ngăn” cho chatbot khách hàng
Hỗ trợ kỹ thuật
App / phần mềm / đăng nhập / cài đặt
Khiếu nại
Phàn nàn dịch vụ / thái độ / bồi thường
Hoàn tiền / đổi trả
Đổi trả / hoàn tiền / huỷ đơn
Thanh toán
Hóa đơn / thẻ / trừ tiền / gia hạn
Câu hỏi chung
Hỏi thông tin, giờ mở cửa, còn hàng…
Lọc spam, gán chuyên mục báo VnExpress, phân loại CV ứng viên, đánh giá khẩn cấp hay thường cho tin nhắn y tế, phát hiện toxic trên mạng xã hội — tất cả đều là phân loại văn bản. Chỉ khác “tập nhãn” bạn định nghĩa.
Hình minh họa
Demo 1 · Gõ tin nhắn, xem máy gán nhãn
Mô phỏng chatbot công ty. Gõ tin nhắn tiếng Việt, xem máy phân vào ngăn nào trong 5 ngăn.
Máy gán nhãn
Hỗ trợ kỹ thuật
Demo 2 · Một tin nhắn, nhiều nhãn cùng lúc
Thực tế, một tin nhắn có thể thuộc nhiều ngăn. Máy học với nhãn phẳng (chỉ chọn 1) sẽ mất thông tin — khi chuyển sang đa nhãn phân cấp, đội xử lý biết đầy đủ hơn.
Cùng một tin nhắn, so sánh hai cách tổ chức nhãn.
“App bị lỗi đăng nhập, mất tiền trong thẻ mà chưa được hoàn lại”
“Hãng giao sai đơn, mình muốn đổi trả và cần bồi thường phí ship”
“Shop còn size M không ạ? Nếu có thì ship về quận 7 mất bao lâu?”
Cây nhãn phân cấp (ví dụ công ty SaaS)
Demo 3 · Học chủ động — gán thêm nhãn, xem độ chính xác tăng
Mô phỏng: bạn là người dán nhãn. Hệ thống đã có 2 tin nhắn có nhãn. Nhấn “dán nhãn đúng” để dạy máy — độ chính xác tăng dần.
Đã có nhãn (2)
Chưa có nhãn (4)
Mô hình học càng nhiều nhãn thật càng tốt. Các công ty lớn chi hàng triệu đô để thuê “data labelers” (người dán nhãn). Active learning giúp máy tự chọn những mẫu nó thấy mơ hồ nhất để hỏi con người — tiết kiệm 60–80% công dán nhãn.
Phân loại văn bản không phải tìm từ khóa. “App bị đơ” và “phần mềm không phản hồi” không trùng một chữ nào — nhưng cùng một ý định. AI hiện đại hiểu điều đó bằng cách đọc ý nghĩa, không phải đếm từ.
Vì thế bạn chỉ cần đưa vài nghìn ví dụ có nhãn — máy tự học ra khái niệm “hỗ trợ kỹ thuật” kể cả khi khách viết theo cách chưa từng thấy.
Chatbot ngân hàng nhận tin: "Mình mất thẻ, muốn khóa gấp giúp mình nhé 🙏". Intent đúng là?
Giải thích
Phân loại văn bản là bài toán NLP cơ bản nhất và phổ biến nhất. Về bản chất: đưa một đoạn văn vào, lấy ra một (hoặc nhiều) nhãn đã định nghĩa sẵn. Công thức không quan trọng với dân văn phòng — cái quan trọng là: biết khi nào dùng gì, hiểu các đo lường nào, và tránh những cái bẫy thường gặp.
Rule & Keyword
Từ điển & biểu thức
Kê danh sách từ cấm, regex. Nhanh, dễ giải thích, nhưng giòn (khách viết khác là sai).
Độ chính xác ~ 60–70%
ML cổ điển
Naive Bayes, SVM, Logistic
Học từ vài nghìn ví dụ có nhãn. Đủ tốt cho bộ lọc spam, phân chuyên mục báo, triage ticket đơn giản.
Độ chính xác ~ 80–90%
BERT / LLM
PhoBERT, XLM-R, GPT
Hiểu ý định, đảo ngữ, viết tắt, emoji. Cần ít dữ liệu nhãn hơn nhờ pre-training.
Độ chính xác ~ 90–97%
Nhị phân
Spam / không spam, Toxic / an toàn, Urgent / normal.
Đa lớp
Chọn 1 trong N: thể thao / kinh tế / công nghệ / giải trí.
Đa nhãn
Một bài có thể vừa Thể thao vừa Kinh tế (ví dụ chuyển nhượng cầu thủ triệu đô).
Intent (ý định)
Cho chatbot: đặt hàng / hỏi info / khiếu nại / chào hỏi / khóa thẻ…
Đo lường chất lượng — cách đọc biểu đồ trong báo cáo
Trong những tin nhắn bị gán KỸ THUẬT, bao nhiêu % thật sự là kỹ thuật?
Trong tất cả tin nhắn KỸ THUẬT thật, bao nhiêu % được AI bắt được?
Trung bình điều hòa — chỉ số tổng hợp dùng để so hai mô hình.
Ma trận nhầm lẫn — đâu là chỗ máy hay nhầm?
Đường chéo (xanh) là đúng. Ô đỏ là nhầm. Ví dụ: 8 tin “khiếu nại” thật bị gán nhầm thành “kỹ thuật” — khách bực bội mô tả lỗi app, đội kỹ thuật xử trước rồi chuyển tiếp.
- Nhãn thủ công không thống nhất — 3 nhân viên gán 1 tin nhắn ra 3 nhãn. Phải có guideline rõ ràng.
- Dữ liệu lệch (class imbalance)— 95% tin là “Câu hỏi chung”, 5% là “Khóa thẻ gấp”. Mô hình thiên vị và bỏ sót khẩn cấp.
- Khái niệm trôi (concept drift)— khách thay đổi cách viết (năm 2024 chưa có “Livestream chốt đơn”, 2026 có). Mô hình phải retrain định kỳ.
- Bỏ qua tầm quan trọng của metadata — đôi khi giờ gửi (3h sáng) hay channel (email vs fanpage) cũng ảnh hưởng nhãn.
Dân văn phòng dùng phân loại văn bản ở đâu?
Lọc email / spam
Gmail chặn > 99% spam trước khi vào inbox.
Phân chuyên mục
VnExpress tự gán bài thể thao / kinh tế / công nghệ.
Intent chatbot
Shopee/Tiki chatbot: đặt hàng / hỏi giá / khiếu nại.
Moderation
Phát hiện comment toxic, spam, scam trên fanpage.
Triage khẩn cấp
Ticket nào là cháy (khóa thẻ, sập server), ticket nào chờ được.
Review CV
Phân loại CV theo vị trí, loại ngành, mức kinh nghiệm.
Nối nhanh — tin nhắn thuộc nhãn nào?
Nối từng tin nhắn với nhãn đúng.
Cột A
Cột B
- Phân loại văn bản = gán nhãn cho text — giống nhân viên thư phòng nhưng nhanh hơn triệu lần.
- Bốn dạng chính: nhị phân, đa lớp, đa nhãn, và intent — chatbot hiện đại phân loại đồng thời ý định + mức độ khẩn cấp.
- Ba kỹ thuật: rule (nhanh, giòn) → ML cổ điển (đủ tốt) → BERT/LLM (hiểu ý nghĩa).
- Đọc báo cáo: Precision cao → ít bắt nhầm. Recall cao → ít bỏ sót. F1 cân bằng.
- Ứng dụng: lọc spam, chuyên mục báo, intent chatbot, moderation, triage ticket, review CV.
Kiểm tra hiểu biết
Phân loại văn bản khác phân tích cảm xúc ở điểm nào?