Bảng ký tự và quy trình chuyển đổi chữ Việt hiện đại sang chữ Khoa Đẩu cổ, sử dụng bộ mã Unicode riêng (U+E000 – U+E026).
Các nguyên âm cơ bản. Lưu ý: y dùng chung mã với i (E005), ơ dùng chung mã với â (E002).
| STT | Ký tự Việt | Ký hiệu Khoa Đẩu | Mã Unicode |
|---|---|---|---|
| 1 | a | | U+E000 |
| 2 | ă | | U+E001 |
| 3 | â | | U+E002 |
| 4 | e | | U+E003 |
| 5 | ê | | U+E004 |
| 6 | i (= y) | | U+E005 |
| 7 | o | | U+E006 |
| 8 | ô | | U+E007 |
| 9 | ơ (= â) | | U+E002 |
| 10 | u | | U+E008 |
| 11 | ư | | U+E009 |
Các tổ hợp nguyên âm. uô, uơ, uâ dùng chung mã E00C.
| STT | Ký tự Việt | Ký hiệu Khoa Đẩu | Mã Unicode |
|---|---|---|---|
| 1 | iê (= yê) | | U+E00A |
| 2 | ươ | | U+E00B |
| 3 | uô (= uơ, uâ) | | U+E00C |
Một số phụ âm dùng chung ký hiệu: b = p, c = k = q, d = r, s = x.
| STT | Ký tự Việt | Ký hiệu Khoa Đẩu | Mã Unicode |
|---|---|---|---|
| 1 | b (= p) | | U+E011 |
| 2 | c (= k, q) | | U+E012 |
| 3 | d (= r, gi) | | U+E013 |
| 4 | đ | | U+E014 |
| 5 | g (= gh) | | U+E015 |
| 6 | h | | U+E016 |
| 7 | l | | U+E017 |
| 8 | m | | U+E018 |
| 9 | n | | U+E019 |
| 10 | s (= x) | | U+E01C |
| 11 | t | | U+E01A |
| 12 | v | | U+E01B |
Các tổ hợp phụ âm. ch và tr dùng chung mã E01D, ng và ngh dùng chung mã E01F.
| STT | Ký tự Việt | Ký hiệu Khoa Đẩu | Mã Unicode |
|---|---|---|---|
| 1 | ph | | U+E021 |
| 2 | th | | U+E022 |
| 3 | ch (= tr) | | U+E01D |
| 4 | nh | | U+E020 |
| 5 | ng (= ngh) | | U+E01F |
| 6 | kh | | U+E01E |
| 7 | gi | | U+E013 |
Khi ở cuối âm tiết, một số ký tự dùng mã khác với khi ở đầu. Ví dụ: n đầu = E019, n cuối = E025.
| STT | Âm cuối Việt | Ký hiệu Khoa Đẩu | Mã Unicode |
|---|---|---|---|
| 1 | -ng (/ -nh) | | U+E015 |
| 2 | -o (/ -u) | | U+E00F |
| 3 | -i (/ -y) | | U+E00E |
| 4 | -m | | U+E024 |
| 5 | -n | | U+E025 |
| 6 | -t | | U+E026 |
Mỗi câu tiếng Việt được chuyển đổi qua 5 bước tuần tự. Dưới đây minh họa quy trình với ví dụ cụ thể.
Chuyển thành chữ thường, chuẩn hóa Unicode (NFC), loại bỏ dấu thanh (sắc, huyền, hỏi, ngã, nặng).
Thay thế phụ âm/nguyên âm cuối bằng ký tự khóa riêng theo FINAL_LOCK_MAP.
Từ bắt đầu bằng nguyên âm sẽ được thêm ký tự E006 (âm đầu ảo) ở trước.
Một số nguyên âm (ươ, ô, ê, ơ, e, â) được chuyển lên trước phụ âm đầu theo quy tắc VOWELS_TO_MOVE.
Tra cứu từng ký tự theo thứ tự ưu tiên: RULES_3 (3 ký tự) → RULES_2 (2 ký tự) → RULES_1 (1 ký tự). Kết quả là chuỗi ký tự PUA hiển thị bằng font Khoa Đẩu.
| Bước | Đầu vào | Đầu ra | Mô tả |
|---|---|---|---|
| 0 | tiếng | tiếng | Quốc Ngữ gốc |
| 1 | tiếng | tiêng | Lowercase + bỏ dấu sắc (NFD strip) |
| 2 | tiêng | tiê + E015 | "ng" cuối → khóa E015 |
| 3 | tiê + E015 | tiê + E015 | t là phụ âm, không thêm âm đầu ảo |
| 4 | tiê + E015 | tiê + E015 | iê là cụm bảo vệ, không đảo |
| 5 | tiê + E015 | E01A E00A E015 | t→E01A, iê→E00A |
Trang chủ dùng Dictionary CPU (nhanh nhất, độ chính xác 100%). Trang AI dùng CNN-Shallow-Big — mô hình neural compact 16 KB. Bảng dưới so sánh hiệu năng đo trên benchmark 213,118 từ (Final Report §5.1).
| Phương pháp | Độ chính xác | Độ trễ (213k từ) | Kích thước | Khi nào dùng |
|---|---|---|---|---|
| Rule-Based Serial | 100% | ~1,295 ms | 5 KB | Logic tham chiếu (ẩn khỏi API) |
| Dictionary CPU | 100% | ~413 ms | 315 KB | Mặc định trang chủ (/api/translate) |
| CNN-Shallow-Big | 100% | ~885 ms | 16 KB | Trang AI (/api/translate-ai) |
| CNN-Big | 99.93% | ~1,253 ms | 17 KB | Không deploy |