汉字自动拆分论文
汉字拆分自动化综述
据笔者了解,在长期实践过程中前人提出了两种有价值的通往自动拆分实践,分别称为「嵌套拆分」和「笔画表达式」。
嵌套拆分
这一方法的来源已不可考。在较为有名的方案中,徐码是基于这一方法的。
GB 字集的汉字 90% 以上都是形声字、会意字等合体字,这些字可以自然划分成两个 小一些的字,而小字又能划分成更小的字,最终得到 700 左右基本部件。对于形码中的「拆字」,大多是针对这 700 基本部件而言的,很少有跨过自然分部界限的拆分。
当我们完成 700 基本部件的拆分之后,结合适当的部件组合的结构信息,理论上我们可以确定剩下的 6000 字的拆分结果;因而可以大大减少工作量。但是:
- 仍然需要手工拆分很多字,遇到改拆分规则等情况,一样无能为力;
- 不能保证自然分部的正确性,保不齐就会有一些合乎规则的拆分跨过分部界限,而作者通常意识不到这一点,造成编码错误。
笔画表达式
这一方法由法月(百度贴吧用户名:逆卷炎灵)在输入法吧的讨论中首次提出。
汉字是写出来的,是一笔一画写的,所以汉字无非就是笔画种类信息和笔画之间位置关系信息的堆砌。如果我们找到一种方法把这些信息完整地记录下来作为一个包含若干对象的数据库,而拆字就是字对象和字根对象之间的运算,而拆分规则可以通过描述字根对象的若干特征来引入。
笔者曾成功实现过这种方法,并意识到它存在一定的优势:
- 如果要增加字根,只需要添加一个字根对象,然后会自动根据运算规则给出新的拆分结果;
- 改动拆分规则时,只需要改动拆分规则算法,而不需要改动数据库。
但是,在实际应用中,笔者发现:
- 将复杂的、准连续的汉字图形信息量化时,很难做到不损失信息。如果损失了信息,很可能导致人能够区分开的不同汉 字计算机区分不开。
- 因此,很难控制好表达式中到底要加入多少信息。比如,两个笔画在何处相交,在正中间相交还是偏左偏右,这个信息要不要记录?不记录,有些情况分不开;记录,有些情况又分得太开,不符合习惯……
- 最重要的是,判断什么样的字或字根需要区分本来是因人而异的事情。有的作者可能觉得「上横比下横长」就不叫字根「二」了,有人觉得还叫「二」……但是如果用了笔画表达式,相当于把表达式编写者一个人的判断标准强加给了所有人。
吸取笔画表达式的失败经验,我们可以得出结论:如果要实现自动拆分,其核心数据库必然是非量化的。
直线与直线
设直线 和 是以 以及 确定的直线,那么它们相交的条件可以表示为: