汉字自动拆分原理
引言
基于汉字编码的输入方案是用户向计算机中输入汉字的重要渠道。在一个典型的输入方案制作过程中,作者首先根据一定的规则完成给定字集下汉字的手动拆分,得到一张「拆分表」,然后将字根在键盘上进行布局,得到最终的编码。这样做的不便之处是显而易见的:
- 初次拆分需要消耗大量人力;
- 增减字根需要进行大量调整;
- 无法自由改变拆分规则;
- 人工拆分导致了很多汉字拆分的随意性,导致用户难以快速掌握。
因此,一种高效通用的自动拆分方法将有利于汉字编码输入方案的发展。下面我们将从理论上给出一种可能的自动拆分算法。为简化问题,我们假定我们所处理的拆分以笔画为最小单位。
汉字自动拆分系统原理
拆分三要素
定义 (笔画) 由一段或多段曲线首尾相接组成的几何图形,通常记作 。
定义 (汉字) 由一个或多个笔画在平面上按一定顺序在给定位置上排布 组成的几何图形,通常记作 。本文中「汉字」特指 GB 字集内的汉字。
定义 (笔画序列) 汉字 所包含的笔画形成的序列 。
定义 (切片) 由汉字 中的一个或多个笔画在平面上按一定顺序在给定位置上排布组成的几何图形,且这一顺序与汉字 的笔顺相同。记由第 个笔画构成的切片为 ,我们同样定义它的笔画序列为
定义 (拆分) 给定汉字 ,我们称由 个切片构成的 元组 是一个拆分,当且仅当任两个切片无共同笔画,且所有切片所含的笔画的并集等于汉字 的所有笔画。
定义 (拆分集) 给定汉字 ,由所有可能拆分 构成的集合 。
拆分第一要素:字根集
定义 (字根) 我们指定某些汉字以及某些汉字的切片作为字根,通常记作 。
定义 (字根集) 所有我们指定的字根构成一个集合 。