Hướng dẫn: Chuẩn hoá văn bản tiếng Việt trước khi đưa vào RAG, tìm kiếm và LLM
Rất nhiều lỗi "tìm không ra" trong hệ thống RAG tiếng Việt không đến từ model mà từ chính văn bản: cùng một chữ nhưng máy coi là hai chuỗi khác nhau. Bài này tổng hợp các bước chuẩn hoá mình luôn làm trước khi đánh chỉ mục. 1. CHUẨN HOÁ UNICODE (QUAN TRỌNG NHẤT) Tiếng Việt có hai cách mã hoá dấu: dựng sẵn (NFC, "ế" là một ký tự) và tổ hợp (NFD, "e" + dấu mũ + dấu sắc). Văn bản copy từ PDF, Word cũ, macOS rất hay ở dạng tổ hợp. Hai chữ trông giống hệt nhau nhưng so sánh chuỗi thì khác, tìm kiếm từ khoá sẽ trượt. Cách làm: đưa mọi văn bản (cả tài liệu lẫn câu hỏi người dùng) về NFC. Trong Python: unicodedata.normalize("NFC", text). 2. THỐNG NHẤT VỊ TRÍ DẤU THANH "hoà" và "hòa", "thuý" và "thúy" đều đúng nhưng là chuỗi khác nhau. Chọn một kiểu (thường là kiểu mới: hòa, thúy) và chuyển toàn bộ về kiểu đó. Có sẵn bảng ánh xạ trong một số thư viện xử lý tiếng Việt, hoặc tự viết bảng cho các vần oa, oe, uy. 3. XỬ LÝ KÝ TỰ RÁC TỪ PDF - Dấu gạch nối cuối dòng làm đứt chữ. - Xuống dòng giữa câu: nối lại các dòng không kết thúc bằng dấu câu. - Header, footer, số trang lặp lại ở mọi trang: phát hiện dòng xuất hiện ở trên 50% số trang rồi bỏ đi. - Ký tự lạ (khoảng trắng không ngắt, ký tự điều khiển): thay bằng khoảng trắng thường. 4. CHỮ VIẾT TẮT VÀ TỪ ĐỒNG NGHĨA Văn bản nội bộ đầy chữ viết tắt: "HĐLĐ", "BHXH", "NV", "P.KD". Người dùng lại hỏi bằng chữ đầy đủ, hoặc ngược lại. Tạo một bảng viết tắt (khoảng 100–200 mục là đủ cho một công ty) và: - Khi đánh chỉ mục: thêm dạng đầy đủ bên cạnh chữ viết tắt. - Khi nhận câu hỏi: mở rộng chữ viết tắt trước khi tìm. 5. CÂU HỎI KHÔNG DẤU Nhiều người gõ không dấu. Có hai hướng: - Lưu thêm một bản không dấu của mỗi đoạn để tìm kiếm từ khoá. - Dùng LLM thêm dấu cho câu hỏi trước khi tìm (chính xác hơn nhưng tốn thêm một lượt gọi). Mình dùng kết hợp: tìm từ khoá trên bản không dấu, tìm ngữ nghĩa trên câu hỏi đã thêm dấu. 6. GIỮ LẠI THÔNG TIN CẤU TRÚC Đừng xoá tiêu đề mục, số điều khoản ("Điều 5, Khoản 2"). Người dùng hay hỏi theo đúng số điều, và đây là thông tin giúp trích dẫn nguồn. KẾT QUẢ THỰC TẾ Trên một bộ 200 câu hỏi về quy chế nội bộ, chỉ riêng bước 1, 2 và 4 đã tăng tỉ lệ tìm đúng đoạn trong top 5 từ 71% lên 86%, chưa đụng gì đến model. Mọi người còn gặp vấn đề tiếng Việt nào khác khi làm RAG thì bổ sung nhé.