对两份部件规范的我见
1. 信息处理用GB13000.1字符集.汉字部件规范
2. 基础教学用现代汉语常用字部件规范
2000年前,许慎抽取汉字的共同部分为部首,将汉字分门别类。后来一些部首被归拼,种类不断减少,但一直是字典搜索的唯一方法。教写字、学书法,也十分重视偏旁、部首,形成许多通俗名称,如木子李、言午许和宝盖头、三点水等等,其数量则愈来愈多,恐怕还无人作过统计。但这两者都不会全面彻底地拆分所有汉字。因为编字典,不必将一个汉字彻底分解,只要抽取适当的部首即可,而学写字又不会遍及全部汉字。只有汉字的电脑输入法,才开始全面的拆字分析,分拆出来的部分,也不叫偏旁、部首了,而改用字根、字元、字块、子字、构件、部件等等新名称。事实上,近年兴起的汉字拆分研究,不仅可以服务于字典检索、汉字教学、字形编码这三方面的实际需要,它将更为今后必然兴起的笔画组字、字元组字所必需。
因为汉字植根于电脑的方式,一开始就采用字库加编码的方法,必须有编码输入法。最早只有形码,以后采用容易的音码。但随着字库愈来愈大、同音字太多,音码已黔驴技穷,现在又重视形码的研究了。形码的基础是汉字拆分。不同的编码方法对汉字的拆分常常不一样,随意性很大。更严重的是,常常只公布编码使用方法,而不披露汉字拆分的研究。即使公布了所采用的字根表,要么这表不全,要么因为印刷的原因,许多字根看不清。铅印时,可能是用‘含有此字根的铅字,凿去其余部分’来代替的,形小而不正规。现在改用电脑排版后,则因为字库里找不到,常常只留一个空白(也可能文件中是有这个字,但所用的系统和字体里没有该字模,例如,本文是没有缺字的,但有时也可能出现空白,如果如此,请改用宋体,一般宋体的字模比较全)。所以,即使当前印刷、传布十分方便,但很难收全各种字根表,也很难进行比较研究。“长期以来,汉字部件的拆分工作在不同地区、不同系统中自发进行,导致部件拆分呈现五花八门、纷纭交错的结果。”这也是造成“万码奔腾”的原因之一。为此,国家语委于1997年12月1日发布《信息处理用GB13000.1字符集汉字部件规范》,目的是“对汉字键盘输入”方法,具有规范作用。
但是,很难说这份规范起到了指导形码研制的作用。因为一些部件拆得很不妥当,也没有覆盖该字符集20902个汉字的全部部件,所以有人抱怨:遵循该规范研制不出优秀的形码。于是2003年12月,又公布了第二个规范《基础教育用现代汉语常用字部件规范征求意见稿》。它作了一些改进,删去了一些不自然的部件。但仍声明是继承了上一规范的原则,只不过它是只针对3500个常用字而已。照理,这应该是第一个规范的一个子集,它有540个部件,比第一个规范少20个。但两者相同的只有365个左右,占全体的67.6%,还不到七成,3成多(约175个)是新拆分出来的。可见拆分还是相当随意的,并且仍然有显得不合理的地方
语委的百家论坛里,专门开辟了一个论坛用来反馈大家的意见。但至今只有十多个帖子,其中没有一个是提出切题的意见的。这一方面可能是很少有人研究,研究也很困难。我为了比较两份部件表的异同,统计有多少共同的部件,就花了一星期功夫,最后还不能确保绝对正确。另一方面,可能有具体意见,也难以表达出来。因为很多部件不能独立成字,或者组字时笔画有变化,字库里没有它们的字模。虽然眼下的大字库,已增加了一些不成字的笔画和部首等,但很不全,何况谁也预见不到,汉字拆分会拆出那些新部件来。为补救这个缺陷,第二份部件规范里,给那些难以表达的部件一个诸如X字头、X字底、X字腰、X字角等称呼。但这类称呼也会出现歧义,例如“美字头”是指两点、两点一横还是两点加一个王字?为此我建议在代表字X后加两个数字来表示,第一个数字表示部件的起笔,第二个数字表示该部件的笔画数,数字大于9时,接着用字母a,b,…… z来表示。例如“美16”是两点加个王字,“美73”则是大字。只有极个别笔画不连续的,如繁体学字头两旁,没法表示。但一般来说,这类拆分应该避免。这样一来,只要一定的部件所取的代表字固定,即使字库里没有,也可以明白表达,也可以查找比较。例如上面提及的,统计两规范部件表的交集的元素,如果两表都以此法表示部件,就很容易得到十分准确的结果了。
使用这样的部件表示法,我就可以表述我认为的具体问题了。两份规范提出“从形出发,尊重理据,立足现代,参考历史”、“相离、相接可拆;交重不拆(可拆成笔画)”、“尽量进行有理据拆分”。我觉得只有这些笼统原则是不够的,不能避免拆分的随意性。潘德孚在他的网站和著作中,对第一份规范提了许多意见,似乎成见大,具体的少。他对汉字的拆分提出了一些创造性见解,我大致赞同,好像不够完整、还不够用。至于他提出的部件系统,可能适于编码,但不适用于组字。我自己也想进一步研究汉字部件,希望以后能提出更具体的标准来。现在只能一般性地、几乎是按两份规范自己提的原则,来分拆我找到的问题。提到的部件后面都附有它在规范中的序号,方括号内是13000.1字符集部件规范的序号,圆括号内是常用字部件规范的序号(音序号)。
(一)、第一个规范中一些古怪的部件,本不该拆分出来。例如鼎68[499];它不能独立成字,且只在一个鼎字中出现,不如直接把鼎字作为部件。是因为“相离可拆”必须拆吗?如果是这样,将有很多部件应该进一步拆分了。是因为目字已成为部件必须拆除,即部件中不允许包含别的部件?那么至少系26 [31]、言[61]、衣[84]、石[94]等等都应该进一步拆分。因为常用的单一笔画也成为部件了,因此要进一步拆分的会很多。实际上把汉字拆分为部件的目的,是要由少量的部件,能组出大量的汉字。无论对于输入编码和笔画组字,选取部件的第一标准应该是构字数大,构字数很小,尤其是构字数为1的,不如直接用这个汉字。
属于同一情况的还有部件报42[247]、亙24[23]、顾32[131]、鼠77[255]、鬲74[370]、繭43[539]等。另外,兩14[368]、丞33[490]、脊14[290]也应该避免拆分。因为部件是按上下、左右和嵌套结构组字的,嵌套结构中一般只有左上、右上、左下等几种包围结构;而没有像左右夹裹这种更复杂的嵌插,这在部件组字时一定是不可取的。脊14在常用字部件里也有,被称为率字腰(357)。常用字部件规范第5节(5.1.7),说乘裹兩字也要拆分,同样不妥。另外,常用字部件中有部件丘(294),不知为什么还要兵(24)、乒(25)、乓(26)。
(二)、另一方面,第一个规范中缺少许多必须要的部件。在第二规范中有它们,没有它们许多字就组不出来。例如血(420)或衅16,第一规范中可能把它看成是由撇和皿组成,它是作为皿[114]的例字的。但是白[108]、自[263]却没有把撇画拆分出来。是因为他们的构字数高?好像不是,至少白[108] 的构字数是不会很高的。按第二规范中列的数据,白、自、血的构字数分别为40,8,3。血字拆分了,自字为什么不拆?
如果说第二规范中的部件奥(3)、拜55(8)、鹤1a(149)、屰(262)、养17(448)、路17(537)、⺪(539),可以由第一规范中的其他的部件组成,那么以下部件是不易由其他部件组成的:1). 少(322)、卵(235)、叉(41)。这三个如果分别由步53[318]、卯[426]、又[46]加点组成,它们算什么结构?2). 半(9)、夹(178)、卷16(206)、尞15(225)、伞(314)、啬15(315),要把两点嵌入夫,大,十,土等字的两腰之内,更不可取了。
(三)、GB13000.1字符集部件规范是按构字数降序排列的,但没公布构字数数据。即使知道了构字数,也记不住,不能用来查找。为什么不像GB13000.1字符集本身,按笔画序排列呢?常用字部件规范以音序作为主序,也很不妥当,不如用笔画序。虽然第二份规范附有按笔画数的列表,但笔画数相同的还是没有按一种笔画序排列,部件多,难寻找。音序是按部件的读音或称呼名拼音排序。许多部件没有读音,或读音不为一般人知道,虽然创用了X字头、X字角等通俗称呼,由于选取这个代表字(即X)没有形成约定,代表字一变,称呼就变了。更严重的是,许多部件实际上不是严格地按称呼的第一个字的拼音排。例如:扌(346,提手)、拜14(347,掰bai字旁)按手字音;红13、糸(368,369绞丝)按丝字音;忄(423,竖心)、⺗(424,恭字底)按心字音;玩13(496,斜玉:为什么不叫斜王)按玉字音。儿(303er)、亻(304)、乞12(305,卧人)、负12(306,负字头f)都排在r之内,美16(446,美字头m)、变16(470,变字头b)为什么都在y之后。308 – 311号部件肉、月、肖44(肖字底)、然14(然字角),其首音字母应为ryxr;362 – 365的水(水字底)、益15(益字头)、犀45(犀字腰)、司,首音字母为syxs;512 – 516的止、降63(降下角)、是55(是字底)、步53(步字底)、至,首音字母为zjsbz;537 – 540的路17、疋、⺪(疏字旁)、左,首音字母为zpsz;为什么都排在一起?
(四)、有一些部件,在它作字左的偏旁时,最后一笔常发生变化,叫变笔、变体,如木字旁最后一笔捺改为一点。在第一个规范里,按它所列的例字看,既包括正体,也包括变体,可见是把他们看作同一部件的。在常用字部件规范里,有12对这样的部件是合在一起的,同时又有8对却分开成为16个不同的部件。如果说因为构字数太多把它们分开,构字数小时则合成为一个部件,那还有些道理。而事实上却把构字数很大的合在一起了:如木(254)、土(380)、禾(148)、火(164)的构字数高达205、121、64、59。相反的被分为两个部件的,大部分构字数很小,如半(9)和判15(10),亦(469)和变16(467),疋(538)和⺪(539)这三对,每对合起来的构字数都是9。被分开的8对还有金(189)和钊15(190),辛(425)和辣17(426)、羊(445)和羚16(447)、王(386)和玩13(496),足(536)和路17(537)。合在一起的另外8个字根是车和轩14(46)、耳和耿16(99)、工和攻13(129)、米和粘16(246)、牛和牡14(267)、舟和航16(521)、子和孙53(531)。实际上还要加血和衅16(426),只是表中漏列衅16,一眼看不出来。
(五)、最后,还要说明一点。我们说常用字部件规范声明是继承了第一个规范的原则,是因为文件第1节有一句“《信息处理用GB13000.1字符集汉字部件规范》(GF 3001—1997)的汉字拆分、归纳原则,在本规范的制定中具有延续性。”实际上它们有许多是完全不同的,怎么理解它说的“拆分、归纳原则”的“延续性”呢?最明显的是:第二个规范第5节(5.1.5)说“隶―――不可拆分”,但第一个规范中就有部件隶14[204],且以隶字为唯一的例子。这是不是说明,在同一原则下,拆分还是随意的。
2004.9.25