技术领域\n本发明涉及一种基于笔段网格的汉字字形表示方法、手写汉字输入方法及汉字识别方法,无需事先学习训练、无论该字书写是否正确,均可按书写原貌将汉字输入到计算机内并被计算机识别。\n本发明属于模式识别、人工智能和汉字信息处理技术领域。\n背景技术\n随着中国经济的飞速发展,对外经济、文化交流的不断深入,越来越多的外国人对中文感兴趣,学习中文。\n在汉语教学的过程中,外国留学生迫切地需要一种无需训练、无需辨析汉字结构、无需知道读音即可使用的计算机汉字输入法。目前的汉字输入方法主要有拼音输入法、字形输入法和手写输入法。拼音输入法要求输入者必须能够准确地拼出要输入字的拼音;字形输入法要求输入者必须熟练地掌握五笔字形或其他某一种字形规则;手写输入法要求使用者必须能够正确理解汉字字形结构而且书写要比较规范,否则计算机无法识别。因此,目前这三种汉字输入方法都不适合外国留学生使用。\n此外,汉语教师迫切需要一种汉字字形处理工具,能将外国人写的正字和错字按原貌输入计算机,让计算机对字形书写错误进行错误自动判断、检索和定量分析,对错字和正字、错字和错字、正字和正字进行字形相似度的自动比对,目前还没有这样一种工具。\n再者,在古籍汉字的历史文化研究过程中,需要将古籍整理成各种电子或网络出版物。在将古籍汉字录入到计算机内时,许多异体字在计算机的字符集内没有,目前的办法是用一些通用字、规范字来代替。这样做虽然保留了古籍的内容信息,但是丧失了很多字形原貌信息,不利于古籍汉字的历史文化研究。所以,需要一种汉字输入方法,可以使输入者把古籍汉字的字形按原貌直接进行录入,并需要有工具,对于古籍汉字在不同历史朝代的字形演变特征进行比对、分析和研究。\n中华文化中还有一些拼合字,它们由一个词组中的多个字拼合而成,表示某种民俗文化意义,但整体不一定有读音。这种字形的计算机处理对于中华民俗文化的研究很有意义,但目前也没有输入和比对拼合字的手段。\n这些问题根源在于现有的汉字处理技术存在问题,具体分析如下:\n目前,任何能输入汉字的计算机,其系统内部都是有一个有限汉字的字库,字库中每个汉字存储的信息是机内码和字模。内码用以存储、处理和交换,字模用以在屏幕或打印机上输出,内码与字模有一一对应性。\n汉字输入的人机界面主要有两种:键盘输入和手写输入。另有语音输入,但技术上不成熟。\n键盘输入方式需要对国际标准字库中的每一个汉字设计输入码给用户使用。用户在自己的头脑里把要输入的汉字转为输入码,借助键盘输入计算机。计算机内有一个输入码到字库内汉字内码的对照表,可将输入码映射为内码并进而映射为字模。这种映射关系可能是一对多的,此时需要用户来选定。不在国际标准字库中的字由于未设计输入码,无法输入计算机。\n手写输入方式需要收集字库中每一个汉字的书写特征存入计算机中。用户使用特定设备写汉字,计算机获得书写笔迹的图像,手写输入软件将这一图像的特征与字库中已有汉字的书写特征进行比较,选择最相近的几个提交给用户,让用户最终选定。目前流行的手写输入识别方法允许用户相当随意地书写汉字,包括可以写连笔字。这样虽然给用户带来一定的方便,但也付出了很大的代价。不同的用户写同一个字,其字形骨架会有很大差别,只有一些基本特征相同或相似。为了使输入系统能为各种不同的用户服务,就要事先把各种不同用户写同一个字的相同特征提取出来,这需要收集大量样本用来训练。而且,如此的要求也就使系统所能识别的汉字只能局限于一个预定的字库范围内。\n无论哪一种输入方式,输入软件都必须知道计算机字库中有哪些汉字,预先建立每个汉字的特征信息(输入码或字形图像特征),以便同用户的输入信息进行比对。\n要把错字、异体字、拼合字等输入计算机,就需要扩充计算机内的字库。计算机系统提供了造字功能,可以用来扩充字库。用户使用造字软件,将不在字库中的汉字的图像输入计算机,计算机将这个图像转换成字模,并给它分配一个机内码。这种软件扩充了字库,但无法将新字的特征信息加入到输入软件中去。以至于只有造字者知道新造了什么字,他自己可以直接用这个字被分配的内码来输入这个字,其他用户却不知道这个字已经加进字库中去了,即使知道加了这个字,也不知道这个字被分配的内码是什么,因此无法输入这个字。\n这样的造字功能的另一个问题是,在为字库造字的过程中,可能会出现同一个字造了两次甚至多次的情况,使字库越来越冗杂,使机内码失去了表示字形的唯一性,从而给文本检索等处理带来混乱。问题的原因是在于计算机内唯一包含字形的信息是字模,但字模中不仅包含了字形骨架信息,还包含了书法信息、造字者对字形的理解和表达习惯等多种混合信息,十分复杂,以至难以自动判断两个字模是不是同一个字。\n从以上分析可以看出,不能把任意汉字输入计算机的原因,一是输入软件的封闭性,一是计算机汉字处理软件未单独存放汉字字形骨架信息。\n由此也可以看出解决这个问题的一种方法,就是为汉字设计一种字形骨架的表示法。这种表示法一方面有足够大的区别性,使得不同字形能够被区分开来,另一方面又足够规范和简单,使计算机能根据这个信息判断两个字形的异同以及相似程度。\n有了这样的字形骨架表示法之后,对汉字输入识别系统的字库中每个字来说,除了存放机内码和字模以外,还要存放它的字形骨架信息,并在字形骨架信息与机内码、字模之间建立一一对应关系。在这样的安排之下再设计一种输入方法和识别方法,用户就可以把字形骨架信息输入计算机,而计算机就能将这个信息同字库中已有汉字的字形骨架信息进行比对,确定这个字的内码和字模,进而可以对这个汉字作各种处理。\n本发明就是依据这样的思想设计实现的。\n发明内容\n本发明的第一个目的是提供一种字形表示方法,能描述各种可能的汉字字形的骨架信息。这种表示法一方面有足够大的区别性,使得各种可能字形的不同之处能够被区分开来,另一方面又足够规范和简单,使计算机能根据这个信息判断两个字形的异同以及相似程度。\n本发明的第二个目的是提供一种基于上述字形表示方法的无需学习即可使用的手写汉字输入方法。用户无需知道字的读音,也无需对于汉字结构具有背景知识,只要能把汉字看成是一些线条组成的图形,把这些线条描画出来,就能输入汉字。\n本发明的第三个目的是提供一种基于上述字形表示方法和输入方法的手写汉字识别方法,该汉字识别方法无需进行大样本集合的训练。只要用户把汉字字形描画式地输入计算机,系统就可以将这一可能的汉字字形与字库内已有汉字的字形进行对比,从而可以对各种正字、错字、古籍异体字、拼合字进行比对、识别,而且可以从汉字整字中识别出不同笔画、部首等构字元素,对汉字字形特征进行深入定量地分析和研究。\n为实现上述目的,本发明采用以下技术方案:\n本发明具有以下优点:\n1、输入方式自然。使用者不需要事先学习和训练,只要按照手写输入板上或屏幕上设定的网格笔段描画出想要输入的汉字,就能把字输入进去。\n2、输入的汉字集合是开放的。无论是正字、错字、异体字还是拼合字,都可以将该字按描画原貌输入到计算机内。\n3、无需训练就能识别。由于本发明在手写输入汉字过程中已经规整了汉字的笔画形状,不同人书写同一汉字得到的笔段网格字形之间存在的变形差异不会很大,因此,不需要为适应一个字的各种变形去收集大量同一汉字的不同书写字形样本来训练识别系统的参数,可以直接在笔段网格字形间计算相似度。识别结果不受输入笔画顺序的影响,识别正确率高,性能稳定。\n4、可以自动分析构字元素。本发明既可识别汉字整字,也可从整字中识别提取笔画、部件等不同颗粒度构字元素。\n5、低存储、高效率。本发明提供的汉字识别方法占用计算机存储空间小,运算效率高,适合于在硬件性能较低的系统中使用。\n本发明解决了现时的汉字输入识别系统不能处理错字、异体字、拼合字等集外字的问题,特别适合学汉字的外国人、教汉字的老师、古籍汉字研究者、汉字文化研究者使用,对于中华文化的继承和发展、推广具有重要意义。\n附图说明\n图1为笔段网格平面示意图;\n图2为构成笔段网格平面的一个小矩形区域及其内部笔段的平面示意图;\n图3为应用基于笔段网格的汉字输入方法描画拼合字“招财进宝”的示例图;\n图4为应用基于笔段网格的汉字输入方法描画正字“合”的示例图;\n图5为应用基于笔段网格的汉字输入方法描画“合”的错字的示例图;\n图6为应用基于笔段网格的汉字输入方法描画“合”的另一错字的示例图;\n图7、图8为本发明基于笔段网格的汉字识别方法程序框图;\n图9为基本笔画类型表;\n图10为复合笔画类型表;\n图11为相似复合笔画表;\n图12为图4所示汉字的基本笔画划分示意图;\n图13为图4所示汉字的复合笔画划分示意图;\n图14为图5所示汉字的基本笔画划分示意图;\n图15为图6所示汉字的基本笔画划分示意图;\n图16为图6所示汉字的复合笔画划分示意图;\n图17为基本笔画类型相似度表;\n图18为待识字形H3与比对字形H2的基本笔画配对距离列表;\n图19为待识字形H3与比对字形H1的基本笔画配对距离列表。\n具体实施方式\n本发明公开的基于笔段网格的无训练汉字输入方法和汉字识别方法可用于计算机集外字如古籍异体字、错字、拼合字的输入、识别和分析。下面结合附图和具体实施例对本发明作进一步说明,这些说明并非对本发明的限定。\n为了实现本发明公开的基于笔段网格的汉字输入和识别方法,本发明首先构造了一个用于表示汉字字形骨架的笔段网格平面。如图1所示,该笔段网格平面为一个矩形区域,该矩形区域由大小相等的N×N个小矩形阵列构成,小矩形如图2所示。在每一个小矩形区域内,设定有以下三种类型的笔段;\n◆小矩形上水平边框线被它的中点分为2段AE、EB,称为水平笔段。小矩形下水平边框线DG、GC归进它下面的小矩形,最下一行小矩形的下水平边框线不在可用之列。\n◆小矩形左竖直边框线被它的中点分为2段AH、HD,称为竖直笔段。小矩形右竖直边框线BE、EC归进它右面的小矩形,最右一列小矩形的右竖直边框线不在可用之列。\n◆小矩形每个顶点到其2条对边中点的连线AG、AF、BG、BH、CE、CH、DE、DF,以及连接相对顶点的2条对角线AC、BD,共4×2+2=10段,称为倾斜笔段;\n把以上三种类型笔段作为描画汉字的基本单元。每个小矩形共14个笔段,笔段网格平面内N×N个小矩形区域共有14N2个笔段,共同构成用来描画汉字的笔段网格,如图1所示。这些笔段的集合可以表示为\n\n其中,元素Si,jk代表一个笔段,下标i、j为笔段所属小矩形在大矩形中的行、列编号,N表示整个大矩形划分为小矩形的行(列)数,上标k为笔段在所属小矩形内呈现不同方位的编号:0、1代表两种水平方位笔段,2、3代表两种竖直方位笔段,4至13代表10种不同方位的倾斜笔段。\n每个笔段存在有线和无线两种状态;该笔段被描画过,则为有线状态;没有被描画过,则为无线状态。\n将汉字的笔段网格字形记为H,H是G的子集,由构成该汉字的有线笔段集合表示,包括水平、竖直、倾斜三种类型笔段。\n\n\nState(Si,jk)是笔段的状态函数,如果Si,jk是被描画过的有线笔段,则函数值为1,否则函数值为0。\n图3为利用笔段网格描画拼合字“招财进宝”的示例图。图4为利用笔段网格描画汉字“合”的示例图。\n下面以图4中“合”字为例,详细说明本发明提供的基于笔段网格的手写汉字输入方法。该汉字的输入包括以下步骤:\n1、打开预先建立的笔段网格平面。\n2、输入者在笔段网格平面内近似地沿已设定的笔段,描画汉字“合”;\n3、计算机检测输入者落笔和抬笔之间笔的运动轨迹,将笔的运动轨迹调整为位置、方向和长度最接近的一个笔段或多个笔段的序列,并将这些笔段记录为有线笔段;\n4、计算机存储笔段网格平面内所有被描画的有线笔段,就得到汉字“合”的笔段网格字形。\n如图4所示,在16×16个小矩形格组成的笔段网格平面上,“合”的笔段网格字形(用H1表示)由水平、竖直、倾斜三类有线笔段Si,jk组成。\n“合”的水平有线笔段包括S6,60,S6,61,S6,70,S6,71,S6,80,S6,81,S6,90,S6,91,S7,60,S7,61,S7,70,S7,71,S7,80,S7,81,S7,90,S7,91,S10,60,S10,61,S10,70,S10,71,S10,80,S10,81,S10,90,S10,91,笔段数=24;\n“合”的竖直有线笔段包括S7,62,S7,63,S8,62,S8,63,S9,62,S9,63,S7,102,S7,103,S8,102,S8,103,S9,102,S9,103,笔段数=12;\n“合”的倾斜有线笔段包括S3,712,S4,612,S5,512,S6,412,S3,813,S4,913,S5,1013,S6,114,S6,128,笔段数=9;\n“合”的笔段网格字形H1共包含45个有线笔段。\n同理,图5所示“合”字的错字H2的水平有线笔段包括S5,61,S5,70,S5,71,S5,80,S5,81,S5,90,S6,60,S6,61,S6,70,S6,71,S6,80,S6,81,S6,90,S6,91,S7,61,S7,70,S7,71,S7,80,S7,81,S7,90,S7,91,S10,60,S10,61,S10,70,S10,71,S10,80,S10,81,S10,90,S10,91;\n竖直有线笔段包括S7,62,S7,63,S8,62,S8,63,S9,62,S9,63,S7,102,S7,103,S8,102,S8,103;\n倾斜有线笔段包括S3,712,S4,612,S5,512,S6,412,S3,813,S4,913,S5,1013,S6,114,S6,128,S9,97;\n“合”字的错字H2的笔段网格字形共包含49个有线笔段。\n图6所示的“合”字另一错字H3的水平有线笔段包括S5,61,S5,70,S5,71,S5,80,S5,81,S5,90,S6,60,S6,61,S6,70,S6,71,S6,80,S6,81,S6,90,S6,91,S7,61,S7,70,S7,71,S7,80,S7,81,S7,90,S7,91,S10,61,S10,70,S10,71,S10,80,S10,81,S10,90,S10,91;\n竖直有线笔段包括S7,62,S7,63,S8,62,S8,63,S9,62,S9,63,S7,103,S8,102,S8,103,S9,102,S9,103;\n倾斜有线笔段包括S3,712,S4,612,S5,512,S6,412,S3,813,S4,913,S5,1013,S6,114,S6,128;\n“合”字的错字H3的笔段网格字形共包含48个有线笔段。\n类似的,其它字如图3所示的拼合字也可采用同样方式得到对应的笔段网格字形,从而达到把汉字输入到计算机内的目的。\n在具体实施过程中,用户可以采用多种联机手绘输入方式获得笔段网格字形:一种是利用手写输入板获得笔段网格字形。在手写输入板上预先建立笔段网格平面,并将所有笔段制成带有凹槽的线段;设置好与手写输入板对应的屏幕显示映射区;然后,在笔段网格平面内沿设定的凹槽,画出要输入的汉字,在屏幕映射区就可以看到对应汉字的笔段网格字形。第二种方式是利用鼠标,直接以屏幕窗口作为输入区获得笔段网格字形。首先,在计算机屏幕上建立笔段网格平面窗口;然后通过移动鼠标在笔段网格平面窗口内描画出要输入的汉字;再通过检测鼠标器从键按下到抬起期间的鼠标运动轨迹,将运动轨迹调整为位置、方向和长度最接近的一个笔段或多个笔段的序列,将这些笔段记录为有线笔段。第三种方式是利用手指和触摸屏,直接以屏幕窗口作为输入区获得笔段网格字形。首先,在计算机触摸屏上建立笔段网格平面窗口;然后通过移动手指在笔段网格平面窗口内描画出要输入的汉字;再通过检测手指从按下到抬起期间的运动轨迹,将运动轨迹调整为位置、方向和长度最接近的一个笔段或多个笔段的序列,将这些笔段记录为有线笔段。无论用哪一种输入方方式,计算机都是存储这样获取的一个字所有的有线笔段,便可获得对应汉字的笔段网格字形。\n所谓汉字识别,就是将输入计算机的某个汉字同已经存储在计算机字库中的汉字进行比对,找出与它字形相同或相似的字,或者确定它是一个不在计算机字库中的新字。这个字库称为比对汉字信息库,该字库中的字称为比对字。\n以上述的笔段网格字形为基础,如图7所示,在进行汉字识别之前,需要利用本发明提供的基于笔段网格的手写汉字输入方法建立比对汉字信息库。建库过程包括以下步骤:\n1、判断所有比对字都输入了吗?如果都输入完,则过程停止;否则,执行步骤2;\n2、采用上述的基于笔段网格的汉字手写输入方法输入一个比对字,依照公式(1)获得该比对字的笔段网格字形;\n3、对该比对字的笔段网格字形,以基本笔画类型表(图9)中的基本笔画为单位对有线笔段进行划分,获得该笔段网格字形的基本笔画集;\n4、对该比对字的笔段网格字形,在基本笔画划分基础上,再以复合笔画类型表(图10)中的复合笔画为单位对基本笔画进行划分,获得该笔段网格字形的复合笔画集;\n5、把步骤2至4中获得的该比对字的笔段网格字形、基本笔画集和复合笔画集划分结果保存到比对汉字信息库中;转到步骤1重复执行。\n以上述的笔段网格字形为基础,如图7所示,本发明提供的基于笔段网格的手写汉字识别方法具体步骤是:\n1、采用上述的基于笔段网格的汉字手写输入方法输入待识汉字,依照公式(1)获得待识汉字的笔段网格字形;\n2、对于待识汉字的笔段网格字形,以基本笔画类型表(图9)中的基本笔画为单位对有线笔段进行划分,获得该笔段网格字形的基本笔画集;\n3、对于待识汉字的笔段网格字形,在基本笔画划分基础上,再以复合笔画类型表(图10)中的复合笔画为单位对基本笔画进行划分,获得该笔段网格字形的复合笔画集;\n4、把比对字库中的每个笔段网格字形作为比对字形,将待识汉字的笔段网格字形的基本笔画、复合笔画与比对字形的基本笔画、复合笔画进行最优配对,依据配对结果计算待识字形与各比对字形的距离;\n如图8所示,具体方法是:\n4.1、读取待识汉字笔段网格字形的基本笔画集;\n4.2、读取待识汉字笔段网格字形的复合笔画集;\n4.3、判断待识汉字笔段网格字形与比对汉字信息库中的所有字形都计算距离了吗?如果都计算了距离,则跳转执行步骤5;否则,执行下一步4.4;\n4.4、取比对汉字信息库中的一个笔段网格字形作为当前的比对字形;\n4.5、将待识汉字笔段网格字形的复合笔画、基本笔画与当前比对字形的复合笔画、基本笔画进行最优配对,形成两个互不相交的笔画最优配对集:待识字形与比对字形的复合笔画最优配对集S1,待识字形与比对字形的基本笔画最优配对集S2,以及待识字形和比对字形无法配对的笔画构成的基本笔画集S3;\n4.6、依据得到的待识汉字笔段网格字形与比对字字形的笔画最优配对结果S1、S2和S3,计算待识字形与比对字形的距离;并存储计算结果;跳转到步骤4.3重复执行;\n5、取距离最小的前几个比对网格字形作为识别结果,显示出来,供输入者选择、确定。\n在本发明基于笔段网格的汉字识别方法中,需要将待识汉字的笔段网格字形和每个比对字的笔段网格字形进行基本笔画和复合笔画的划分。图9列出了基本笔画类型。基本笔画包括:横、竖、撇和捺四种;撇又包括平撇、斜撇、立撇和竖撇四种;捺也包括平捺、斜捺、立捺和竖捺四种。图10列出了12种复合笔画类型。\n在图7和图8所示的本发明基于笔段网格的汉字识别方法中,其核心特征是步骤4.5和步骤4.6,即对同一个待识汉字的笔段网格字形,能适应不同比对字形笔画划分的不同情形,将自身拆分成不同的基本笔画和复合笔画组合,从而获得与比对字形最优的笔画配对及最小的字形距离。关键步骤4.5和步骤4.6中,确定待识汉字字形与比对字形基本笔画和复合笔画最优配对划分及计算字形距离的具体方法如下:\n(1)首先以待识字形的最小外包矩形大小为基准,把比对字形的复合笔画、基本笔画外包矩形的大小、位置进行归一化处理。\n(2)依照复合笔画类型相似组列表,找出待识汉字字形与比对字形中笔画类型相同或最相似的复合笔画,两两配对,形成两字的复合笔画相似配对集合SD。这里复合笔画相似是指汉字中可以互相替换使用而不改变汉字本身(不具有辨字作用)的一组复合笔画类型,以笔画在汉字中的可替换程度来划分不同相似等级,等级相同的复合笔画类型组内的复合笔画之间具有相同的相似度,等级越大的复合笔画类型组内的复合笔画之间相似度越高。图11具体示出笔段网格字形中典型的相似复合笔画类型组。\n(3)对SD中所有复合笔画相似对(EKi,EK′j)(EKi,EK′j分别是待识字和比对字的复合笔画),计算复合笔画配对的距离D(EKi,EK′j),计算公式如下:\n其中\nDC(EKi,EK′j):EKi外包矩形与EK′j外包矩形中心点距离 (2)\n\nSIM(EKi,EK′j)=EKi与EK′j类型相似等级\n其中,SIM的取值从图11表示的表格内查找。\n(4)对不属于集合SD的待识字形与比对字形的各笔画,按基本笔画为单位进行两两配对,建立基本笔画配对集合SB,并计算基本笔画配对的距离D(Ku,Kv′),计算方法与复合笔画相同,只是把公式(2)中复合笔画EKi、EK′j替换成基本笔画Ku和Kv′来计算(Ku和Kv′分别是待识字形和比对字形的基本笔画);\n(5)根据得到的复合笔画配对距离D(EKi,EK′j)和基本笔画配对距离D(Ku,Kv′),以及设定的笔画匹配最大距离值W(可取待识字形最小外包矩形高度的1/3作为W的值),确定待识字形与比对字形最优的笔画配对划分,具体方法如下:\na)从SD里距离值小于W的所有复合笔画配对中,选取一个距离值最小的复合笔画配对加入到最优复合笔画配对集S1中,从SB里距离值小于W的基本笔画配对中选取一个距离值最小的基本笔画配对加入到最优基本笔画配对集S2中,在SD和SB中删掉包含了被选取笔画的笔画配对;\nb)检测SD与SB中是否还有距离值小于W的笔画配对,如果有,则跳转执行步骤a),否则,执行下一步骤c);\nc)把待识字形和比对字形中未加入S1和S2的基本笔画和复合笔画,以基本笔画为单位,加入到基本笔画集S3;\n如此得到的S1、S2、S3为待识字形与比对字形的最优笔画配对划分。\n(6)依据得到的待识字形与比对字字形的最优笔画配对结果S1、S2和S3,计算待识字形H与比对字形HC的距离D(H,HC),计算公式如下:\nD(H,HC)=(VD+W×SM)/L,其中,\n\nL=max(H基本笔画数,HC基本笔画数)\nSM=‖S3‖,是H与HC中无法配对的基本笔画数。\n下面以建立一个存储汉字笔段网格字形信息的字库(以下称为笔段网格字形信息库)为例来说明,本发明是如何基于笔段网格字形进行汉字识别,特别是错字识别的。\n假设计算机当前状态:要建立的笔段网格字形信息库中已经存在一个正字“合”H1(见图4所示)以及一个“合”的错字H2(见图5所示)。错字H3(见图6所示)是当前输入的待识字形。识别方法这时把该笔段网格字形信息库当作比对汉字信息库,因此,把其中的H2、H1作为比对字形,首先将待识字形H3与比对字形H2计算距离,然后再将H3与比对字形H1计算距离,最后把与H3距离最近的比对字形作为H3的识别结果显示出来。如果输入者认为H3是与识别结果都不同的字形,就把H3作为一个新字(即新的错字类型)添加到笔段网格字形信息库中。\n其中计算H3与H2两个笔段网格字形距离来比对H3与H2相似度的方法如下:\n1)如图6、图15所示,把待识字形H3的所有笔段组合划分为横(水平)、竖(竖直)、撇(左斜)、捺(右斜)四种类型的基本笔画,得到H3的基本笔画集合S(H3)。\nS(H3)={k1,k2,k3,k4,k5,k6,k7,k8},其中\n斜撇(左斜,2_1)\n斜捺(右斜,3_1)\n横(水平,0)\n横(水平,0)\n竖(竖直,1)\n横(水平,0)\n竖撇(左斜,2_3)\n横(水平,0)\n2)在H3的基本笔画集合S(H3)基础上,再把其中基本笔画组合为复合笔画,如图16所示得到H3复合笔画集合ES(H3)。\nES(H3)={ek1,ek2},\nek1={k5,k8}(竖横,10)\nek2={k6,k7}(横撇,02)\n3)如图5、图14所示,从当前比对汉字信息库中读取比对字形H2的基本笔画集合S(H2)。\nS(H2)={k1′,k2′,k3′,k4′,k5′,k6′,k7′,k8′},其中\n斜撇(左斜,2_1)\n斜捺(右斜,3_1)\n横(水平,0)\n横(水平,0)\n竖(竖直,1)\n横(水平,0)\n竖(竖直,1)\n横(水平,0)\n4)从当前比对汉字信息库中读取比对字形H2的复合笔画集合ES(H2),这里H2中无复合笔画,故ES(H2)=Φ。\n5)确定待识字形H3与比对字形H2的复合笔画、基本笔画最优配对,形成两个互不相交的笔画最优配对集:待识字形与比对字形的复合笔画最优配对集S1,待识字形与比对字形的基本笔画最优配对集S2;以及待识字形和比对字形无法配对的笔画构成的基本笔画集S3;\n(1)首先以待识字形H3的最小外包矩形大小为基准,对于比对字形H2的复合笔画、基本笔画外包矩形的大小、位置进行归一化处理。\n这里H3与H2的最小外包矩形大小已经相等,所以不再需要对H2以H3为基准做归一化处理。\n(2)依照复合笔画类型相似组列表,找出待识字形H3与比对字形H2中笔画类型相同或最相似的复合笔画,两两配对,形成两字的复合笔画相同\相似对集合SD(H3,H2);\n这里由于比对字形H2无复合笔画,即ES(H2)=Φ,故H3和H2不存在类型相同或相似的复合笔画配对,故SD(H3,H2)=Φ。\n(3)因SD(H3,H2)=Φ,无需计算复合笔画配对距离。\n(4)对不属于集合SD的待识字形H3与比对字形H2的各笔画,按基本笔画为单位进行两两配对,建立基本笔画配对集合SB(H3,H2),并计算基本笔画配对的距离D(Ku,Kv′),计算方法与复合笔画相同,只是把公式(2)中复合笔画EKi、EK′j替换成基本笔画Ku和Kv′来计算(Ku和Kv′分别是待识字形和比对字形的基本笔画);\n这里由于H3和H2不存在类型相同或相似的复合笔画配对,即SD(H3,H2)=Φ,故H3与H2的所有笔画都按基本笔画两两配对,建立基本笔画配对集合SB(H3,H2)={(k1,k1′),(k1,k2′),(k1,k3′),(k1,k4′),(k1,k5′),(k1,k6′),(k1,k7′),\n(k1,k8′),(k2,k1′),(k2,k2′),(k2,k3′),(k2,k4′),(k2,k5′),(k2,k6′),\n(k2,k7′),(k2,k8′),(k3,k1′),(k3,k2′),(k3,k3′),(k3,k4′),(k3,k5′),\n(k3,k6′),(k3,k7′),(k3,k8′),(k4,k1′),(k4,k2′),(k4,k3′),(k4,k4′),\n(k4,k5′),(k4,k6′),(k4,k7′),(k4,k8′),(k5,k1′),(k5,k2′),(k5,k3′),\n(k5,k4′),(k5,k5′),(k5,k6′),(k5,k7′),(k5,k8′),(k6,k1′),(k6,k2′),\n(k6,k3′),(k6,k4′),(k6,k5′),(k6,k6′),(k6,k7′),(k6,k8′),(k7,k1′),\n(k7,k2′),(k7,k3′),(k7,k4′),(k7,k5′),(k7,k6′) (k7,k7′),(k7,k8′),\n(k8,k1′),(k8,k2′),(k8,k3′),(k8,k4′),(k8,k5′),(k8,k6′),(k8,k7′),\n(k8,k8′)}\nH3的基本笔画k1与H2的各基本笔画kv′配对的距离计算如下(以笔段网格小矩形边长1/2为长度单位,以下均同):\nD(k1,k1′)=(DC(k1,k1′)×SZ(k1,k1′))/SIM(k1,k1′)\n =(0×1)/8=0 SIM(斜撇,斜撇)=8(从图17表示的表格内查取)\nD(k1,k2′)=(DC(k1,k2′)×SZ(k1,k2′))/SIM(k1,k2′)\n =(9×1.118)/3.776≈2.66 SIM(斜撇,斜捺)=3.776\nD(k1,k3′)=(DC(k1,k3′)×SZ(k1,k3′))/SIM(k1,k3′)\n =(4×2.3)/6.762≈1.37 SIM(斜撇,横)=6.762\nD(k1,k4′)=(DC(k1,k4′)×SZ(k1,k4′))/SIM(k1,k4′)\n =(4.472×2)/6.762≈1.32 SIM(斜撇,横)=6.762\nD(k1,k5′)=(DC(k1,k5′)×SZ(k1,k5′))/SIM(k1,k5′)\n =(7×2.3)/6.762≈2.38 SIM(斜撇,竖)=6.762\nD(k1,k6′)=(DC(k1,k6′)×SZ(k1,k6′))/SIM(k1,k6′)\n =(6×2.14)/6.762≈1.90 SIM(斜撇,横)=6.762\nD(k1,k7′)=(DC(k1,k7′)×SZ(k1,k7′))/SIM(k1,k7′)\n =(10.97×2.53)/6.762≈4.10 SIM(斜撇,竖)=6.762\nD(k1,k8′)=(DC(k1,k8′)×SZ(k1,k8′))/SIM(k1,k8′)\n =(11.18×2.3)/6.762≈3.8 SIM(斜撇,横)=6.762\n同理,可计算出H3的其它基本笔画k2到k8与H2所有基本笔画两两配对的距离值,(具体距离列表见图18)\n(5)根据得到的复合笔画配对距离D(EKi,EK′j)和基本笔画配对距离D(Ku,Kv′),以及设定的笔画匹配最大距离值W(可取待识字形最小外包矩形高度的1/3作为W的值),确定待识字形与比对字形最优的笔画配对划分,具体方法如下:\na)从SD里距离值小于W的所有复合笔画配对中,选取一个距离值最小的复合笔画配对加入到最优复合笔画配对集S1中,从SB里距离值小于W的基本笔画配对中选取一个距离值最小的基本笔画配对加入到最优基本笔画配对集S2中,在SD和SB中删掉包含了被选取笔画的笔画配对;\nb)检测SD与SB中是否还有距离值小于W的笔画配对,如果有,则跳转执行步骤a),否则,执行下一步骤c);\nc)把待识字形和比对字形中未加入S1和S2的基本笔画和复合笔画,以基本笔画为单位,加入到基本笔画集S3;\n如此得到的S1、S2、S3为待识字形与比对字形的最优笔画配对划分。\nW=H3最小外包矩形高度/3=14/3=4.67;\n由于复合笔画配对集合SD(H3,H2)=Φ,故最优复合笔画配对集S1(H3,H2)=Φ;\n由于D(k1,k1′)=D(k2,k2′)=D(k3,k3′)=D(k4,k4′)=D(k5,k5′)=0<W,故(k1,k1′)、(k2,k2′)、(k3,k3′)、(k4,k4′)、(k5,k5′)是基本笔画配对集合SB(H3,H2)中距离最小且小于W的笔画配对,故将这些笔画配对加入最优基本笔画配对集S2(H3,H2)中,并从SB(H3,H2)中删除所有包含这些笔画的配对;\n又由于D(k6,k6′)=0.075是SB(H3,H2)的剩余笔画配对中一个距离最小的配对,且D(k6,k6′)<W,故将(k6,k6′)也加入最优基本笔画配对集S2(H3,H2)中,然后从SB(H3,H2)中删除所有包含笔画k6或k6′的配对;\n重复上述选取过程,直到不再有满足条件的笔画配对为止,最终得到最优基本笔画配对集S2(H3,H2)={(k1,k1′),(k2,k2′),(k3,k3′),(k4,k4′),(k5,k5′),(k6,k6′),(k7,k7′),(k8,k8′)}\n由于H3与H2的所有笔画都找到了最优配对,故无法配对的基本笔画集S3(H3,H2)=Φ\n(6)依据上步得到的待识字形与比对字形的笔画最优配对划分S1、S2和S3,计算待识字形H与比对字形HC的距离,计算公式如下:\nD(H,HC)=(VD+W×SM)/L,其中,\n\nL=max(H基本笔画数,HC基本笔画数)\nSM=‖S3‖,是H与HC中无法配对的基本笔画数。\n这里,VD=0+D(k1,k1′)+D(k2,k2′)+D(k3,k3′)+D(k4,k4′)+D(k5,k5′)+D(k6,k6′)\n+D(k7,k7′)+D(k8,k8′)≈0.075+0.13+0.14=0.345\nL=8\nW=4.67\nSM=0\nH3与H2的字形距离D(H3,H2)=(VD+W×SM)/L=(0.345+4.67×0)/8=0.345/8≈0.043,字形距离值越小,则H3与H2的字形相似度越高。\nH3与H2比对完成后,再计算H3与H1两个笔段网格字形的距离来比对H3与H1的相似度,具体方法如下:\n如图4和图12所示,正字“合”(用H1表示)的基本笔画集合S(H1)为:\nS(H1)={k1″,k2″,k3″,k4″,k5″,k6″,k7″},其中\n斜撇(左斜,2_1)\n斜捺(右斜,3_1)\n横(水平,0)\n竖(竖直,1)\n横(水平,0)\n竖(竖直,1)\n横(水平,0)\n如图13所示,正字“合”H1的复合笔画集合ES(H1)为:\nES(H1)={ek1″,ek2″}\nek1″={k4″,k7″} (竖横,10)\nek2″={k5″,k6″} (横竖,01)\n如图16所示,待识字H3的复合笔画集合ES(H3)为:\nES(H3)={ek1,ek2},\nek1={k5,k8}(竖横,10)\nek2={k6,k7}(横撇,02)\n确定待识字H3与比对字H1的复合笔画、基本笔画最优配对:\n这里H3与H1的最小外包矩形大小也相等,所以不再需要对H1各复合笔画、基本笔画外包矩形大小、位置以H3为基准做归一化处理。\n依照复合笔画类型相似组列表,找出待识字形H3与比对字形H1中笔画类型相同或最相似的复合笔画,两两配对,形成这两字的复合笔画相同\相似对集合SD(H3,H1)={(ek1,ek1″),(ek2,ek2″)},即“(竖横,竖横)”和“(横竖,横撇)”两个配对。\n计算SD(H3,H1)中的复合笔画配对距离:\n由于复合笔画ek1与ek1″在H3、H1中位置、大小相同,故DC(ek1,ek1″)=0,SZ(ek1,ek1″)=1\nD(ek1,ek1″)=(DC(ek1,ek1″)×SZ(ek1,ek1″))/SIM(ek1,ek1″)\n =(0×1)/5 SIM(竖横,竖横)=5\n =0\nD(ek2,ek2″)=(DC(ek2,ek2″)×SZ(ek2,ek2″))/SIM(ek2,ek2″)\n =(0.5×1.069)/5 SIM(横竖,横撇)=5\n =0.1069\n对集合SD(H3,H1)以外的基本笔画,H3有k1,k2,k3,k4,H1还有k1″,k2″,k3″,两两配对,建立基本笔画配对集合SB(H3,H1)={(k1,k1″),(k1,k2″),(k1,k3″),(k2,k1″),(k2,k2″),(k2,k3″),(k3,k1″),(k3,k2″),(k3,k3″),(k4,k1″),(k4,k2″),(k4,k3″)}\n计算SB(H3,H1)中所有配对距离(具体距离列表见图19)。\n由于D(ek1,ek1″)=0<W,D(ek2,ek2″)=0.1069<W,得到H3与H1最优复合笔画配对集S1(H3,H1)={(ek1,ek1″),(ek2,ek2″)};\n由于D(k1,k1″)=D(k2,k2″)=D(k4,k3″)=0<W,得到H3与H1最优基本笔画配对集S2(H3,H1)={(k1,k1″),(k2,k2″),(k4,k3″)};\n由于H3中笔画k3无法形成最优配对,加入基本笔画集S3(H3,H1),故S3(H3,H1)={k3};\n最后依据H3与H1的最优笔画配对划分S1(H3,H1)、S2(H3,H1)和S3(H3,H1),计算得到H3与H1的字形距离:\nD(H3,H1)=(VD+W×SM)/L\nVD=D(ek1,ek1″)+D(ek2,ek2″)+D(k1,k1″)+D(k2,k2″)+D(k4,k3″)=0.1069\nL=max(8,7)=8\nSM=‖S3(H3,H1)‖=1\nD(H3,H1)=(VD+W×SM)/L=(0.1069+4.67×1)/8≈0.597\n从上述H3与H2的字形距离D(H3,H2),H3与H1的字形距离D(H3,H1)可以看出,图6所示的汉字H3与图5所示的汉字H2最相似,其次,与图4所示的汉字H1最相似,最后,计算机会将与待识汉字H3最相似的汉字依次显示出来,供输入者选择、确定。\n如果把汉字部件输入作为待识字形,同样采用图7、图8所示的汉字识别方法,可以实现从整字中识别汉字部件的功能,具体方法如下:采用上述识别方法对当前笔段网格字形库中各字形进行识别,只是步骤4.5中S3只加入待识字形中无法形成最优配对基本笔画,而不加入比对字形中无法形成最优配对的笔画,最后步骤5中把能与待识字形所有笔画实现最优配对的那些比对字形作为识别结果。如输入汉字部件“人”(“合”的上部)作为待识字形H4,与当前笔段网格字形库中比对字形H2、H1进行识别时,待识字形H4中两笔画(“撇”和“捺”)都能与比对字形H2、H1中笔画构成最优配对,因此,H4中不存在无法配对的笔画,但比对字形H2中存在无法配对的笔画k3′、k4′、k5′、k6′、k7′、k8′,H1中存在无法配对的笔画k3″、k4″、k5″、k6″、k7″,步骤4.5中计算待识字形H4与比对字形H2、H1无法配对笔画集合时,只加入待识字形H4中无法配对的笔画,而不加入比对字形中无法配对的笔画,因此,S3(H4,H2)=Φ,S3(H4,H1)=Φ,最后步骤5中,不再计算字形距离,把能与待识字形所有笔画实现最优配对的那些比对字形(即S3=Φ的所有比对字形)作为识别结果显示出来。这样可以得到包含待识字形H4(即汉字部件“人”)的所有整字H2、H1。\n本发明采用行笔方法受约束的手写方式来输入汉字,得到一种笔画规整的汉字形式,称为汉字的笔段网格字形,并基于笔段网格字形进行相似度比对来支持汉字的识别,这一方法的特征是不仅能输入正字,更主要是能输入错字、异体字和拼合字等特殊汉字,并支持字形相似度的比对,解决了计算机特殊汉字输入、显示和比对相似度等问题。\n汉字教学研究人员可采用本发明提供的方法建立外国学生作文典型错字的笔段网格字形信息库,并支持错字字形的相似度比对,从而为完成外国学生作文语料库的错字相关分析、研究任务以及建立汉字书写计算机辅助学习系统提供了一种有效解决方案。\n以上所述是本发明的具体实施例及所运用的技术原理,任何基于本发明技术方案基础上的等效变换,均属于本发明保护范围之内。