~153kvăn bản
1,43trđiều (nodes)
908kquan hệ (edges)
62kđiều đã gắn thẻ AI
1 · Data TW sai những gì (lỗi thật)
🔴 Phantom điều — parser bắt nhầm câu DẪN CHIẾU thành điều mới. ~22.000 văn bản dính.
Regex cũ cắt "Điều N" ở mọi chỗ → "Căn cứ Điều 120 Hiến pháp", "theo Điều 260 của Luật" bị tính thành điều. Dấu hiệu: số điều nhảy vọt (max ≫ số điều thật).
→ Bài học: KHÔNG regex mù. Tiêu đề điều thật nằm ở ĐẦU BLOCK (in đậm); dẫn chiếu nằm GIỮA CÂU → phân biệt được bằng cấu trúc HTML.
✗ Parser cũ (regex mù)
Luật Đất đai 2024:
155 điều · max điều = 260 (rác — bắt nhầm dẫn chiếu)
✓ Parser mới (theo block)
Luật Đất đai 2024:
260 điều · liền mạch 1..260 · gap = 0 ✅
🔴 Trùng nguồn — cùng 1 văn bản từ nhiều nguồn, parse khác nhau. 3.819 số hiệu trùng (~7.700 bản).
Vd Nghị định 102/2024: bản Công báo (113 điều, sạch, có thẻ) vs bản vbpl (155 điều, rác). Đã ẩn 629 bản rác rõ ràng (giữ bản sạch, không xoá).
→ Bài học: chọn nguồn sạch nhất theo tín hiệu chất lượng (Công báo PDF > vbpl). Không gộp khác LOẠI (Luật vs Nghị quyết cùng số hiệu là 2 văn bản khác).
🟡 Nguồn phân mảnh + metadata lệch.
Mirror HTML nhiều cái rỗng stub; content thật ở gateway hoặc Công báo PDF. Công báo thiếu ngày → trạng thái hiệu lực "chưa xác định". provisionTree của nguồn thì null (không tin được).
→ Bài học: mỗi văn bản phải chọn nguồn-sự-thật riêng + bù metadata chéo giữa các nguồn.
🟡 Tag/tóm tắt còn sót. ~8% điều dài bị cắt cụt JSON (token limit) khi gọi AI.
→ Bài học: ingest phải có SAVEPOINT mỗi dòng (1 lỗi không làm hỏng cả mẻ) + tăng token cho điều dài + chạy lại nhóm sót.
2 · Workflow chuẩn (tiệm cận 100%)
Nguyên tắc: deterministic gánh phần lớn (free), AI chỉ đụng chỗ LẠ (rẻ), 2 nguồn xác nhận chéo, người duyệt phần dư.
0
Chọn nguồn sạch nhất / văn bản freeCông báo PDF (text số) > gateway HTML có cấu trúc > mirror. Ưu tiên bản parse liền mạch + có thẻ.
1
Extract theo BLOCK freeĐiều = block bắt đầu bằng "Điều N"; BỎ "Điều N" giữa câu (dẫn chiếu). Đã verify: cho ra 260/260 điều liền mạch.
2
Phát hiện bất thường freeSố nhảy vọt/thiếu/lặp · max≫count · text rỗng · title giống dẫn chiếu. → chỉ văn bản LẠ mới cần bước 3.
3
AI sửa CHỖ LẠ AI (ít)Gửi đúng đoạn nghi ngờ: "đây là tiêu đề điều hay dẫn chiếu? ranh giới điều ở đâu?" — AI chỉ chạm ~10% văn bản, không phải tất cả.
4
Xác nhận chéo freeParse lại pass kiểm tra chưa? + đối chiếu nguồn 2 (Công báo vs gateway): trùng → tin cao; lệch → cờ review.
5
Gắn độ tin + cộng đồng freeparse_confidence + nguồn. Search ưu tiên bản tin cao; phần dư vào hàng đợi cộng đồng duyệt (de_xuat→xanh).
💡 Vì sao tiệm cận 100%: OCR/extract đã chín sau nhiều năm; thêm AI chỉ ở khâu soát bất thường + xác nhận chéo thì gần như không còn lỗi lọt — mà chi phí thấp vì AI không phải đọc lại toàn bộ. Đây cũng là moat: đối thủ gặp đúng đống rác này; ai có workflow dọn đúng thì thắng. Mọi điều vẫn trỏ nguồn gốc verify được.