郑码学习体会(2)

郑码有一个理想化的假设:26个字母对应26个汉字的字根(主根),这些字根两两组合(前一个字根称为区码,后一个字根称为位码),又得出26*26种次一级的字根(辅根)。这样每一个字母键都分配27个字根,一共能够容纳702个字根(和汉字总字根数接近)。然而,汉字毕竟不是为26字母设计的文字,并没有很强的规律性使得26个主根的两两组合都能成为字根,实际上,只有少量的字根符合这种规律性。最终实现的是:25个以D为位码的字根(不使用DD这种组合),成为第二主根,另有119种区位码的组合有实际对应的字根,成为辅根。主根、第二主根、辅根,统称基根,26+25+119=170,这就是郑码170种基根的来历。

170种基根,有足够丰富的字形,几乎可以把所有形态各异的字根以形近根的名义包进去。这就是郑码具有通用性的关键之一。另外也有一些区位码的组合,也不断地补充进来,但没有改变170基根的说法和构成,例如:玉CS,永SK。另一方面,由于这种灵活性,也方便用户自行扩充字根集,因为有约500个区位码未被占用,因此,即便是郑码教材中没有列出的字根,用户也能根据经验判断其编码。

汉字拆分成字根串,每个字根都具有编码,把这些字根的编码连接起来,就成为汉字的编码,这只是一个初级的想法,还不具有实用性,因为,这样的编码会很长。一个4字根组成的字,如果每个字根都用2个字母表示,汉字编码长度将达到8。为此,郑码有很大的篇幅在讲怎么缩短编码长度。为了限制单字编码长度<=4,一共有11种情况:

  1. 1字根:1+A,或 2
  2. 2字根:1+2,2+1,2+2,1+1+V+V
  3. 3字根:1+1+1,1+1+2,2+1+1
  4. 4字根及以上:1+1+0+1+1,2+0+1+1

上面的记法中:+表示字母的连缀,1表示字根的区码,2表示区码和位码,0表示省略,A 表示字母A。

设汉字分解得出 N 个字根,第 i 个字根的编码记为 R(i),编码的区码记为 .1,位码记为 .2,上面的规则可以写为:

  1. N==1:C = R(1) + [A]
  2. N==2:C = R(1) + R(2) + [VV]
  3. N==3:C = R(1) + R(2).1 + R(3).1 + [R(3).2]
  4. N>=4:C = R(1) + [R(2).1] + R(N-1).1 + R(N).1

其中 [] 表示可选,当 N==1 时,使 C.length == 2;其他情况,使 C.length == 4。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值