Vì sao Quizzman Fanqie Engine không hardcode hơn 50.000 chữ Hán?

Vì sao Quizzman Fanqie Engine không hardcode hơn 50.000 chữ Hán?

Series 2 · Nền tảng học thuật — Bài 5

Một câu hỏi mà nhiều lập trình viên thường đặt ra khi tìm hiểu Quizzman Fanqie Engine là: "Tại sao không đơn giản lưu sẵn cách đọc của tất cả chữ Hán?" Với dung lượng lưu trữ hiện nay, việc tạo một cơ sở dữ liệu gồm vài chục nghìn chữ Hán cùng âm Hán Việt hoàn toàn không phải vấn đề. Tuy nhiên, Quizzman Fanqie Engine lại lựa chọn con đường khó hơn nhiều: xây dựng hàng trăm quy luật âm vận để máy tính tự suy luận thay vì ghi nhớ. Đây không chỉ là một quyết định về kỹ thuật, mà còn phản ánh triết lý thiết kế của toàn bộ dự án.

Hai cách tiếp cận hoàn toàn khác nhau

Nếu mục tiêu chỉ là trả về cách đọc Hán Việt, có hai hướng xây dựng.

Hướng thứ nhất: Dictionary Engine

字

↓

Database

↓

Quốc

Mỗi chữ Hán đều được lưu sẵn.

Ví dụ:

ChữHán Việt
quốc
học
đức
minh

Khi người dùng nhập một chữ, hệ thống chỉ cần tra cứu và trả về kết quả.

Đây là cách hoạt động của phần lớn các công cụ Hán Việt hiện nay.

Hướng thứ hai: Rule Engine

Quizzman Fanqie Engine đi theo hướng hoàn toàn khác.

字

↓

反切

↓

Middle Chinese

↓

Quy luật âm vận

↓

Hán Việt

Ở đây, engine không cố nhớ từng chữ.

Engine cố hiểu:

Vì sao chữ đó lại đọc như vậy.

Đó là khác biệt quan trọng nhất.

Lưu 50.000 chữ không hề khó

Ngày nay, một bảng dữ liệu gồm:

  • 50.000 chữ;
  • Hán Việt;
  • Pinyin;
  • Unicode;

chỉ chiếm vài MB.

Ngay cả điện thoại cũng có thể lưu hàng triệu bản ghi.

Do đó, lý do Quizzman không hardcode không phải vì giới hạn phần cứng.

Lý do nằm ở bản chất của bài toán.

Dữ liệu không giải thích được quy luật

Giả sử database chứa:

ChữÂm
quốc
vực
hoặc
hoặc

Người dùng biết:

國

↓

quốc

Nhưng không biết:

  • vì sao là "quốc";
  • vì sao vẫn giữ âm cuối -c;
  • vì sao mang thanh sắc;
  • vì sao phụ âm đầu là qu-.

Database chỉ lưu kết quả.

Không lưu lịch sử hình thành kết quả.

Một quy luật có thể thay thế hàng nghìn dòng dữ liệu

Đây là điểm khác biệt lớn nhất.

Ví dụ.

Thay vì lưu:

谷

↓

cốc
國

↓

quốc
木

↓

mộc
錄

↓

lục

Engine chỉ cần biết một quy luật.

Thông nhiếp

+

Nhập thanh

↓

-c

Quy luật này lập tức áp dụng cho hàng nghìn chữ.

Đây chính là sức mạnh của Rule Engine.

Quy luật có khả năng tổng quát hóa

Giả sử xuất hiện một chữ rất hiếm.

Từ điển không có.

Database cũng không có.

Một Dictionary Engine sẽ trả lời:

Không tìm thấy.

Trong khi đó, Quizzman Fanqie Engine vẫn có thể:

  • phân tích phản thiết;
  • phục dựng Middle Chinese;
  • áp dụng quy luật;
  • tạo ra một âm Hán Việt dự đoán.

Đây là điều mà dữ liệu thuần túy không làm được.

Quy luật giúp phát hiện lỗi dữ liệu

Một ưu điểm khác của Rule Engine là khả năng kiểm tra ngược.

Giả sử dữ liệu ghi:

某字

↓

thanh huyền

Trong khi toàn bộ hồ sơ Middle Chinese đều cho thấy:

Thanh mẫu thanh

+

Khứ thanh

↓

Sắc

Lúc này engine có thể phát hiện:

  • dữ liệu sai;
  • lỗi nhập liệu;
  • hoặc đây là một ngoại lệ lịch sử cần nghiên cứu thêm.

