靈明輸入法
注意
本方案基於宇浩拆分,爲 25 鍵、前綴、四碼、三編、音托、全字集、繁簡通打輸入方案。本方案同傳統定長方案輸入體驗有所不同,請務必充分瞭解、分析、平衡其風險和收益後再決定是否學習使用。
簡介
靈明輸入法,又稱靈碼,基於宇浩拆分設計製作,是繼日月輸入法後的另一款純形前綴碼方案,可完全離開空格鍵進行輸入。其名源自尚書大傳之「明明上天」「配天之靈」。
其目的是在保留日月前綴碼優勢的同時,壓縮最大碼長。同時,引入光華純二十五鍵佈局、星陳聚類經驗、卿雲完全音托的優點,讓前綴碼方案更加適合普通用戶。在設置 75 個無空格簡碼的情況下,其碼長壓縮至 3.0 左右,超過傳統四碼定長方案單字派極限碼長。
由於按鍵需要分爲互不重合的A區和B區,實際編碼空間數量為:$$Y &= A^4 + A^3B + A^2B + AB$$。其中,A區按鍵數量爲20(輔音字母),B區按鍵數量爲5(元音字母)。計算可得編碼空間為 202,100(二十萬左右),是傳統二十五鍵四碼定長方案 406,875 編碼空間的一半不到,可以説是螺螄殼裏做道場。
本方案貫徹宇浩系列輸入法根本理念,支持繁簡通打,其關鍵數據如下:
- GB2312 重碼字數 403
- 通規重碼字數 504
- 國字常用字重碼數 76
- 簡體動態選重率 0.0455%
- 繁體動態選重率 0.0460%
- 繁簡混合動態選重率 0.0802%
- 全碼速度當量 1.287
關於概念解析和數據對比,詳見 《瓊林擷英》、宇浩測評網 https://ceping.shurufa.app 及 《常見輸入法重碼數據》。
字根的編碼
每個字根,有大碼、小碼、補碼。部分字根沒有小碼。
- 大碼是要重點記憶的。部分字形近似的字根,大碼是相同的。大碼使用
BCDFGHJKLMNPQRSTVWXY等20個輔音按鍵。 - 小碼,嚴格取用漢語拼音的聲母,故而又稱為聲碼。沒有讀音的字根,永遠沒有小碼。零聲母的四個字根「而二儿耳」,用j來作為小碼。因為本輸入法不使用z鍵,故而z和zh兩個聲母用v代替。小碼使用
BCDFGHJKLMNPQRSTVWXY等20個輔音按鍵。 - 補碼,嚴格取用漢語拼音的韻腹(主元音),即介音後的第一個字母,故而又稱為韻碼。補碼使用
AEIOU等5個元音按鍵。沒有讀音的字根,補碼永遠為o。
因為小碼和補碼是字根的漢語拼音嚴格對應的,屬於經驗性知識,故而記憶的重點應放在大碼上。
關於韻腹
漢語拼音的韻母結構爲:韻頭(介音) + 韻腹 + 韻尾。其中,「韻腹」是韻母的核心部分,決定了韻母的主要特徵。
如果一個韻母祇有一個元音,那麼這個元音自然就是韻腹。例如:a、o、e、i、u、ü。
如果一個韻母有兩個或以上元音,則要看這幾個元音中哪一個舌位更「低」(i、u 最高, o、e 居中,a最低),最低的那個元音就是韻腹。
- 如果韻腹前有個較低的元音,則這個元音又稱「韻頭」(「介音」),比如:ia 中的 i、ua 中的 u、ie 中的 i、uo 中的 u。
- 如果韻腹後有個較低的元音,則這個元音又稱「韻尾」,比如:ai 中的 i、ei 中的 i、ao 中的 o、ou 中的 u。
某些韻母同時有韻頭(介音)和韻尾,比如:iao 中的 i 是介音,a 是韻腹,o 是韻尾。
因此,判斷主元音(韻腹)的方法很簡單:
- 如果只有一個元音字母,則這個元音就是韻腹。
- 如果有多個元音字母,則 i 或 u 後面的第一個元音字母就是韻腹。
下表列出了漢語拼音中所有韻母、韻腹(主元音)、對應的補碼(韻碼):
| 韻母 | 韻頭 | 韻腹 | 韻尾 | 補碼 | 備註 |
|---|---|---|---|---|---|
| a | a | a | |||
| o | o | o | |||
| e | e | e | |||
| i | i | i | |||
| u | u | u | |||
| ü | ü | u | |||
| ai | a | i | a | ||
| ei | e | i | e | ||
| ui | i | i | i | 為 uei 簡寫 | |
| ao | a | o | a | ||
| ou | o | u | o | ||
| iu | i | u | u | 為 iou 簡寫 | |
| ie | i | e | e | ||
| üe | ü | e | e | ||
| er | e | e | 兒化 | ||
| an | a | n | a | ||
| en | e | n | e | ||
| in | i | n | i | ||
| un | u | n | u | 為 uen 簡寫 | |
| ün | ü | n | u | ||
| ian | i | a | n | a | |
| uan | u | a | n | a | |
| ang | a | ng | a | ||
| eng | e | ng | e | ||
| ing | i | ng | i | ||
| ong | o | ng | o | ||
| iang | i | a | ng | a | |
| uang | u | a | ng | a |
單字的編碼
一個字,最多取用四個字根:第一根、第二根、第三根、第四根。同時,一個字,最多是四個字母。我們使用填格子的方法將字根的編碼組合成單字編碼:☐☐☐☐
- 首先,填入第一根大碼、和小碼(若有)。☑☐☐☐或☑☑☐☐
- 接着,填入第二根大碼。☑☑☐☐或☑☑☑☐
- 此時,如果還空餘兩格,則填入第三根大碼。☑☑☑☐
- 最後,填入最未根大碼。☑☑☑☑
對於不到四個字根的字,這時候很有可能格子還未填滿,則進行以下補齊步驟:
- 填入最未根小碼(若有)。
- 填入最未根補碼。
由此可見:
- 一個四根字,如果首根有小碼的,則永遠不會用到第三根。
- 補碼只在不足四碼時用於補齊。
- 格子填滿或者出現了補碼,這個字的編碼就結束了。
注意到,大碼和小碼所在的鍵位(輔音字母)同補碼所在的鍵位(元音字母)互斥,故而補碼可作爲單字的自然分隔符。不滿四碼時,不用空格也可進行連續輸入。
簡碼和碼長
簡碼(此處以簡體方案為例)設置如下:
- 一碼上屏字:的E、是I、我O、不U、了A。
- 兩碼上屏字:取首碼和末根韻碼。因為兩碼可以直接上屏,故而等效於傳統定長方案的一級簡碼。
- 三碼上屏字:取首碼、次碼和末根韻碼。因為三碼可以直接上屏,故而等效於傳統定長方案的二級簡碼。三碼上屏字的設置,有兩個考量因素:
- 能顯著降低碼長的高頻繁簡常用字,加權碼長至少降低0.001。並且其手感不能太差,加權速度當量上升不超過0.002。
- 能顯著提高手感、降低加權速度當量的高頻繁簡常用字,加權速度當量至少降低0.00005。
- 空格簡碼詞若干:採用首字的首碼或前兩碼(都是輔音字母)加空格上屏。如果一個設置了首韻簡碼,則不會設置以它開頭的二簡詞。
- 空格簡碼字若干,只用於避重。
本方案是前綴碼,因此簡碼效率顯著高於一般的四碼定長方案,簡碼設置的邊際效率相對更高。綜上所述,在記憶75個無空格簡碼的情況下,單字平均碼長約爲3。
簡碼設置
兩碼簡碼(無空格):
| first | a | o | e | i | u |
|---|---|---|---|---|---|
| b | 色 | 部 | |||
| c | 前 | 就 | 给 | 将 | |
| d | 眼 | 听 | 中 | ||
| f | 如 | ||||
| g | 院 | ||||
| h | 这 | 时 | |||
| j | 过 | 发 | |||
| k | 知 | 很 | 復 | 得 | |
| l | 还 | ||||
| m | 告 | 有 | 在 | ||
| n | 笑 | 回 | |||
| p | 包 | ||||
| q | 英 | 藏 | 著 | 对 | |
| r | 进 | 战 | 着 | ||
| s | 考 | 喜 | 地 | ||
| t | 把 | 找 | 看 | ||
| v | 治 | 没 | |||
| w | 利 | 和 | 说 | 那 | |
| x | 格 | 整 | 想 | ||
| y | 奇 | 非 | 理 | 太 |
詞語的編碼
詞語編碼規則和其他傳統四碼定長方案類似,祇有一點不同:兩字詞中,如果首根沒有小碼(聲碼),不參與組詞。
- 兩字詞:首字前兩碼 + 次字前兩碼。注意,首字爲字根的,不設置詞語編碼。
- 三字詞:首字第一碼 + 次字第一碼 + 第三字前兩碼。
- 四字及以上詞:首字第一碼 + 次字第一碼 + 第三字第一碼 + 最末字第一碼。
對比
這裡展示靈明方案其他形碼輸入法的對比:
日月輸入法
相同點:都是全字集、繁簡通打。字根都是要麼兩碼要麼三碼。
不同點:日月的字根聲碼韻碼是根據實際讀音映射的,有沒有聲碼會根據讀音產生。而靈明的聲碼韻碼嚴格取拼音聲韻部分的第一字母,取不取聲碼需要特殊記憶。
鄭碼輸入法
相同點:都是字根雙編碼或三編碼,首根都可能取到兩碼。
不同點:鄭碼首根可能取到三碼;靈明最多取兩碼。鄭碼當主根多取一碼的時候,會少取第二根;靈明當主根多取一碼的時候,會少取第三根。鄭碼的主根后需要補A並且加空格上屏;靈明的補碼(韻碼)同時起到了補充和上屏的作用。
真碼輸入法
相同點:首根都可能取到兩碼。當主根多取一碼的時候,都會少取第三根。
不同點:真碼的主根后需要補I並且加空格上屏;靈明的補碼(韻碼)同時起到了補充和上屏的作用。
難度
| 更易 | 更難 | |||
|---|---|---|---|---|
| 大碼 | 星陳 | 光華 ~ 靈明 | 日月 | 卿雲 |
| 小碼(聲韻) | 卿雲 ~ 靈明 | 星陳 | 日月 | 光華 |
| 編碼規則複雜度 | 卿雲 | 星陳 ~ 光華 | 日月 | 靈明 |
| 流暢度 | 卿雲 | 日月 | 靈明 | 星陳 ~ 光華 |
| 手感 | 日月 | 卿雲 | 靈明 ~ 星陳 | 光華 |
| 出簡碼長 | 靈明 | 日月 | 星陳 ~ 光華 | 卿雲 |
常見問題回答
為什麼不用 Z 鍵?
因為很多傳統的大廠輸入法掛載自定義碼表時使用的是五筆字形的配置,Z鍵被佔用作爲通配符等,導致Z鍵無法使用。因此,本方案繼承光華的特性,不使用Z鍵。
又,星陳輸入法獨創了25.5鍵模式,Z鍵不作為開頭,使得其可以用來引導反查。在前綴碼中,Z鍵只可能作為聲碼存在,但出現的次數有限,省略Z鍵對性能優化影響不大。
又,由於本方案小碼絕對音托,導致Q鍵和A鍵頻率較高,因此不再在Z鍵上放置常用字根,避免左手小指負擔過重。
哪些字根不取聲碼
不取聲碼的字根分為以下幾類:
- 所有的沒有讀音的字根,不取聲碼,且韻碼永遠是 O。
- 所有的基本筆劃字根(一、丨、丿、乀、丶、乙、乚),不取聲碼。
- 首根位置最常出現的字根,不取聲碼以增加第三根使用率,提升離散度。部分高頻首根,其組成的高頻字一般只有三個及以下,則也會取聲碼,比如「日」。
- 其他經過算法優化不取聲碼的字根。
為什麼零聲母的聲碼是 J
本方案採取絕對音托,因此零聲母字根祇有四個「而二儿耳」,它們的韻碼都是 E,在左側。為了手感考慮,聲碼必須選擇右手的字母。而右手的字母中,J 是唯一近似元音的,且手感最佳。
至於為什麼不能直接將它們設為零聲母,是因為這樣的話這四個字都必然佔用寶貴的二碼上屏碼位。
同時,實際優化下來,這四個字根没有一個被算法安排為跳過聲碼,側面说明从離散角度上來說,它們有一個聲碼是比較好的。
為什麼沒有讀音的字根不取聲碼且補碼永遠是 O
沒有讀音的字根,表示為一個大碼加一個類似空集符號的補碼 O 最為自然,符合直覺。
同時,沒有讀音的字根,較少出現在首根上,因此不取聲碼可以更多照顧到第三根的使用率,增加離散度。
同時,沒有讀音的字根,只在特殊情況下使用,不會佔用寶貴的二碼上屏碼位,因此不取聲碼對碼長的損失較小。
同時,漢語拼音中的主元音一般是 AEIU,而 O 的出現頻率較低,作爲補碼使用可以平衡五個元音的使用頻率,提高手感。
多少情況下會跳過第三根
根據計算,所有的大於等於四根字的漢字中,約有四分之一的頻率會跳過第三根。四分之三的頻率會使用四個字根大碼。這是因為在首根位置最常出現的字根都被優化成不取聲碼。
為什麼不設置空格簡碼字
空格簡碼字和前綴碼的理念相悖。前綴碼的優勢在於不需要空格鍵即可流暢輸入,而空格簡碼字則需要空格鍵來上屏,這會破壞前綴碼的連續性和流暢性。
又,對於大多數用戶來說,影響速度的原因不是碼長而是熟練度。記憶簡碼增加了隱性學習負擔,但帶來的收益有限,因此不設置空格簡碼字。空格簡碼位主要設置的是避重碼和詞語簡碼。
用戶可以隨時通過 Ctrl + Shift + K (K 指空格)隱藏或打開空格簡碼。
為什麼不推薦打詞
由於打單和打詞時的編碼長度存在不一致(打詞只打一到兩碼),打詞會擾亂用戶對單字的熟練度,降低擊鍵速度。而前綴碼的優勢就在於不需要輸入空格以縮小碼長,並且通過打字的反復練習來提升熟練度,增加擊鍵速度。
又,本方案設置了若干一碼、兩碼高頻簡碼詞語,可以有效降低碼長,達到傳統四定字詞派的效果。
又,就算是極限的四碼定長方案,詞語重碼也高於單字重碼一個數量級,因此打詞會帶來嚴重的確定性問題,無法進行雙盲輸入。
因此,本方案強烈不推薦打詞。
用戶可以隨時通過 Tab 鍵或 Ctrl + Shift + D (D 指單字)隱藏或打開全碼詞語。
有没有字根按鍵讀音例字表
直接點擊字根圖上的字根即可。
