# 9.Appendix-Vietnamese-OCR-Strategy.md > **Phụ lục chiến lược OCR Tiếng Việt** cho toàn bộ hệ thống SharePoint → Search → RAG. > > ⚠️ **LƯU Ý QUAN TRỌNG** > - File này là **phụ lục độc lập**, **KHÔNG chỉnh sửa** các file 1–6. > - Dùng để: > - Thống nhất nhận thức kỹ thuật về OCR tiếng Việt > - Làm tài liệu tham chiếu khi triển khai / audit / mở rộng > - Tránh tranh luận lại từ đầu khi đổi AI agent hoặc dev --- ## 1. Khẳng định phạm vi ngôn ngữ - **~99% tài liệu là Tiếng Việt (có dấu)** - Chủ yếu: văn bản hành chính, hợp đồng, quy định, scan nhiều đời - Yêu cầu: - Giữ **đúng dấu tiếng Việt** - Chấp nhận được với search ngữ nghĩa & RAG ➡️ OCR tiếng Việt được coi là **constraint nền**, không phải optional. --- ## 2. Vì sao OCR tiếng Việt khó hơn OCR tiếng Anh? - Tiếng Việt có: - Dấu thanh (sắc, huyền, hỏi, ngã, nặng) - Dấu phụ (â, ê, ô, ă, ơ, ư, đ) - Sai dấu = **đổi nghĩa hoàn toàn** - Các engine OCR chung thường: - Nhận đúng chữ cái - **Sai hoặc rơi dấu** trong scan mờ Nghiên cứu về Vietnamese Document Recognition chỉ ra đây là vấn đề cố hữu nhiều năm citeturn12search39. --- ## 3. Đánh giá các engine OCR phổ biến cho tiếng Việt (2025–2026) ### 3.1 Tesseract (vie.traineddata) - ✅ Dễ triển khai, chạy CPU - ❌ Độ chính xác dấu **không ổn định** với scan thực tế - ❌ Không phù hợp cho văn bản pháp lý, hợp đồng Kết luận: **KHÔNG đủ** làm engine chính cho hệ thống này citeturn12search43turn12search44. --- ### 3.2 EasyOCR - ✅ Setup nhanh - ❌ Nhận dạng tiếng Việt chỉ ở mức trung bình - ❌ Không tối ưu cho tài liệu nhiều trang Kết luận: chỉ dùng thử nghiệm, **không dùng production** cho tiếng Việt. --- ### 3.3 PaddleOCR (base model) - ✅ Text detection rất tốt - ✅ Xử lý layout, xoay, nghiêng tốt - ❌ Text recognition tiếng Việt **chưa tối ưu nếu dùng model mặc định** Được đánh giá cao hơn Tesseract nhưng cần **nâng cấp recognition** citeturn12search43turn12search46. --- ### 3.4 PaddleOCR + VietOCR (Khuyến nghị chính) **Cấu hình thực tế được cộng đồng Việt Nam sử dụng nhiều nhất**: ``` Text Detection : PaddleOCR (DB / SAST) Text Recognition : VietOCR (Transformer, tiếng Việt có dấu) ``` Ưu điểm: - ✅ Nhận dạng tiếng Việt có dấu **tốt nhất trong open‑source** - ✅ Chạy on‑prem - ✅ Có thể fine‑tune theo domain Đây là pipeline được dùng trong nhiều dự án OCR tiếng Việt thực tế citeturn12search36turn12search41. --- ### 3.5 Fine‑tuned PaddleOCR cho tiếng Việt (Advanced) - Fine‑tune detection + recognition bằng dataset tiếng Việt - Có thể đạt độ chính xác rất cao cho từng domain (hành chính, y tế…) Nghiên cứu và repo gần đây cho thấy hiệu quả rõ rệt khi fine‑tune PaddleOCR cho VN citeturn12search52turn12search54. ⚠️ Tuy nhiên: - Tốn effort huấn luyện - **KHÔNG cần làm ngay ở phase đầu** --- ## 4. Mức độ chính xác thực tế có thể kỳ vọng | Chất lượng scan | OCR tiếng Việt tốt | |---|---| | Scan rõ, font chuẩn | 97–99% | | Scan nhiều đời | 90–95% | | Scan rất xấu | Không OCR nào cứu hoàn toàn | ➡️ Vì vậy hệ thống **không được phụ thuộc 100% vào OCR**. --- ## 5. OCR Tiếng Việt trong kiến trúc hiện tại (đã được tính trước) Kiến trúc hệ thống **không giả định OCR hoàn hảo**: | Vấn đề OCR | Cách kiến trúc xử lý | |---|---| | Sai 1 từ | Chunk nhỏ, search vẫn trúng | | Sai dấu | Search hybrid + semantic | | OCR fail | File bị đánh cờ, không đưa vào RAG | | OCR kém | Người dùng mở file gốc | ➡️ Đây là **thiết kế có chủ đích**, không phải workaround. --- ## 6. Chiến lược triển khai OCR tiếng Việt theo phase ### Phase 1 – An toàn, triển khai nhanh - PaddleOCR (Detection) + VietOCR (Recognition) - OCR page‑wise - Lưu confidence theo trang ### Phase 2 – Tối ưu dần - Tune preprocessing (deskew, binarization) - Dictionary post‑process tiếng Việt ### Phase 3 – Khi thực sự cần - Fine‑tune PaddleOCR/VietOCR theo domain --- ## 7. Nguyên tắc vận hành bắt buộc - OCR < threshold → **KHÔNG đưa vào RAG Chat** - OCR output luôn link về file gốc - OCR có log & audit --- ## 8. Kết luận phụ lục - ✅ OCR tiếng Việt **đã được tính đến từ đầu** - ✅ Có giải pháp **đủ tốt cho production** - ❌ Không có OCR tiếng Việt "100% đúng cho mọi trường hợp" - ✅ Kiến trúc đã được thiết kế để **chịu sai có kiểm soát** --- *Phụ lục này dùng để tham chiếu lâu dài khi nói về OCR tiếng Việt trong hệ thống.*