汉字形素字母及其编码方法 张耀峰 吴胜利 【摘 要】汉字自有检字需求起到如今编码方案的层出不穷,历来被认为不具备建立定性定量的序性形素字母的条件,这样,汉字便缺少了一种用定性定量的序性形素字母语言进行应用表述的方式。由于这一问题长期以来不能得到有效解决,人们往往只能从能用的角度去寻求方案的解决。因无法对所要表达的汉字要素用定性定量的语言进行表述及同类方案排它性差,结果导致方案数的大量产生及好坏不能识别。这样,寻找并揭示汉字定性定量的序性形素字母便成了解决汉字应用难点的关键。 本文从为汉字寻找形素字母的关键入手,对形素字母存在的机制及其系统应用方案和编码方法进行了论述。 文字一般有二大功能:音素功能和形素功能,由于各自的表达需求不同,故需用相应的音素字母和形素字母作为解读语言。字母文字很早已将属于自已的音素和形素字母确立起来了,故应用起来很方便。 汉字的音素虽已通过引入字母文字的字母得以实现,而形素却由于汉字构造复杂,组配要素隐蔽,很难直接用字母的方式进行表述,自有检字需求起到如今编码方案的不断出现,一直被认为是不能建立属于汉字的形素字母的,故方案一般只能围绕实际应用需求的出现而展开,在经历了历史上数次重大的变革后,仍很难取得应用需求的系统性解决,并常使应用处于滞后状态。 那么,汉字是否也具备建立序性形素字母的条件和进行系统应用呢?让我们就其可能性作一番探讨: 1、对汉字形素字母的认识 通过对两类文字的比较可发现,字母文字的形素字母是一组按线性排列组成的符号,每个字母均是该组线性中的一个序性点,故字母文字可以依字母的不同排列顺序进行定量处理和排序。而汉字则不同,如果我们把笔画比作点的话,则由点组成的部件是一个块,由块组成的汉字就是一个面了。在这点、块、面中,由于属于点的码元太少(一般为5种),用它来对面进行排序,一则码位会很长,二来重码字会很多,而用来编码(一般码位取4位左右)则更是不行了。若用块来对面排序,因块无固定形态,不具备线性特征,故也就不能进行量化,所以块是不能直接对面进行排序的。但如果我们对点与块的特性要素进行适当组配,使其具有线性特征能够量化,并在一个封闭的区间内运作,那么,汉字也就具备了建立形素字母的基本条件。 我们知道,作为笔画的点是可以量化的,我们可以把按一定序性规则排列形成的点组成线,则该线段内的所有点便都具有定量性质。然后我们扩展线段,并给每组线段一个定性单位,则该线段内的所有线和点便都有了定性定量性质。 如果这些线段具有规律或序性,则该线段组便能形成一个面。如果将该线段组按规律或序列进行排列,则该线段组便可形成一个阵列。通过这种设定,我们就可以勾勒出汉字形素字母的雏形。 如果我们把字母文字的字母称作线性字母的话,那么,汉字则可称其为阵列字母。线性字母取码特征是一个量化点决定一码,而阵列字母取码特征是一个定性区域+一个量化点形成一码。 2、对汉字形素字母要素的确定 对汉字形素字母的轮廓设定后,字母的组成还需具体内容,只有在取码要素与字母要素吻合后,编码才能成立。 在汉字中,构成汉字特性的要素主要有:笔形、笔画、笔顺、部首、部件、属性、声母、韵母、声调等,在这些要素中,笔形无疑是组成线段中点的最好素材,其基本笔形有五种,不但能量化,还具有序性。 在阵列中,我们可设定每段线段均为五个定位点。这样我们就可通过线段数量×5来设定阵列中字母数量的范围。按常规,字母数在10~40个内较合理,而最佳为20~30个,即四~六个定性区域。 在汉字中,如果我们采用复笔的方式,用其中一笔作线段定性用,另一笔作定量单位用,便可形成五个定性区域和每个区域五个量化点,如果用区来表示,即为五个区或25个键符位。在实际使用中,可能会有单笔笔形出现,会缺少一个区域要素,这时,我们可再为其设定一个单区,即六个区间或30个键符位。 根据先入为主的原则,我们可将单区排在复笔后。根据标准键盘键符分布的方式,我们可将六个区分成三排,每排两个区,按从左到右,从上到下顺序排列,五个笔形位则按指法由中间起向两边排列。在决定笔形区间的问题上,我们可按笔顺将第一笔定为区,第二笔定为位,遇单笔笔形,则单作区,笔形为位。这时阵列中六个可量化的线性区域排列顺序依次为横区、竖区、撇区、点区、折区、单区,可量化的笔形位按顺序依次为横位、竖位、撇位、点位、折位。 在几万个汉字中,如果仅采用复笔的方式建立编码切入方式,因其表述语言过于单调,会产生较多的重码字,这时,若能在不增加键符数的前提下,覆盖一层不同属性的叠层键位,让切入方式呈多样性,使键位内容丰富起来,并通过切入方式的改变和取码顺序的不同安排,使编码的离散性更好。 要增加叠层键位,就需要在原有键位的基础上再建立六个定性区域。在汉字属性中,汉字的属性可分为上下结构、左右结构、包围结构、独体结构。部件在汉字中有六种存在方位,即在上、在下、在左、在右,独立存在或相交(包围、被包围或占角)。若我们将部件所在方位作为区间使用,将其分为上区、下区、左区、右区、独区、交区,则其数量正好与笔形区间相同。这些要素虽不直接显示序性,却可以作为定性单位使用,我们在对其进行定性的同时,再加入其中的一笔笔形作为定量单位使用,便能进行定性定量处理。 在叠层键位区间的安排中,我们可先将关联的区间配对,使其处于同一键符中,即折与交、单与独。剩下的上、下、左、右四个区,我们可按汉字传统书写的方式,即从上写到下、从左写到右的方式来安排,故左区与上区均被安排在左边,由于上区要代表上,故上区被安排在左上角,左区便自然归入左下角;右区与下区均被安排在右边,由于下区要代表下,故下区被安排在右下角,右区便自然归入右上角。这样,在叠层键位中,每个层面的区与位均能按自己的特征合理就位,既各自独立,又相互兼容,均不用死记硬背。 3、取码要素的确定与拆分的安排 在汉字认字过程中,无论是字还是部件,对第一笔或最末笔笔形的辨认并不难,但如果均取连续两笔笔形的话,则头部容易尾部难。如果我们把头部开始部分笔形作为组配要素使用,则应用起来较容易,而把尾部末笔笔形与该部分所处位置关系作为组配要素使用,则认起来也并不困难。 这时,在一个汉字的取码中,我们便可以建立两个码位了。但两个码位对几万个汉字来说显然太少,可容纳号码数不足一千,势必会产生大量的重码字。如果我们将汉字分作两部分,用两个头部要素和两个尾部要素组成码位,使码位增加到四位的话,编码可容纳号码数将上升到八十万以上,这样,汉字便可在一个较理想的编码容纳空间下进行运作。同时,我们可将每字取两个码位的方法用于对词语字的取码。 要将汉字拆分为两部分,就要确定一种合适的拆分方法。我们知道,在汉字各类检字法中,部首检字法是使用人数最多、也是检准率最高的一种方法,虽然其过程复杂、费时、重码字多,但其一分为二的拆分方法却符合人们的认字心里和用字习惯,最易被接受。我们可选用取部首的方法对汉字进行拆分,使部首部分和非部首部分各成为一个取码信息源,使其特性要素充分展露出来。 4、码位顺序的确定 当编码要素确定后,就要给码位安排一个恰当的排列顺序。一个合适的排列顺序,既能使单字与词语编码形成各自相对独立的板块式集散区,使二者之间产生重码的概率降低,又能使自身板块区域内的编码有较好的离散性。 由于词语大部分由两字组成,可将其取码顺序依次定为(第一字)头 + (第一字)尾 + (第二字)头 + (第二字)尾; 在单字中,可将取码顺序依次定为(先写)头 + (部首)尾 + (非部首)尾 + (后写)头。 这样在字与词的四个码位安排中,第三、四码的切入是按不同属性的区间方式进行的;第二码,由于词语中字的尾部区间大部分集中在右部与下部,而单字部首尾部的区间大部分集中在左部与上部,故对第二码的区间是按错位方式排列的。由于四码中有三个码位因错位安排与切入方式不同,其相互间的重码概率将会大大降低,这样,我们就可在无需切换的前提下,直接对单字和词语进行取码。 5、对应区的安排 在编码中,若仅按以上方式取码,表述仍会显得单调,容易使部分编码产生集射效应。若能对其进一步加以细分,将部分要素释放到其它区间去,使其产生折射效应,便会进一步降低重码概率。 我们可为每个区设定一个对应区,利用笔形相交状态,将其取码区间折射到对应区中去,便会取得更好的编码效果。 由于对单字与词语码位的不同安排有三位,取对应是在有规则的状态下运作的,而对应要素是在无规律的随机状态下出现的,故在取对应时,不会因为对对应区间的占用使原先的离散作用减少,倒会随表述语言的丰富和表达形式的多样性,使单字与词语间的重码可能减少,对单字或词语本身也会起很好的离散作用。在应用中,由于要素之间的定性定量关系简单、直观,故操作时的难度不会因为对应区间的设立而增加很多。 6、键位代码的设置 当汉字键位确立之后,便要为其配置一组相应的代码。由于键位是按阵列编制的,故其代码可分区的代码和位的代码;又由于是采用叠层键位,故其区的代码又可分为笔形区代码和位置区代码。 位的要素有五种,即横位、竖位、撇位、点位、折位,可分别用代码—、|、/、\、乛表示。 笔形区的要素有六种,即横区、竖区、撇区、点区、折区、单区,可分别用代码—、|、/、\、乛、l 表示。 位置区的要素有六种,即上区、下区、左区、右区、交区、独区,可分别用图形符号表示。 位置区图形符号的含义在于:既形象表示其所在方位,又为找对应区提供方便(无论是笔形区对应还是位置区对应,只要找出形成一个完整圆的另一部分,即是找到了对应区)。 7、键位应用的方式 用于计算机汉字输入时,每一个区与位的配对要素可根据其在键盘中的位置用一个相应的键符去代替(见汉字键位码键位图);当用于小键盘汉字输入时,可用按两次数字键代替一码的方式进行操作(见小键盘键位图);当用于汉字检索或排序时,可用从左到右,从上到下的方式将六个区间分别用一、二、三、四、五、六表示;五个笔形位分别用1、2、3、4、5表示(见汉字键位检字序性图)。 8、对细分规则的安排 对有特殊要求的地方,可利用基本码取剩后的未用笔形建立细分规则,将每个字分出先后。规则为:按笔形书写顺序进行取码配对,能取两笔连续的方式取两笔,不能取连续笔形的则取单笔(部首部分与非部首部分笔形不能同时取)的方式进行连续取码,直到将字的笔形全部用完,若再有重码,则再借用拼音字母及声调加以细分。 由于每增加一个码位,编码可容纳数将增加一个几何级数量,经过这样的细分后,其重码的概率接近于零。由于基本码取码后,未用笔形使用起来较复杂一些,可规定细分规则取码时不取对应位,并在基本码后用“—”线将其隔开以示区别。对取基本码后产生的重码字,排列可以这样进行:计算机汉字输入用时,可按常用字在先排列;在其它场合,则均按细分规则确定的顺序依次排列,(细分时的编码一般不用标出,需要时也可标出作提示用),以保证排列次序的一致性。 |