进阶讨论
字形差异
汉字具有多态性。同一个汉字,在不同的标准、不同的字体下,存在一定的差别。有些字形上的差别,通过 Unicode 的离散来实现。比如户
戶
戸
三字,在 Unicode 里被安排在了不同的码位上,故而实现了分离。但是很多汉字的不同字形,却共用 Unicode 码位(这其实是 CJK 的初衷),那么这个字到底应该依照哪个标准来拆分,便成了问题。
宇浩输入法的规定是:
- 每个字都有一种标准拆法,字形标准取自:The Unicode Standard, Version 15.0。各地区优先级降序为:GTHJKV,即陆、台、港、日、韩、越。也就是说,如果存在大陆提交的标准,就依照大陆标准。如果大陆没有提交标准,就按照台湾标准。依此类推。
- 每个字都可能有若干兼容拆法,目的是兼容台湾、香港、大陆古籍的字形标准。比如
起
=走己
(大陆标准)和起
=走巳
(台湾标准)兼收。
宇浩输入法的笔顺选取,依照大陆标准《GF 3003-1999 GB13000.1 字符集汉字字序(笔画序)规范》。同时,也兼容台湾标准的笔顺。
例
比如攀 = 木乂乂木手
(大陆标准)和攀 = 乂乂木木手
(台湾标准)兼收。
比如與 = ⺽丂丄八
(大陆标准)和與 = 丂丿⺽一八
(台湾标准)兼收。
书体差异
某些字根,即使在相同的规范下,也会楷体和宋体的不同而产生微小差异。这些差异往往会影响对于「散」「连」的判断。我们主要以宋体为准(也是 CJK 的书体)进行拆分,同时有以下考量。
散连认定
⼇
作头时的丶一
,无论书体,一概视为「散」。✅ ❌䒑
作头时的丷一
是艹
的草化,无论书体,一概视为「连」。✅ ❌龷
在字中时的艹一
,无论书体,一概视为「连」。✅ ❌
局部笔顺
指的是不被打断的字根尽量多。这是为了防止以下情况,一个字 A 有 X Y 两个离散部分构成,X 部分拆 X1 X2,根少但不符合笔顺。Y 部分,可以拆 Y1 Y2,符合笔顺,且字根相交;或拆 Y3 Y4,不符合笔顺,但字根分散。如果必须满足整体符合笔顺,则 Y 拆 Y1 Y2 虽然符合笔顺,但由于 X 不符合笔顺,A 整体依旧不符合笔顺。那么 Y 应该拆成 Y3 Y4,因为能散不交。这样一来,Y 作为独体字和 Y 作为 A 的一部分时,拆分不一致,我们需要避免这种情况。这就是检查局部笔顺的原因。
字根的内在属性
上面我们提到了宇浩输入法拆字规则的优先级。其实,在「字根最少」之上,还有一个隐藏的原则,也就是:字根的内在属性。
何为字根的内在属性?其实就是指某一个字根区别于另一个字根的内在特点。
例
吉
拆成士口
而不是土口
,周
拆成⺆土口
而不是⺆士口
,这是因为土
的下面一笔更长,而士
的下面一笔更短。这是区别两个字根的本质原因和内在属性。
「内在属性」可以解释为什么有些字这样拆而不是那样拆,有些字为什么看上去违反了「字根最少」的原则。
例
敝
拆为丷巾八攵
而非氺巾攵
,这看似违反了「字根最少」原则,但其实没有。注意到,敝
字左下的笔画是撇不是提;在氺
中,左下角的笔画是提不是撇。故而,敝
字里并不存在氺
字根。正因为如此,我们取四根丷巾八攵
而非三根氺巾攵
。
在这个章节,我们就详细讨论字根的内在属性,讨论某些字根在宇浩拆分中被分离或者被合并的原因,从而让某些字的拆分原因更加明确。
日曰之辨
不少输入法对与日
曰
两字的区分,比较复杂。大概有两种情况:
- 有些是基于形状的,凡是长大于高的都为
曰
,凡是长短于高的都为日
。但这个方法会跟随着字体的不同而不同,有时候不合字源,也不统一。例如:書
字源于聿者
,曹
古字为东东口
。 - 另外一种区分方法是基于字源。也就是说:凡是在古文中作
口
形,之后隶变为曰
形或甘
形的字,都作曰
。但这个方法对方一般的使用者难度太大,且分析字源会有疏漏之处,不应用于输入法。
我们必须注意到,在汉字中,存在日曰
对立的字形,只有三组,分别为:日曰
、汨汩
、曶㫚
。在其他的情况下,不存在对立,也就不存在混淆问题。
因此,我基于实用主义原则,对这两个字根不多加以区分,而采取更简单的方法。即:除了上述三组对立情况外,全部取日
根。换句话说,曰
根只需要在对立情况下才会使用,即:曰
汩
㫚
三个字。
这样一来,可以显著降低使用者的记忆和学习负担。
勹之辨
旬
的外框勹
,同敖
左下的勹
都是撇加横折钩。宇浩输入法不做区分。
点之辨
这里对含点字根的识别和归并作出解释。
含点字根
- 单点
丶
和捺乀
视为同一个字根。 - 相重叠的两点,即
头
冬
中的部分,和二
同码位。 - 左对点
冫
和右对点飞右
,和二
同码位。 - 下对点
八
为一个字根。 - 上对点
丷
䒑
リ
同大码。 - 左
⺦
为一个字根。 - 左三点
氵
都在一个大码。 - 上三点
ッ𠁼
都在一个大码。 - 所有四点
灬
都在一个大码。
为
卵
等字的两点和冬
下的两点不同,非连续笔画,且被半包围或全包围分割,故而不认定为「两点」。详「散件不分隔」禁手。
人八入之辨
人
八
入
三字易混,这里做出区分。
左撇右捺
凡左撇不低于右捺,视作
人
根。凡左撇低于右捺,视作
入
根。凡左撇右捺分离,视作
八
根。凡左撇右捺的中间被其他笔画隔开,视作
<丿乀>
根。宇码中,它和八
同大小码。
口中无整画
口(音kǒu
),囗(音wéi
)。这两个根如何区分?
答案是,如果方框里有完整的笔画,用囗
wéi
。否则一律用口
kǒu
。
例
国
字中,有完整的笔画,故而必须用囗
wéi
。 中
字中,虽然⼁
穿口
而过,但并未被完全包含在口
中。由于口
中没有完整的笔画,故而用口
kǒu
。
此规定也适用于另外几个包含口
的字根。
例
古
下的口
中如果包含完整的笔画,应该拆如十囗
。例如:鄙
左下方的口
中有口
,故而应该拆成口十囗口阝
。✅ ❌合
下的口
中如果包含完整的笔画,应该拆如人一囗
。例如:會
中间的口
中有小
,故而应该拆成人一日。✅ ❌
汉字的拆分禁手
拆分之「禁手」,指的是无论任何时候都不应当出现一些拆分情形。它高于一切拆分规则。一旦某一个拆分候选中出现了「禁手」,则直接淘汰。禁手包括:散件不分割、竖向不包夹、横间不穿心。
散件不分割
有一部分字根,本身存在离散的部件,比如戈
字右上的点、犬
字的右上的点、三
字的三个横等等。为了保证拆字的直观,保证检字(尤其是大字集下)的便捷性,我们需要对字根的连续性做出要求,并将它认定为字根的内在属性。
字根的连续性定义如下:
非连续写成、且被全包围结构或半包围结构分割的部件,不视为一个字根。
例
为
字的两点不可以被视为字根两点
,因为它们非连续写成、且被半包围结构分割。
卵
字不拆卯⺀
而拆成卯丶丶
,因为卯
字的两点非连续写成、且被半包围结构分割。
竖向不包夹
不少字根中存在若干分散的部件。
例
二
和三
中的横画是分离的。
合
分为了人
一
口
三个部分。
儿
分为了丿
乚
两个部分。
这给了它们包夹其他字根的可能。如亘
可看成二
包夹日
。
为了防止拆分不直观,我们做出规定,一个字根可以横向包夹,但不能纵向包夹。
例
卿
= 卯彐厶
胤
= 儿幺月
亘
= 一日一
僵
= 亻一田一田一
这是因为,汉字的左右对称多于上下对称。左右包夹是可预测的,但上下包夹往往不可预测,必须要观察到最下方。
如果设置了衣字根
某些输入法设置了衣下
字根,但亠
和𧘇
的出现并不总是成对的,必须看到最下方才能正确判断。
横间不穿心
为了使拆分更加直观,符合笔顺,防止字根交叉粘连,我们规定:
工土士干千禾キ王壬龶丰末未生古矢缶早羊虫
等字根不允许在一一
间穿插其他字根。
这个规定在常用字中比较少用。
例
再
不拆王冂
,而拆一冂土
垂
不拆壬龷
,而拆千龷一
禹
不拆丿虫冂
,而拆丿口冂<丄丶>
妻
不拆 キコ女
或龶乛女
,而拆十彐女
。
归并聚类
归并有两种:
- 依字源归并。指的是将字源相关的部首(部件)视为同一个字根,赋与相同的编码(大码+小码)。
- 依字形归并。指的是将字形相近的部首(部件)视为同一个字根,赋与相同的编码(大码+小码)。
聚类,指的是将字形相近的部首(部件)视为同一类字根,赋与相同的大码。
宇浩的字根设计,是轻归并、重聚类的。
选择「重聚类」的原因,主要是对了降低初学者的学习难度。初学者,要同时记忆字根编码、拆分规则、编码规则。这个思维负担很大,因此,将相似字根放在一个大码上,有利于联想记忆。
例
以下四字的第一个字根,都包括了广
的特性,因此放在同一个大码上,有利于记忆。用户只要记住广
的位置,便知道了其他三个字根的位置。
以下四字的第一个字根,都包括了丆
的特性,因此放在同一个大码上,有利于记忆。用户只要记住丆
的位置,便知道了其他三个字根的位置。
以下四个字根,都包括了目
的特性,因此放在同一个大码上,有利于记忆。用户只要记住目
的位置,便知道了其他三个字根的位置。
选择「轻归并」的原因,主要是以下几点:
一、字源归并有时会导致繁简字根(部首)同码。好处是用户可以少记20个繁体字根鳥烏魚馬風來車長門鬥齒飛見貝鹵僉韋咼黽
。缺点是部分繁简汉字无法有效分离,和宇码设计理念不符。
例
按字源归并后,以下汉字必定重码。
二、部首字源归并会导致大量字形不相近的字根(部首)被识别出来,成为「隐藏根」,这部分字根主要位于大字集。有时候,这些根比较直观;但有时候,需要一定经验才能知道这个根是否已经被归并,还是需要继续拆分。增加记忆负担,降低大字集检字效率。比如:乕𠁅處𭅍𭙧
等字的头部,虽写法相异,但源头相同。打字中,它们是否是一个字根,需要用户有一定的了解。
三、因为汉字演变,部分部首写法相同,但源流各异;部分部首写法相异,但源流相同。这可能会造成用户的记忆负担。
当然,归并还是有相当价值的,特别是当字形非常接近,一般人甚至无法意识到其区别的时候,就算其字源不一、读音迥异,也应当归并。
例
以下两字的右边部首,一个是𠤎
(ㄏㄨㄚ),一个是匕
(ㄅㄛ)。较难区分,故而合为一个字根匕
。