Nếu chỉ có database, hệ thống sẽ không thể phát hiện những trường hợp như vậy.

Quy luật dễ bảo trì hơn dữ liệu

Hãy tưởng tượng có một quy luật mới được phát hiện.

Nếu sử dụng database.

Có thể phải sửa:

1.200 chữ

Nếu sử dụng Rule Engine.

Chỉ cần sửa:

1 quy luật

Toàn bộ những chữ chịu ảnh hưởng sẽ được cập nhật tự động.

Đây là ưu điểm rất lớn khi engine ngày càng phát triển.

Nhưng vì sao vẫn cần từ điển?

Nếu quy luật mạnh như vậy.

Có phải không cần dữ liệu nữa?

Câu trả lời là:

Không.

Lịch sử ngôn ngữ luôn tồn tại:

  • ngoại lệ;
  • đa âm;
  • nhiều lớp Hán Việt;
  • văn đọc;
  • khẩu ngữ;
  • biến thể địa phương.

Không có một hệ thống quy luật nào có thể mô tả hoàn hảo toàn bộ những hiện tượng đó.

Do đó Quizzman Fanqie Engine kết hợp hai tầng.

Rule Engine

↓

Pure Projection

Dictionary

↓

Lexical Validation

Hai tầng này bổ sung cho nhau.

Pure Projection không cố đạt 100%

Đây là một triết lý rất quan trọng.

Quizzman không cố điều chỉnh quy luật để mọi kết quả đều giống từ điển.

Nếu làm vậy.

Engine sẽ ngày càng chứa nhiều ngoại lệ.

Cuối cùng sẽ trở thành một database trá hình.

Thay vào đó.

Pure Projection chỉ trả lời:

Nếu áp dụng đúng quy luật lịch sử, kết quả sẽ là gì?

Sau đó.

Lexical Normalization mới quyết định:

Trong thực tế người Việt sử dụng cách đọc nào?

Nhờ sự tách biệt này, quy luật âm vị luôn được giữ trong trạng thái nhất quán.

Từ "ghi nhớ" sang "suy luận"

Có thể hình dung sự khác biệt giữa hai cách tiếp cận như sau.

Dictionary Engine

50.000 chữ

↓

50.000 cách đọc

Mỗi kết quả là một bản ghi độc lập.

Rule Engine

Khoảng vài trăm quy luật

↓

Hàng chục nghìn chữ

Các chữ không được lưu riêng lẻ.

Chúng được tạo ra từ cùng một hệ thống quy luật.

Đây là cách mà con người nghiên cứu âm vận học, và cũng là cách Quizzman Fanqie Engine được xây dựng.

Khó hơn, nhưng đáng giá hơn

Viết một Dictionary Engine nhanh hơn rất nhiều.

Chỉ cần:

  • thu thập dữ liệu;
  • chuẩn hóa;
  • xây API.

Trong khi đó, xây dựng một Rule Engine đòi hỏi:

  • nghiên cứu âm vận học;
  • phân tích phản thiết;
  • mô hình hóa quy luật;
  • kiểm thử;
  • xử lý ngoại lệ;
  • đánh giá hồi quy.

Khối lượng công việc lớn hơn nhiều.

Nhưng đổi lại, engine có khả năng:

  • giải thích;
  • suy luận;
  • kiểm chứng;
  • mở rộng;
  • và phát hiện những trường hợp mà dữ liệu chưa từng ghi nhận.

Triết lý cốt lõi của Quizzman Fanqie Engine

Quizzman Fanqie Engine không được xây dựng để ghi nhớ cách đọc của hơn 50.000 chữ Hán.

Engine được xây dựng để hiểu vì sao những cách đọc đó tồn tại.

Khi một quy luật âm vận được mô hình hóa thành công, nó không còn phục vụ cho một chữ Hán cụ thể, mà có thể áp dụng cho hàng trăm hoặc hàng nghìn chữ khác có cùng đặc điểm ngữ âm.

Đó cũng là lý do Quizzman lựa chọn con đường khó hơn: thay vì xây dựng một kho dữ liệu khổng lồ, dự án đầu tư vào việc xây dựng một Historical Phonology Rule Engine có khả năng suy luận, giải thích và mở rộng. Với Quizzman, dữ liệu rất quan trọng, nhưng quy luật mới là nền móng.

→ Series 2 · Bài 6: Từ hơn 200 quy luật âm vận đến Quizzman Fanqie Engine: Máy tính học ngôn ngữ lịch sử như thế nào?