Từ chữ đến vector: Điều gì xảy ra ở giữa?
Khám phá hành trình biến đổi văn bản thô thành vector số — từ TF-IDF, không gian vector đến bài toán phân loại văn bản. Đây là nền tảng cốt lõi của xử lý ngôn ngữ tự nhiên truyền thống, vẫn còn giá trị lớn trong nhiều ứng dụng thực tế ngày nay.
Từ chữ đến vector: Điều gì xảy ra ở giữa?
Khi máy tính cần "hiểu" văn bản, bước đầu tiên luôn là chuyển chữ thành số. Bài viết này dẫn bạn đi qua hành trình đó: từ TF-IDF, không gian vector, cho đến bài toán phân loại văn bản — nền tảng của xử lý ngôn ngữ tự nhiên (NLP) trước kỷ nguyên deep learning.
Nghe có vẻ cũ kỹ, nhưng hiểu rõ những bước này vẫn cực kỳ hữu ích. Nhiều hệ thống thực tế như lọc spam, phân loại email, gợi ý nội dung hay tìm kiếm vẫn đang chạy trên nền tảng vector hóa văn bản kiểu này.
Vì sao phải biến chữ thành vector?
Máy tính không đọc được "con mèo" hay "lập trình". Chúng chỉ tính toán trên số. Vậy nên bước đầu tiên là biểu diễn văn bản dưới dạng vector — một dãy số mà thuật toán có thể xử lý.
Cách đơn giản nhất là Bag of Words (túi từ): đếm xem mỗi từ xuất hiện bao nhiêu lần trong văn bản. Mỗi văn bản trở thành một vector có độ dài bằng kích thước toàn bộ từ vựng.
Nhược điểm rõ ràng: từ phổ biến như "và", "là", "của" xuất hiện nhiều nhưng chẳng mang ý nghĩa gì. Đó là lý do TF-IDF ra đời.
TF-IDF: Đo tầm quan trọng của từ
TF-IDF (Term Frequency – Inverse Document Frequency) là cách gán trọng số cho mỗi từ dựa trên hai yếu tố:
- TF (Term Frequency): từ này xuất hiện bao nhiêu lần trong văn bản đang xét?
- IDF (Inverse Document Frequency): từ này hiếm đến mức nào trên toàn bộ tập văn bản?
Công thức cốt lõi:
TF-IDF(t, d) = TF(t, d) × IDF(t)
Trong đó IDF được tính bằng log của tổng số văn bản chia cho số văn bản chứa từ đó. Hệ quả: từ xuất hiện ở mọi văn bản bị giảm trọng số gần về 0, còn từ hiếm nhưng xuất hiện nhiều trong một văn bản cụ thể sẽ được đẩy trọng số cao.
Kết quả là mỗi văn bản trở thành một vector thưa (sparse vector) — phần lớn giá trị bằng 0 vì mỗi văn bản chỉ chứa một phần nhỏ từ vựng.
Không gian vector: Khi văn bản trở thành điểm trong không gian
Mỗi văn bản giờ đây là một điểm trong không gian nhiều chiều, với mỗi chiều tương ứng một từ trong từ vựng. Độ tương đồng giữa hai văn bản được đo bằng cosine similarity — góc giữa hai vector.
- Hai văn bản cùng chủ đề → vector gần nhau → cosine gần 1
- Hai văn bản khác chủ đề → góc lớn → cosine gần 0
Đây chính là cơ chế đằng sau tìm kiếm văn bản cổ điển: truy vấn người dùng cũng được vector hóa, rồi hệ thống tìm các văn bản có cosine cao nhất.
Xếp hạng cần lưu ý
Không gian vector có số chiều bằng kích thước từ vựng, có thể lên tới hàng chục nghìn hoặc hàng triệu chiều. Điều này dẫn đến lời nguyền số chiều (curse of dimensionality): khoảng cách giữa các điểm trở nên kém ý nghĩa khi số chiều quá lớn.
Vì vậy trong thực tế, người ta thường kết hợp thêm các bước giảm chiều như SVD (Latent Semantic Analysis) hoặc chọn lọc đặc trưng trước khi đưa vào mô hình.
Phân loại văn bản: Từ vector đến quyết định
Khi đã có vector, bài toán phân loại trở nên quen thuộc với bất kỳ ai làm machine learning:
- Vector hóa toàn bộ tập huấn luyện bằng TF-IDF
- Huấn luyện một mô hình phân loại — thường là Logistic Regression, Naive Bayes hoặc SVM
- Dự đoán nhãn cho văn bản mới sau khi vector hóa theo đúng từ vựng đã học
Các ứng dụng điển hình:
- Lọc spam trong email
- Phân loại chủ đề tin tức, bài viết
- Phân tích cảm xúc đơn giản
- Phát hiện ngôn ngữ hoặc nội dung độc hại
TF-IDF còn dùng được không khi đã có embedding?
Câu trả lời ngắn: có, và vẫn rất hiệu quả trong nhiều trường hợp.
Các mô hình embedding hiện đại như Word2Vec, BERT hay sentence-transformers cho vector dày (dense) và nắm bắt ngữ nghĩa tốt hơn nhiều. Nhưng TF-IDF vẫn có chỗ đứng vì:
- Nhanh và nhẹ — huấn luyện trên laptop, không cần GPU
- Dễ giải thích — biết chính xác từ nào đóng góp vào quyết định
- Mạnh với dữ liệu nhỏ hoặc bài toán phân loại đơn giản
- Không cần dữ liệu huấn luyện quy mô lớn để tạo vector
Với nhiều đội ngũ ở Việt Nam đang xây dựng hệ thống phân loại văn bản tiếng Việt quy mô vừa và nhỏ, TF-IDF kết hợp Logistic Regression thường là baseline đủ tốt và tiết kiệm chi phí, trước khi cân nhắc đầu tư vào mô hình ngôn ngữ lớn.
Tóm lại
Hành trình từ chữ đến vector trải qua ba trạm chính: đếm và gán trọng số (TF-IDF), biểu diễn trong không gian nhiều chiều, rồi ra quyết định phân loại. Hiểu rõ chuỗi này không chỉ giúp bạn xây dựng hệ thống NLP hiệu quả mà còn là nền tảng để hiểu vì sao các embedding hiện đại lại mạnh hơn — và khi nào thì chưa cần đến chúng.


