Files
poc_system/doc/9.Appendix-Vietnamese-OCR-Strategy.md

5.2 KiB
Raw Blame History

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 16.
  • 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 (20252026)

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 opensource
  • Chạy onprem
  • Có thể finetune 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 Finetuned PaddleOCR cho tiếng Việt (Advanced)

  • Finetune 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 finetune 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 9799%
Scan nhiều đời 9095%
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 pagewise
  • Lưu confidence theo trang

Phase 2 Tối ưu dần

  • Tune preprocessing (deskew, binarization)
  • Dictionary postprocess tiếng Việt

Phase 3 Khi thực sự cần

  • Finetune 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.