Thursday, February 29, 1996

TẠO CHỮ NÔM TRÊN MÁY TÍNH




TẠO CHỮ NÔM TRÊN MÁY TÍNH
Phần lớn các thứ chữ hiện nay được cấu tạo từ một bộ con chữ rất hạn chế, được sắp xếp theo trật tự hàng ngang, thường từ trái sang phải. Chữ Nôm mà cha ông chúng ta dùng trước đây (và ngày nay vẫn còn một số người, trong một số trường hợp, cũng dùng đến nó) thì không như vậy: mỗi chữ được xếp gọn vào trong một hình vuông, dùng những nét hay tổ hợp nét có sẵn sắp xếp theo một cách nào đó, theo cách làm của chữ Hán. Thực ra, các cụ cũng đã phân tích chữ thành nét. Việc phân tích này quá chi tiết (có khoảng 30 dạng nét khác nhau, và người xưa đã đưa về năm dạng cơ bản là chấm, ngang, sổ, phẩy, mác) nên một chữ có thể có đến 30 nét, và việc mô tả vị trí tương quan của các nét hầu như không thể làm được.
Ta hãy xem xét kỹ chữ La tinh. Mỗi con chữ La tinh thực chất là một tổ hợp nét sắp xếp cố định mà thành: như chữ “O” có thể coi là có một nét tròn, chữ “a” có thể coi là có hai nét O (tròn) và @ (móc ngán) đặt dính nhau ở bên phải, v.v. Vậy mỗi con chữ La tinh có thể coi là một tổ hợp nét có sắp xếp (gọi là “cụm nét”) tiêu chuẩn. Còn chữ là một tổ hợp con chữ sắp xếp nhất luật từ trái sang phải, dài ngắn nhiều íttuỳ theo yêu cầu của việc tạo âm đọc hay quy ước khác. Nếu cũng xử lý như vậy với chữ Nôm (và cả chữ Hán) thì phải giải quyết hai vấn đề:
- Quy ước một bộ luật về kết cấu chữ sao cho đủ mô tả các cách sắp xếp có thể có trong ô vuông chứa chữ.
- Chọn ra một bộ “tiết chữ” (cụm nét) dùng làm những đơn vị cơ sở để kết hợp với bộ luật kết cấu trên tạo thành mọi chữ có thể có.
Hai vấn đề này có thể được giải quyết như sau:
1. Luật sắp xếp chữ:
Ngay từ khi mới học chữ Hán, tôi đã được nghe đôi “câu đối chiết tự”:
“Bát đao phân mễ phấn
Thiên lý trọng kim chung”.
Tức là: chữ “bát” (八 ) đặt trên chữ “đao” (刀) thành chữ “phân” (分), đặt bên phải chữ “mễ” (米) thành chữ “phấn” (粉); chữ “thiên” (千) đặt trên chữ “lý” (里 ) thành chữ “trọng” (重), rồi đặt bên phải chữ “kim” (金) thành chữ “chung” (鍾 ). Điều này đã gợi ra hai quy luật rất phổ biến của cách sắp xếp chữ Hán (và cả chữ Nôm):
1.1 Luật chồng nhau: Trong máy tính, tôi dùng dấu “cộng” (+) để thể hiện. Kết cấu của quy luật này là:
[Thành phần trên] + [Thành phần dưới]
Ví dụ:
chữ 俼 (trời) được mô tả là: 天 + 上 ;
chữ 丷 (ngất) được mô tả là: 山 + 乙;
chữ 侢 (nói) được mô tả là: 口 + 內 .
Luật này có thể mô tả cho 3-4 thành phần.
Ví dụ:
chữ 摹 (múa) được mô tả là: 艸 + 曰 + 大 + 手 .
1.2 Luật kề nhau. Trong máy tính, có thể dùng dấu “trừ” (-) để thể hiện. Kết cấu của quy luật này là:
[Thành phần bên trái] - [Thành phần bên phải]
Ví dụ:
chữ 乸 (lẻo) được mô tả là: - 了 ;
chữ 乮 (đeo) được mô tả là: 才 - 刀;
chữ 呵 (khà) được mô tả là: 口 - 可 .
Luật này cũng mở rộng cho 3-4 thành phần.
Ví dụ:
chữ 洳 (nhơ) được mô tả là: -女-口.
Hai luật trên đây chưa đủ mô tả các cách sắp xếp chữ Nôm. Tôi đưa thêm vào hai luật sau đây:
1.3 Luật bao nhau. Trong máy tính, có thể dùng dấu chia (/) để thể hiện.
Hai thành phần được coi là bao nhau khi tiết chữ thứ nhất có một hoặc một sốnét nằm ở hai hoặc ba hay bốn viền ngoài của tiết chữ thứ hai. Kết cấu của luật này là:
[Thành phần bao]/[Thành phần bị bao]
Ví dụ:
chữ 僘 (đau) được mô tả: 疒 / 刀 ;
chữ @ (tỏi) được mô tả: 乙 / 干 ;
chữ (lên) được mô tả: 辶 / 升 ;
chữ 怺 (muôn) được mô tả: 門/ 万;
chữ 囷 (khuôn) được mô tả: 囗 / 禾 .
Luật cân nhau. Trong máy tính có thể dùng dấu “nhân” (*) để thể hiện. Luật cân nhau được dùng khi thành phần thứ nhất có hai khoảng trống ở hai phía, và ở mỗi phía đó được đặt thành phần thứ hai và thành phần thứ ba cân nhau. Kết cấu của luật này là:
[Thành phần gánh] / [Thành phần bên trái, Thành phần bên phải]
Ví dụ:
chữ 夾 (xáp) được mô tả là: 大(人 , 人)
chữ 巫 (vu) được mô tả là: 工 (人 , 人)
1.5 Trong các ví dụ trên đây, các thành phần chủ yếu còn là các tiết chữ, được lựa chọn để việc trình bày được giản đơn. Trong thực tế, một thành phần có thể là một cụm tiết chữ có kết cấu nhất định. Trong trường hợp này, thành phần phức hợp được đặt trong dấu ngoặc đơn, và ngay cả trong dấu ngoặc đơn, thậm chí có thể có thành phần phức hợp nhỏ hơn nữa, lại được đặt trong dấu ngoặc đơn nữa.
Ví dụ;
chữ 捜 (rằm) được mô tả là: 五 + (木-木)
chữ 器 (khí) được mô tả là: (口 - 口) + 工 + (口 - 口).
chữ 窂 (ngòn) được mô tả là: 口 - { -[@ / (白 + 小 )]}
2. Chọn tiết chữ
Chọn những cụm nét nào làm tiết chữ là một vấn đề khá phức tạp. Nếu lấy quá ít (Ví dụ lấy đến nét đơn, tức là có khoảng 30 nét) thì việc mô tả kết cấu của chữ sẽ quá phức tạp mà các quy luật sinh ra ở phần 1 chưa, đủ sức làm được. Vì vậy, phải dựa vào các quy luật kết cấu đã định để chọn tiết chữ sao cho vừa đủ sức mô tả kết cấu, đồng thời công thức mô tả lại không quá phức tạp. Để làm việc này, chúng tôi đã dựa vào những tiêu chí sau đây:
2.1 Tiêu chí chọn tiết chữ;
2.1.1 Các cụm nét thường lặp đi lặp lại nhiều lần trong nhiều chữ có thể được chọn làm tiết chữ. Như vậy, các “bộ” thông dụng của chữ Hán sẽ được chọn làm tiết chữ, vì các bộ này đều là những cụm nét hay chữ giản đơn gặp đi gặp lại nhiều lần, có bộ có thể gặp đến mấy trăm lần, bộ ít gặp cũng đến mấy chục lần. Về mặt kết cấu chữ, các bộ này có thể so sánh với các từ tố của tiếng châu Âu như các thành phần anti -, para - trong tiếng Pháp, un-, - froof trong tiếng Anh, v.v...
Ví dụ các bộ 口 , 才 , 木 , 心 , 辶 , 广 , 門 ... đều được chọn làm tiết chữ.
2.1.2 Các cụm có kết cấu đan nhau hay lồng nhau, mà vị trí tương quan của các nét không thể hoặc khó mô tả bằng các quy luật kết cấu đã nêu ở đoạn 1 trên đây. Đây là các cụm nét bắt buộc phải chọn do tính giản đơn trong các quy luật kết cấu của ta còn mâu thuẫn với tính đa dạng của các kết cấu thực tế.
Ví dụ các cụm nét @, @, 丐 , 井 , 大, 夫 ...
2.1.3. Ngoài hai loại trên ra, còn một số cụm nét tuy không phải là “bộ” trong chữ “Hán”, cũng không phải mô tả kết cấu quá khó khăn, nhưng cũng có thể được chọn làm tiết chữ để làm giảm bớt sự cồng kềnh trong việc mô tả kết cấu chữ.
Ví dụ các cụm nét 合, 斤 , ,可 .
2.2 Thực tế chọn tiết chữ.
Người viết bài này đã thực tế chọn gần 800 tiết chữ làm cơ sở để tạo chữ Nôm (và cả chữ Hán) trên máy tính và cảm thấy rằng bảng chọn đầu tiên này (Version 1, đã công bố ở Hội nghị IRG tháng 2 năm 1994 ở Hà Nội) còn hơi nhiều, có thể giảm đến khoảng 500 – 600 mà chưa ảnh hưởng nhiều đến việc mô tả kết cấu chữ. Bảng tiết chữ rõ ràng cần được kiểm nghiệm trong thực tiễn mới có cơ sở để điều chỉnh thỏa đáng được.
3. Ứng dụng
3.1 ứng dụng đầu tiên (và cũng là mục đích của phương án này) là tạo chữ Nôm trên máy tính. Do chữ Nôm được cấu tạo từ chữ Hán với những quy tắc giản đơn nên có thể áp dụng phương án này để từ một tập hợp chữ Hán có sẵn tạo ra những chữ thuần Nôm (không tồn tại trong vựng tập chữ Hán).
Người viết bài này đã lập được một chương trình để làm việc này trên máy tính, nhưng vì là người lập trình không chuyên nên chương trình còn rất nhiều nhược điểm, chỉ đủ để chứng tỏ rằng phương án là khả thi. Xin trình bày thủ tục tạo chữ qua một số thí dụ, với giả thiết là trong máy tính đã có một tập tiết chữ được sắp xếp và có thể gọi ra một cách dễ dàng (về vấn đề sáp xếp chữ Hán - Nôm, sẽ được trình bày trong một bài khác).
Ví dụ 1: 缊 Tạo chữ (hang).
Chữ này tạo bằng ba tiết chữ: 禾 , 日 và 谷 với công thức là (禾 + 日 ) - 谷. Công thức này có nghĩa là phải thực hiện việc tạo chữ bằng các bước sau:
- Bước 1: Gọi tiết chữ 禾 ra, rồi gọi chữ 日 ra, đặt dưới chữ trước và nén kết quả lại để trở về chiều cao bình thường, được thành phần 香 !
- Bước 2: Gọi tiết chữ 谷 ra, đặt bên phải thành phần đã thu được ở bước 1 rồi nén chiều rộng lại trở về chiều rộng bình thường, được chữ 缊 ,
Ghi chú: 1/ Khi nén chữ lại, để bảo đảm sự cân đối trong ô vuông chữ, các thành phần cần được nén theo tỉ lệ số nét của thành phần đó, thành phần nhiều nét hơn chiếm chỗ rộng hơn.
2/ Khi không sử dụng bộ tiết chữ mà sử dụng vựng tập chữ Hán thì có thể bỏ qua bước 1, mà gọi ngay hai chữ và ra để làm bước 2 trên đây.
Ví dụ 2: Tạo chữ 笗 (nhọn).
Chữ này được tạo bằng 5 tiết chữ:: 巳 , 共 , 小 và 大 với công thức cấu tạo là: [(巳 - 巳 ) + 共 ] – (小 + 大 )
Công thức này có nghĩa là có thể thực hiện việc tạo chữ bằng các bước sau:
Bước 1: Gọi tiết chữ 巳 ra, rồi lại gọi tiết chữ 巳 ra một lần nữa, xếp hai tiết chữ kề nhau và nén lại đến chiều rộng bình thường, được thành phần 巳巳 .
Bước 2: Gọi tiết chữ 共 ra, đặt dưới thành phần thu được ở bước 1, nén lại đến chiều cao bình thường, được thành phần @. Cất đi.
Bước 3: Gọi tiết chữ 小 và tiết chữ 大 ra, ghép chồng nhau rồi nén lại đến chiều cao bình thường, được thành phần 尖 .
Bước 4: Gọi thành phần thu được ở bước 3 ra, ghép kề nhau với thành phần thu được ở bước 4, rồi nén lại đến độ rộng bình thường. Kết quả được chữ 笗.
Ví dụ 3: Tạo chữ 媨 (lướt).
Chữ này được tạo bằng ba tiết chữ: 辶 , 歹 ,刂 . Công thức cấu tạo là:
辶 / (歹 - 刂). Các bước tạo chữ là:
Bước 1: Tạo chữ 列 bằng cách xếp kề nhau hai tiết chữ 歹 và 刂.
Bước 2: Nén kết quả vừa thu được cho phù hợp để đặt vào chỗ trống của tiết chữ 辶 .
Ghi chú: Như vậy, dấu/ trong cấu tạo chữ hàm ý phải dò xem thành phần bao có chỗ rộng cao rộng thế nào để nén thành phần thứ hai cho vừa vào chỗ trống đó.
Ví dụ 4: Tạo chữ 巫 (vu).
Chữ này được tạo bằng ba tiết chữ: 工 , 人 và 人 , công thức cấu tạo là; 工 * (人 , 人 ). Các bước tạo chữ là:
Bước 1: Gọi tiết chữ 工 ra.
Bước 2: Gọi tiết chữ 人 ra, nén lại cho phù hợp chỗ trống bên trái và đặt tiết chữ 人 vào đó.
Bước 3: Gọi tiết chữ 人 ra, nén lại cho phù hợp chỗ trống bên phải và đặt tiết chữ này bào đó.
Khi đã có một vựng tập chữ Hán đầy đủ thì việc cấu tạo chữ Nôm nói chung không dùng đến qui tắc này.
3.1 Các ứng dụng khác:
Mục tiêu của phương án này là việc tạo ra chữ Nôm trên cơ sở các tiết chữ. Nhưng ngoài mục đích chính là việc tạo chữ Nôm ra, còn có thể ứng dụng phương pháp này trong một số việc khác, đặc biệt là khi kết hợp với việc mã hóa chữ Hán - Nôm bằng số để sắp xếp từ điển và vựng tập chữ Hán - Nôm và tiết chữ trong máy tính. Cũng có thể khảo sát vấn đề dạy vỡ lòng chữ Hán dựa trên sự phân tích cấu trúc chữ Hán trong đề án này.
Người viết bài này đã lập được một chương trình trên máy tính để cấu tạo chữ Nôm (và có thể cả chữ Hán) và đã đạt được một số kết quả có thể chứng tỏ rằng phương án là khả thi. Rất mong được trao đổi rộng rãi với những người có quan tâm vấn đề.
Người biên tập: Ngô Thế Long.







No comments:

Post a Comment