Skip to content

進階討論

字形差異

漢字具有多態性。同一個漢字,在不同的標準、不同的字體下,存在一定的差別。有些字形上的差別,通過 Unicode 的離散來實現。比如 三字,在 Unicode 裡被安排在了不同的碼位上,故而實現了分離。但是很多漢字的不同字形,卻共用 Unicode 碼位(這其實是 CJK 的初衷),那麽這個字到底應該依照哪個標準來拆分,便成了問題。

宇浩輸入法的規定是:

  • 每個字都有一種標準拆法,字形標準取自:The Unicode Standard, Version 15.0。各地區優先級降序爲:GTHJKV,即陸、臺、港、日、韓、越。也就是説,如果存在大陸提交的標準,就依照大陸標準。如果大陸沒有提交標準,就按照臺灣標準。依此類推。
  • 每個字都可能有若干兼容拆法,目的是兼容臺灣、香港、大陸古籍的字形標準。比如 = 走己(大陸標準)和 = 走巳(臺灣標準)兼收。

宇浩輸入法的筆順選取,依照大陸標準《GF 3003-1999 GB13000.1 字符集漢字字序(筆畫序)規範》。同時,也兼容臺灣標準的筆順。

比如攀 = 木乂乂木手(大陸標準)和攀 = 乂乂木木手(臺灣標準)兼收。

比如與 = ⺽丂丄八(大陸標準)和與 = 丂丿⺽一八(臺灣標準)兼收。

書體差異

某些字根,即使在相同的規範下,也會楷體和宋體的不同而產生微小差異。這些差異往往會影響對於「散」「連」的判斷。我們主要以宋體爲準(也是 CJK 的書體)進行拆分,同時有以下考量。

散連認定

  1. 作頭時的丶一,無論書體,一概視爲「散」。

  2. 作頭時的丷一的草化,無論書體,一概視爲「連」。

  3. 在字中時的艹一,無論書體,一概視爲「連」。

局部筆順

指的是不被打斷的字根儘量多。這是爲了防止以下情況,一個字 A 有 X Y 兩個離散部分構成,X 部分拆 X1 X2,根少但不符合筆順。Y 部分,可以拆 Y1 Y2,符合筆順,且字根相交;或拆 Y3 Y4,不符合筆順,但字根分散。如果必須滿足整體符合筆順,則 Y 拆 Y1 Y2 雖然符合筆順,但由於 X 不符合筆順,A 整體依舊不符合筆順。那麽 Y 應該拆成 Y3 Y4,因爲能散不交。這樣一來,Y 作爲獨體字和 Y 作爲 A 的一部分時,拆分不一致,我們需要避免這種情況。這就是檢查局部筆順的原因。

字根的內在屬性

上面我們提到了宇浩輸入法拆字規則的優先級。其實,在「字根最少」之上,還有一個隱藏的原則,也就是:字根的內在屬性

何爲字根的內在屬性?其實就是指某一個字根區別於另一個字根的內在特點。

拆成士口而不是土口拆成⺆土口而不是⺆士口,這是因爲的下面一筆更長,而的下面一筆更短。這是區別兩個字根的本質原因和內在屬性。

「內在屬性」可以解釋爲什麽有些字這樣拆而不是那樣拆,有些字爲什麽看上去違反了「字根最少」的原則。

拆爲丷巾八攵而非氺巾攵,這看似違反了「字根最少」原則,但其實沒有。注意到,字左下的筆畫是撇不是提;在中,左下角的筆畫是提不是撇。故而,字裡並不存在字根。正因爲如此,我們取四根丷巾八攵而非三根氺巾攵

在這個章節,我們就詳細討論字根的內在屬性,討論某些字根在宇浩拆分中被分離或者被合併的原因,從而讓某些字的拆分原因更加明確。

日曰之辨

不少輸入法對與 兩字的區分,比較複雜。大概有兩種情況:

  • 有些是基於形狀的,凡是長大於高的都爲,凡是長短於高的都爲。但這個方法會跟隨着字體的不同而不同,有時候不合字源,也不統一。例如:字源於聿者古字爲东东口
  • 另外一種區分方法是基於字源。也就是説:凡是在古文中作形,之後隸變爲形或形的字,都作。但這個方法對方一般的使用者難度太大,且分析字源會有疏漏之處,不應用於輸入法。

我們必須注意到,在漢字中,存在日曰對立的字形,只有三組,分別爲:日曰汨汩曶㫚。在其他的情況下,不存在對立,也就不存在混淆問題。

因此,我基於實用主義原則,對這兩個字根不多加以區分,而採取更簡單的方法。即:除了上述三組對立情況外,全部取根。換句話説,根只需要在對立情況下才會使用,即: 三個字。

這樣一來,可以顯著降低使用者的記憶和學習負擔。

勹之辨

的外框,同左下的都是撇加橫折鉤。宇浩輸入法不做區分。

點之辨

這裡對含點字根的識別和歸併作出解釋。

含點字根

  • 單點和捺視爲同一個字根。
  • 相重疊的兩點,即 中的部分,和同碼位。
  • 左對點和右對點飞右,和同碼位。
  • 下對點爲一個字根。
  • 上對點 同大碼。
  • 爲一個字根。
  • 左三點都在一個大碼。
  • 上三點ッ𠁼都在一個大碼。
  • 所有四點都在一個大碼。

等字的兩點和下的兩點不同,非連續筆畫,且被半包圍或全包圍分割,故而不認定爲「兩點」。詳「散件不分隔」禁手

人八入之辨

三字易混,這裡做出區分。

