“Hoà” và “hòa”, “thuỷ” và “thủy”, “kỹ” và “kĩ”, “lý” và “lí” đều là những cách viết đang được dùng song song trong tiếng Việt. Người đọc hiểu chúng là một; nhưng với máy tính, mỗi cặp là hai chuỗi ký tự khác nhau, không phải hai mã của cùng một chữ như chuyện Unicode dựng sẵn và tổ hợp. Phép chuẩn hoá Unicode không gộp chúng lại. Kết quả là tìm “hòa bình” có thể sót những trang viết “hoà bình”, một bộ dữ liệu có hai phiên bản của cùng một từ, và chatbot đôi khi viết lẫn hai kiểu trong một văn bản.
Không có kiểu nào “sai”; cả hai đều có cơ sở và có người dùng. Việc cần làm là chọn một kiểu cho từng hệ thống, áp dụng nhất quán, và cho máy biết hai kiểu là tương đương ở những chỗ cần tìm kiếm hay so khớp. Bài này giải thích hai cặp khác biệt chính, vì sao chúng làm khó máy, và cách xử lý cho văn bản, dữ liệu, sản phẩm AI.
Hai kiểu đặt dấu thanh: chuyện của oa, oe, uy
Khác biệt về vị trí dấu thanh chỉ xảy ra ở một nhóm vần nhỏ: các vần oa, oe, uy khi đứng cuối âm tiết, không có phụ âm cuối. Kiểu thường gọi là “kiểu cũ” đặt dấu lên chữ thứ nhất: “hòa”, “khỏe”, “thủy”. Kiểu thường gọi là “kiểu mới” đặt dấu lên chữ thứ hai: “hoà”, “khoẻ”, “thuỷ”.
Kiểu mới dựa trên phân tích ngữ âm: trong “hoa”, âm “o” chỉ là âm đệm (làm tròn môi), âm chính là “a”, mà dấu thanh theo nguyên tắc nên đặt trên âm chính. Kiểu cũ xuất phát từ thói quen in ấn lâu đời, đặt dấu ở giữa cụm cho cân về hình thức. Cả hai đều có trong sách báo, văn bản hành chính, sách giáo khoa qua các thời kỳ. Mỗi toà soạn, nhà xuất bản, cơ quan thường tự chọn một kiểu cho văn bản của mình; khi cần theo chuẩn của một nơi cụ thể, nên tra quy định chính tả hiện hành của nơi đó.
Ở những vần có phụ âm cuối, hai kiểu trùng nhau: “hoàng”, “toán”, “khoét”, “thuyết” chỉ có một cách viết, dấu đặt trên nguyên âm chính. Với “qu” và “gi”, chữ u và i thuộc phụ âm đầu nên dấu luôn đặt trên nguyên âm sau: “quý”, “quà”, “giá” không có kiểu thứ hai. Vì vậy khác biệt tuy nhỏ về số vần nhưng rơi vào nhiều từ thông dụng: hoà, hoá, khoẻ, thuỷ, luỹ, tuỳ, uỷ ban, hoả, loà, xoà.
Bộ gõ quyết định phần lớn chuyện này chứ không phải người viết. Unikey và nhiều bộ gõ khác có tuỳ chọn “đặt dấu kiểu mới” hay tương tự; người dùng ít khi đổi mặc định, nên một văn phòng có thể có hai kiểu tuỳ máy. Bộ gõ trên điện thoại cũng có mặc định riêng. Đó là lý do một văn bản do nhiều người soạn thường lẫn cả hai kiểu mà không ai cố ý.
Chữ i và chữ y: kỹ hay kĩ, lý hay lí
Khác biệt thứ hai là chọn i hay y ở cuối một số âm tiết có phụ âm đầu: “kỹ/kĩ”, “lý/lí”, “mỹ/mĩ”, “sỹ/sĩ”, “quy/qui” trong một số từ. Ở nhiều âm tiết khác chỉ có một cách được chấp nhận rộng rãi: “tay”, “may” dùng y vì đó là vần “ay”, “tai”, “mai” dùng i vì là vần “ai”. Tranh luận chỉ nằm ở nhóm âm tiết mà i và y đọc như nhau.
Theo hiểu biết phổ biến, sách giáo khoa và một số văn bản giáo dục có xu hướng dùng i trong nhiều trường hợp như “kĩ thuật”, “lí do”, còn nhiều báo chí và văn bản hành chính vẫn giữ y. Tình trạng hai cách cùng tồn tại đã kéo dài nhiều thập kỷ, nên một kho văn bản tiếng Việt bất kỳ gần như chắc chắn chứa cả hai.
Tên riêng là ngoại lệ quan trọng nhất. Tên người, tên tổ chức, tên địa danh được viết theo cách đã đăng ký: một người tên “Thúy” trên giấy tờ khác với “Thuý”, “Mỹ” khác “Mĩ”, “Vỹ” khác “Vĩ”. Với dữ liệu tên người, không được tự ý chuẩn hoá i/y hay vị trí dấu, vì sẽ làm tên lệch khỏi giấy tờ gốc.
Ngoài hai nhóm chính, còn vài cặp nhỏ hơn hay gặp trong dữ liệu: “giặt giũ/giặt giủ” do nhầm hỏi ngã, “sương/xương” do nhầm phụ âm đầu theo vùng. Những cặp này là lỗi chính tả thật, không phải hai chuẩn song song, và cần xử lý bằng công cụ soát chính tả, tách biệt với bài toán chuẩn hoá kiểu viết.
Vì sao máy coi hai kiểu là hai chữ khác nhau
So sánh chuỗi thuần tuý. Hầu hết phần mềm so hai chữ bằng cách so từng mã ký tự. “hoà” là h-o-à, “hòa” là h-ò-a: khác mã ở hai vị trí. Máy không có khái niệm “cùng một chữ viết theo hai kiểu” trừ khi người làm phần mềm dạy nó.
Chuẩn hoá Unicode không giúp được. NFC và NFD chỉ gộp các cách mã hoá khác nhau của cùng một chuỗi ký tự hiển thị. “hoà” và “hòa” hiển thị khác nhau (dấu ở hai chỗ), nên Unicode coi là hai chuỗi khác nhau thật. Nhiều người làm dữ liệu tưởng chuẩn hoá NFC là đủ, rồi bất ngờ khi vẫn đếm ra hai phiên bản.
Bộ tách token học hai mảnh. Với mô hình ngôn ngữ, “hoà” và “hòa” có thể thành hai token khác nhau hoặc bị cắt khác nhau. Mô hình đủ lớn học được rằng chúng cùng nghĩa vì thấy chúng trong ngữ cảnh giống nhau, nhưng tần suất mỗi dạng bị chia đôi, và với mô hình nhỏ thì sự chia đôi này làm yếu đi hiểu biết về từ đó.
Đánh giá tự động đếm sai. Nhiều phép đo chất lượng dịch máy, nhận dạng giọng nói, nhận dạng chữ so đầu ra với bản chuẩn từng chữ. Nếu bản chuẩn viết “thuỷ” còn máy viết “thủy”, phép đo tính là lỗi, dù người đọc thấy đúng. Một hệ thống có thể bị chấm thấp hơn thực tế chỉ vì khác kiểu chính tả với người soạn bản chuẩn.
Ảnh hưởng thực tế trong từng loại việc
Mức độ nghiêm trọng của chuyện hai kiểu viết khác nhau tuỳ việc. Bảng dưới gợi ý cách nhìn cho người làm sản phẩm và dữ liệu.
| Loại việc | Lỗi thường gặp | Cách xử lý gợi ý |
|---|---|---|
| Tìm kiếm trên trang web, kho tài liệu | Gõ “hòa giải” không ra bài viết “hoà giải” | Chỉ mục gấp về một dạng chuẩn khi tìm, hiển thị nguyên bản |
| Gộp, khử trùng dữ liệu khách hàng | Một công ty “Hoà Phát” và “Hòa Phát” tách hai bản ghi | So khớp trên bản gấp, nhưng giữ tên gốc; người duyệt trước khi gộp |
| Văn bản do AI soạn | Một đoạn văn có cả “thủy lợi” lẫn “thuỷ sản” | Dặn kiểu viết trong câu lệnh; chạy bước soát nhất quán sau cùng |
| Đánh giá dịch máy, nhận dạng giọng nói, OCR | Điểm lỗi tăng vì khác kiểu với bản chuẩn | Chuẩn hoá cả đầu ra và bản chuẩn về một kiểu trước khi so |
| Hồ sơ có tên người, địa danh | Công cụ tự đổi “Thúy” thành “Thuý” | Không chuẩn hoá tên riêng; khoá cột tên khỏi các bước tự sửa |
Chỗ dễ quên nhất là phép đánh giá. Khi đọc một báo cáo nói mô hình A có tỷ lệ lỗi thấp hơn mô hình B trên tiếng Việt, nên hỏi: hai bên có được chuẩn hoá kiểu chính tả trước khi so không. Chênh lệch nhỏ đôi khi chỉ là khác bộ gõ của người làm bản chuẩn.
Chính tả đôi đi vào AI từ những ngả nào
Nguồn đầu tiên là dữ liệu huấn luyện. Văn bản thu thập từ mạng là tập hợp của hàng triệu người viết với hàng trăm bộ gõ và thói quen khác nhau. Không ai chuẩn hoá kiểu chính tả cho cả kho, và cũng không nên chuẩn hoá cưỡng ép vì như vậy làm mất sự đa dạng thật của tiếng Việt viết. Hệ quả là mô hình học cả hai kiểu, với tỷ lệ phụ thuộc vào nguồn văn bản nào chiếm nhiều hơn.
Nguồn thứ hai là các hệ thống chuyển đổi. Phần mềm nhận dạng chữ đọc một trang sách in kiểu cũ sẽ ra “hòa”, đọc một trang báo in kiểu mới sẽ ra “hoà”. Hệ thống nhận dạng giọng nói không có “chính tả” trong âm thanh, nên kiểu viết đầu ra hoàn toàn do dữ liệu nó được dạy quyết định. Hai công cụ khác nhau xử lý cùng một nội dung có thể cho ra hai kiểu viết, và khi ghép kết quả vào một kho chung, sự lẫn lộn tăng thêm.
Nguồn thứ ba là chính người dùng. Một nhân viên dán đoạn văn kiểu cũ vào chatbot, yêu cầu viết tiếp; mô hình thường bắt chước kiểu của đoạn được dán, nhưng không phải lúc nào cũng nhất quán. Khi nhiều người cùng soạn một tài liệu với sự trợ giúp của AI, mỗi đoạn có thể mang dấu vết bộ gõ của người soạn đoạn đó.
Hiểu ba ngả này giúp đặt bước kiểm đúng chỗ: chuẩn hoá ở khâu xuất bản cho văn bản của mình, gấp kiểu ở khâu tìm kiếm cho văn bản của người khác, và chuẩn hoá trước khi đo ở khâu đánh giá mô hình.
Chuẩn hoá có chủ đích: các bước cho một hệ thống
Với một trang web, một kho tài liệu hay một bộ dữ liệu dùng cho AI, có thể làm theo trình tự sau. Mục tiêu là nhất quán và có thể truy lại, không phải bắt mọi người viết giống nhau.
- Chọn kiểu chuẩn cho hệ thống của mình: ví dụ đặt dấu kiểu mới và giữ y ở các từ Hán Việt quen thuộc, hoặc ngược lại. Ghi lựa chọn đó vào tài liệu hướng dẫn biên tập.
- Lập bảng quy đổi cho nhóm vần oa, oe, uy và danh sách cặp i/y cần quy đổi. Bảng nên do người hiểu chính tả duyệt, vì quy đổi máy móc có thể chạm vào những chữ không nên đổi.
- Xác định vùng không được chạm: tên người, tên tổ chức, địa danh, trích dẫn nguyên văn, mã định danh. Các vùng này giữ nguyên bản gốc.
- Áp dụng quy đổi cho văn bản thuộc quyền biên tập của mình, lưu cả bản trước và sau. Với văn bản của người khác (bình luận, tài liệu đối tác), chỉ quy đổi trong bản dùng để tìm kiếm và phân tích, không sửa bản hiển thị.
- Cấu hình tìm kiếm để gấp cả hai kiểu về một khi so khớp, nhờ vậy người gõ kiểu nào cũng tìm được.
- Kiểm định kỳ: đếm số lần mỗi dạng xuất hiện trong kho. Nếu dạng không chuẩn tăng lên, có thể một nguồn nhập liệu mới đang dùng bộ gõ khác mặc định.
Với văn bản do chatbot soạn, thêm một dòng vào câu lệnh là đủ trong phần lớn trường hợp, ví dụ: “Viết theo chính tả đặt dấu kiểu mới (hoà, khoẻ, thuỷ) và dùng y trong kỹ, lý, mỹ; giữ nguyên chính tả của tên riêng trong tài liệu gốc.” Sau đó vẫn nên tìm nhanh các dạng còn lại để sửa, vì mô hình đôi khi quay về kiểu nó gặp nhiều hơn trong dữ liệu.
Câu hỏi thường gặp
Kiểu đặt dấu nào là đúng chuẩn hiện nay?
Cả hai kiểu đều đang được dùng rộng rãi và không có kiểu nào bị coi là sai trong giao tiếp thông thường. Mỗi cơ quan, toà soạn, nhà xuất bản thường chọn một kiểu cho văn bản của mình. Khi viết cho một nơi cụ thể, hãy theo hướng dẫn chính tả hiện hành của nơi đó và giữ nhất quán trong toàn văn bản.
Chuẩn hoá Unicode NFC có biến hòa thành hoà không?
Không. NFC chỉ gộp các cách mã hoá khác nhau của cùng một chuỗi hiển thị, như chữ dựng sẵn và chữ tổ hợp. “hòa” và “hoà” hiển thị dấu ở hai vị trí khác nhau nên là hai chuỗi khác nhau thật. Muốn gộp chúng phải dùng bảng quy đổi chính tả riêng, có người duyệt.
Có nên tự động đổi mọi chữ y thành i trong dữ liệu không?
Không nên. Nhiều âm tiết bắt buộc dùng y như “tay”, “máy”, “quy”, và tên riêng phải giữ nguyên như giấy tờ. Quy đổi máy móc sẽ tạo ra lỗi mới. Chỉ quy đổi theo danh sách cặp đã duyệt, và chỉ trong bản dùng để tìm kiếm hay phân tích nếu không có quyền biên tập văn bản gốc.
Vì sao chatbot viết lẫn hai kiểu trong cùng một bài?
Vì mô hình học từ kho văn bản lẫn cả hai kiểu, và với mỗi từ nó có xu hướng chọn dạng nó gặp nhiều hơn trong ngữ cảnh tương tự. Kết quả là “thủy lợi” và “thuỷ sản” có thể cùng xuất hiện. Dặn kiểu viết trong câu lệnh và soát lại sau cùng là cách khắc phục đơn giản.
Chuyện hai kiểu viết có ảnh hưởng tới nhận dạng giọng nói không?
Có ở phần chữ đầu ra. Hệ thống nhận dạng giọng nói phải chọn một kiểu khi viết ra chữ, và phép đo tỷ lệ lỗi sẽ tính sai nếu bản chuẩn dùng kiểu khác. Người dùng đọc thấy đúng, nhưng con số lỗi trên báo cáo cao hơn thực tế, nên cần chuẩn hoá trước khi đo.
Tên trên hồ sơ viết khác kiểu với giấy tờ thì sao?
Với giấy tờ, tên phải khớp chính xác với bản đã đăng ký, kể cả vị trí dấu và chữ i hay y. Hệ thống quản lý hồ sơ không nên tự sửa tên. Nếu phát hiện lệch, cần đối chiếu với giấy tờ gốc và để người có thẩm quyền xử lý, không dựa vào công cụ tự động.