單字拆分
共用拆分
宇浩系列的所有輸入法,都使用相同的單字拆分規則。因此,本拆分教程對星陳輸入法、光華輸入法、卿雲輸入法、日月輸入法、吉旦餅輸入法全部適用。
漢字拼圖
先前説過,拆字,就是把漢字按照一定的規則,拆成唯一的字根組合。這個過程如同拼圖一般,大多數時候,是非常直觀而自然的。
例
這種將字拆成直觀的、分離的部件的方法,足以應付大部分漢字的拆分了。但在實際使用中,遇到這個問題:一個獨體字,本身不是字根,怎麽辦?這時候,我們要把它繼續拆成更小的字根甚至筆劃。
例
戋這個字,我們可以繼續將它拆成一和戈。查字根圖可知,一和戈正好是兩個字根,拆字成功。
丸這個字,我們可以繼續將它拆成九和丶。查字根圖可知,九和丶正好是兩個字根,拆字成功。
朱這個字,我們可以繼續將它拆成牛和八。查字根圖可知,牛和八正好是兩個字根,拆字成功。
有時候,獨體字的拆分不是很直觀。比如再可以拆成一冂土,也可以拆成王冂。遇到此類字時的拆分,往往需要一些經驗和練習。所以當你遇到不會拆的字時,應該主動查詢它的編碼,及時學習。
更麻煩的情況是,一個字好像有幾種拆分方法。
例
井,可以拆二{介下},也可以拆一廾。
单可以拆成丷日十也可以拆成丷冂丰。
主可以拆成丶王也可以拆成亠土。
這種一字多拆的情況,任何形碼中,都是希望避免的。因爲一字多拆,會造成極大的不確定性,並造成編碼的混亂[1]。
宇浩輸入法總結了拆字規則,並且不斷自我審視每一個拆分是否符合規則。通過大量的努力,明確了一套優先級系統。使每一個漢字,都有唯一的拆分方案,消除了不確定性[2]。
拆字優先級
「宇浩」拆字規則,按優先級排序如下:
- 字根最少
- 結構完整
- 符合筆順
- 散連交斷
- 字根取大
以上優先級,還可以高度歸納爲:少整順散連交斷大。
取根時,如果有多種不同的拆分方式,則按優先級從高到低依次檢查以上規則,選取符合條件的,排除不滿足的,最終得到唯一的拆分方案。因此,某種意義上來説,宇浩輸入法的拆分規則,其實是一種「比較和淘汰」的排除法,後文中會展示這些步驟的機器實現。
以下爲拆分規則詳細介紹[3]:
字根最少
字根最少,意思是拆分一個字時,應該使得字根的數量最少。保證字根數量最少,是第一優先級最高的規則。
例
国如果完全符合筆順,應該拆成冂王丶一,是四個字根。但拆成囗王丶,只用三個字根就夠了。因爲「少」優先級高於「順」,所以應該拆成囗王丶。
國如果完全符合筆順,應該拆成冂一口一𠄌丿丶一,是八個字根。但拆成囗戈口一,只用四個字根就夠了。因爲「少」優先級高於「順」,所以拆成囗戈口一。
結構完整
結構完整,指的是囗日目勹冂匚コ凵等存在全包圍和半包圍結構的字根不拆散。
這個原則的設置,是爲了不過分破壞漢字的整體性和直觀性。
例
昜拆日一勹彡不拆日丆𠃌彡。
单可以拆成丷日十也可以拆成丷冂丰。兩者都是三根。因爲包圍結構不拆散,故而单拆成丷日十。
免可以拆成⺈口儿也可以拆成⺈冂尢。兩者都是三根。因爲包圍結構不拆散,故而免拆成⺈口儿。
万拆成一勹而非{一丿}乛。因爲前者不僅完全符合筆順,同時也保持了結構完整。
匹拆匚儿而不拆兀乚,因爲前者結構完整。
符合筆順
注意到,爲了使字根數量較少,某些大於等於兩劃的字根,它的筆順可能會被另一個或多個字根穿插打斷。比如固字拆囗古時,囗不是一次性寫完,而是分成俩次寫完的。
符合筆順,指的是字根之間不穿插寫成[4]。它有兩種情況:
- 整體符合筆順:指一個字完全按照筆順寫成,字根間不會互相干擾筆順。
固字如拆冂古一,便算作整體符合筆順。 - 局部符合筆順:指一個字雖不能完全按照筆順寫成,但局部字根符合筆順。
固字如拆囗古,便算作局部符合筆順,且符合筆順的有一個字根「古」,共五畫。
「符合筆順」規則,指一個字是否整體符合筆順(後面的「取大」規則中,會繼續判断局部符合筆順的字根數量)。
符合筆順的優先級低於字根最少。
例
来可以拆成一米也可以拆成未丷,都是兩根,但拆成一米完全符合筆順。
聿可以拆成彐キ也可以拆成肀二,都是兩根,但拆成彐キ完全符合筆順。
散連交斷
散·連·交·斷,是漢字部首或筆畫的四種狀態。
- 字根離散,指的是兩個字根互相分離。比如
部中的立口阝,便是三個分離的字根。 - 字根相連,指的是兩個字根互相連接。比如
美拆爲𦍌大,這兩個字根是相連的。 - 字根相交,指的是兩個字根互相交叉。比如
再拆成一冂土三個字根,便是相交的。 - 筆劃斷開,指的是一個筆劃(橫或豎)斷開。比如
我拆成丿扌戈三個字根,其中的扌和戈兩根的橫本是一筆寫成,但我們將橫畫斷開。
「散連交斷」,優先級依次下降,但都排在「字根最少」「結構完整」「符合筆順」之後。
能散不連
兩個字根互相分離,優於兩個字根互相連接。
例
主可以拆成丶王也可以拆成亠土。觀察到,丶王是散開的,而亠土是相連的,後者符合「能散不連」。
能連不交
兩個字根互相分離,優於兩個字根互相交叉。
例
开可以拆成一廾也可以拆成二{介下}。觀察到,第一種拆法字根相連,第二種拆法字根相交。故而拆成一廾符合「能連不交」。
能交不斷
兩個字根互相交叉,優於將筆畫斷開。
例
果拆作日木,不拆成田木或甲木,這是因爲後者將中間的豎斷開了。因爲「字根相交」的優先級高於「筆畫斷開」,果應當拆成日木。
根少而斷
爲了根少和直觀,有且只有以下兩種情況可以斷開筆畫:
我識羲等字中戈的橫。重熏等字中千的竪。
例
我拆作丿扌戈,不拆成丿扌乚丿丶。雖然前者將中間的橫斷開了,但因爲「字根最少」,我們選擇只有三根的丿扌戈。
熏拆作千黑,不拆成千囗丷二灬。雖然前者將中間的豎斷開了,但因爲「字根最少」,我們選擇只有兩根的千黑。
字根取大
字根取大,指的是按照筆順拆字時:
- 讓非「豎·撇變形部分」儘可能地大。
- 讓首筆靠前的字根儘可能地大。
非變形部分取大
部分字根在做偏旁的時候,由於書法的考慮,會有「豎變撇」「撇變豎」的變化。它們稱爲「豎·撇變形根」。
豎·撇變形根
千字根的丨變成丿
干字根的丨變成丿
キ字根的丨變成丿
丰字根的丨變成丿
羊字根的丨變成丿
丌字根的丿變成丨
我們應當對非變形部分取大。
例
失拆丿夫而不拆牛乀,因爲牛的一豎是撇。故而對夫取大。
井拆二{介下}而不拆キ丨,因爲キ的一豎是撇。故而對{介下}取大。
严拆爲一业丿,而不拆成丌丷厂,因爲後者中,丌字根的丿變成丨。爲了讓非「豎·撇變形根」儘可能地大,我們取业根。
另外一種拆法丌䒑丿不取的原因是䒑字根中的點應當和橫相連(艹字頭的行書寫法),而严字中兩點分散了。這違反了字根的內在屬性。
缓拆纟爪干又而不拆纟爪二夂。雖然前者干的豎是撇,但後者出現了「字根相交」。根據規則優先級,「字根相交」低於「字根相連」,故而拆爲纟爪干又。
對稱部分取大
部分字根在做獨體字時,會有不對稱的情況。我們保證對稱部分取大。
此規則只出現於大字集中。
例
宺拆宀口一𫶧而不拆宀口丌乚,因爲拆爲丌乚破壞了字根丌的對稱性。
向前取大
向前取大,讓首筆靠前的字根的筆劃數儘量地多。這是一個兜底原則,可以保證最終只有一個候選方案能夠勝出。因此,它的優先級必然是所有拆字規則中最低的。
例
夬拆爲ユ人,而不拆成乛大,因爲「字根取大」原則。讓首筆靠前的字根的筆劃數儘量地多,這裡,ユ的筆畫數大於乛。
丈拆爲𠂇丶,而不拆成一乂,因爲「字根取大」原則。讓首筆靠前的字根的筆劃數儘量地多,這裡,𠂇的筆畫數大於一。
拆字舉例
更多例字
想要了解更多具有代表性的例字在宇碼中的拆分,請參見字海拾珍——必拆字舉隅。
如果你想了解使用頻率最爲靠前的幾百個漢字在宇碼中的拆分,可以點擊進入高頻字拆分圖解(簡化字)或高頻字拆分圖解(傳統字)頁面。
實際拆字時,如果你感覺拆分方法不唯一,那麽可以用以下方法找到最優解:
- 列出所有可能的候選拆分方案。
- 依照「少整順散連交斷大」的規則順序,依次比較各個候選拆分。
- 如果所有的候選拆分都不滿足本條規則,則進入下條規則。
- 如果部分的候選拆分滿足本條規則,則該部分的候選拆分方案進入下條規則。
- 直到只有一個候選拆分方案勝出。
以下通過部分例字來説明拆分規則:
例
- 一例:
亷。候選拆分亠丷厂彐〢八和立丿彐〢八。亠丷厂彐〢八六根,立丿彐〢八五根。後者字根最少,直接勝出。
- 又一例:
重。候選拆分丿車一和千里。千里是兩根,滿足「字根最少」,直接雖然中間一豎斷開,但依然勝出。
- 又一例:
盡。候選拆分コ土灬皿乛龶灬皿彐丄灬皿{聿上}一灬皿四種。- 都是四根,同時滿足「字根最少」。
コ土灬皿不符合筆順,其他三者都完全符合筆順。淘汰コ土灬皿。- 上半部分都出現字根相交情況。
- 都不適用「結構合理」。
- 進入兜底規則「字根取大」。根據規則,只要其中某個字根多寫一筆仍然符合筆順,就多寫一筆。觀察到,
{聿上}一灬皿的第一根一共寫了四筆,故而勝出。
✅ ❌ - 又一例:
曱yuē甴yóu。曱按笔顺取大,故而是日丨。甴,候选拆分为日丨囗丄。两者都是两根,都結構完整。按笔顺取大,故而是日丨。
✅ ✅
上面的例子邏輯雖比較複雜,但是最終的結果還是非常直觀的。在宇浩輸入法中,大多數的時候,直觀的拆分方法往往也是符合規則的。
前輩輸入法的拆字規則,一般都有諸如「直觀」、「符合筆順」、「取大」等設置。但是優先級往往不夠明確,很多拆分方法並不符合規則,存在不少特例。在常用字範圍內,還可以通過大量練習來完成記憶,但到了大字集,規則不明確、規則相矛盾,都是造成檢字困難的因素。 ↩︎
當然,漢字不是完全可以量化的,不同字形下,也會出現不同的拆分可能。除了良好的定義外,有時候比例原則也很重要。尤其在大字集上,追求單一拆分方法會扭曲漢字直觀性,不能兼顧不同字形,讓使用者需要大量嘗試才能找到想要的字,這違背了大字集檢字的初衷。因此,對於大字集,也會設置兼容拆分和容錯碼。 ↩︎
在進行拆分前,首先需要「確認」某個字根到底存不存在,是否合規,也就是檢查字根的「內在屬性」。比如
土士,兩橫的長度直接決定了字根的異同。其次需要檢查一些「拆分禁手」,比如王中間如果被筆畫「穿心」,這是不被允許的。禁手有:散件不分割、豎向不包夾、橫間不穿心。對這兩點的討論作爲進階內容,於此處跳過。若有興趣,可以在後續章節 《進階討論》中閱讀。 ↩︎爲什麽要有完全合筆順這個規則,而且優先級那麽高?在我的認知中,形碼的基本出發點就是如同寫字一樣輸入一系列筆畫,即「五筆畫輸入法」。它是最自然,最直觀的,所以宇碼規則有了「符合筆順」。但是,輸入講求效率,必須把一些筆畫合併起來形成字根,它們的筆順可能會相互穿插,所以要有「根少優先」這個規則,把它的優先級放在了「符合筆順」的前面。最後,需要有個兜底條款「向前取大」來保證沒有拆分歧義。因此,形碼拆分有了「根少」「筆順」「取大」,其實已經足夠了。接下來的其他規則都是在這上面打補丁,爲了讓拆分更加「直觀」。 ↩︎