左撇右捺

  1. 凡左撇不低於右捺,視作根。

  2. 凡左撇低於右捺,視作根。

  3. 凡左撇右捺分離,視作根。

  4. 凡左撇右捺的中間被其他筆畫隔開,視作<丿乀>根。宇碼中,它和同大小碼。

口中無整畫

口(音kǒu),囗(音wéi)。這兩個根如何區分?

答案是,如果方框裡有完整的筆畫,用 wéi。否則一律用 kǒu

字中,有完整的筆畫,故而必須用 wéi字中,雖然穿而過,但並未被完全包含在中。由於中沒有完整的筆畫,故而用 kǒu

此規定也適用於另外幾個包含的字根。

  • 下的中如果包含完整的筆畫,應該拆如十囗。例如:左下方的中有,故而應該拆成口十囗口阝
  • 下的中如果包含完整的筆畫,應該拆如人一囗。例如:中間的中有,故而應該拆成人一日

漢字的拆分禁手

拆分之「禁手」,指的是無論任何時候都不應當出現一些拆分情形。它高於一切拆分規則。一旦某一個拆分候選中出現了「禁手」,則直接淘汰。禁手包括:散件不分割、豎向不包夾、橫間不穿心。

散件不分割

有一部分字根,本身存在離散的部件,比如字右上的點、字的右上的點、字的三個橫等等。爲了保證拆字的直觀,保證檢字(尤其是大字集下)的便捷性,我們需要對字根的連續性做出要求,並將它認定爲字根的內在屬性。

字根的連續性定義如下:

非連續寫成、且被全包圍結構或半包圍結構分割的部件,不視爲一個字根。

字的兩點不可以被視爲字根两点,因爲它們非連續寫成、且被半包圍結構分割。

字不拆卯⺀而拆成卯丶丶,因爲字的兩點非連續寫成、且被半包圍結構分割。

豎向不包夾

不少字根中存在若干分散的部件。

中的橫畫是分離的。

分爲了 三個部分。

分爲了丿 兩個部分。

這給了它們包夾其他字根的可能。如可看成包夾

爲了防止拆分不直觀,我們做出規定,一個字根可以橫向包夾,但不能縱向包夾

= 卯彐厶

= 儿幺月

= 一日一

= 亻一田一田一

這是因爲,漢字的左右對稱多於上下對稱。左右包夾是可預測的,但上下包夾往往不可預測,必須要觀察到最下方。

如果設置了衣字根

某些輸入法設置了衣下字根,但𧘇的出現並不總是成對的,必須看到最下方才能正確判斷。

橫間不穿心

爲了使拆分更加直觀,符合筆順,防止字根交叉粘連,我們規定:

工土士干千禾キ王壬龶丰末未生古矢缶早羊虫等字根不允許在一一間穿插其他字根。

這個規定在常用字中比較少用。

不拆王冂,而拆一冂土

不拆壬龷,而拆千龷一

不拆丿虫冂,而拆丿口冂<丄丶>

不拆 キコ女龶乛女,而拆十彐女

歸併聚類

歸併有兩種:

  1. 依字源歸併。指的是將字源相關的部首(部件)視爲同一個字根,賦與相同的編碼(大碼+小碼)。
  2. 依字形歸併。指的是將字形相近的部首(部件)視爲同一個字根,賦與相同的編碼(大碼+小碼)。

聚類,指的是將字形相近的部首(部件)視爲同一類字根,賦與相同的大碼。

宇浩的字根設計,是輕歸併、重聚類的。

選擇「重聚類」的原因,主要是對了降低初學者的學習難度。初學者,要同時記憶字根編碼、拆分規則、編碼規則。這個思維負擔很大,因此,將相似字根放在一個大碼上,有利於聯想記憶。

以下四字的第一個字根,都包括了广的特性,因此放在同一個大碼上,有利於記憶。用戶只要記住广的位置,便知道了其他三個字根的位置。

以下四字的第一個字根,都包括了的特性,因此放在同一個大碼上,有利於記憶。用戶只要記住的位置,便知道了其他三個字根的位置。

以下四個字根,都包括了的特性,因此放在同一個大碼上,有利於記憶。用戶只要記住的位置,便知道了其他三個字根的位置。

選擇「輕歸併」的原因,主要是以下幾點:

一、字源歸併有時會導致繁簡字根(部首)同碼。好處是用戶可以少記20個繁體字根鳥烏魚馬風來車長門鬥齒飛見貝鹵僉韋咼黽。缺點是部分繁簡漢字無法有效分離,和宇碼設計理念不符。

按字源歸併後,以下漢字必定重碼。

二、部首字源歸併會導致大量字形不相近的字根(部首)被識別出來,成爲「隱藏根」,這部分字根主要位於大字集。有時候,這些根比較直觀;但有時候,需要一定經驗才能知道這個根是否已經被歸併,還是需要繼續拆分。增加記憶負擔,降低大字集檢字效率。比如:乕𠁅處𭅍𭙧等字的頭部,雖寫法相異,但源頭相同。打字中,它們是否是一個字根,需要用戶有一定的瞭解。

三、因爲漢字演變,部分部首寫法相同,但源流各異;部分部首寫法相異,但源流相同。這可能會造成用戶的記憶負擔。

當然,歸併還是有相當價值的,特別是當字形非常接近,一般人甚至無法意識到其區別的時候,就算其字源不一、讀音迥異,也應當歸併。

以下兩字的右邊部首,一個是𠤎(ㄏㄨㄚ),一個是(ㄅㄛ)。較難區分,故而合爲一個字根

宇浩输入法官网