嘸蝦米:最好的傳統中文輸入法
本文以實驗證實嘸蝦米勝過其他傳統中文輸入法的地方
簡介
嘸蝦米輸入法,為台灣人劉重次發明的中文輸入法。它是一種形碼輸入法,將漢字分拆成字型結構,再以字型結構的形、音、義與英文字母加以聯想,拼出漢字。嘸蝦米輸入法的發想始於劉重次在歐洲留學期間(1969年 - 1975年左右),當時因為Telex電傳系統(電報機)普及,劉重次於是想創造一種便利中文資訊溝通的方法,於是投入中文檢字法的世界,經過數十年後嘸蝦米輸入法才告完成,並於1990年成立「行易有限公司」
中文輸入法分類
- 拼音輸入法
- 注音、拼音
- 需要知道字的唸法
- 選字頻率較高
- 拼字(拆字)輸入法
- 倉頡、大易、速成、嘸蝦米、五筆、行列
- 需要知道字的寫法
- 選字頻率較低
- 需要額外記憶字根
- 注音和羅馬拼音也算是字根,不過學校會教
評價標準
- 學習成本
- 易學性
- 拆碼邏輯的合理性
- 拼音輸入法的拆碼較直觀
- 鍵位
- 是否有額外鍵盤位置需記憶,如注音、倉頡需要記憶各碼的對應的鍵盤位置
- 易學性
- 打字速度
- 編碼長度
- 愈常用字編碼應愈短,以符合資訊熵的最短編碼方法
- 手指移動距離
- 手指移動距離愈短愈好
- 最理想的情況就是左右手交互打字
- 選字
- 重碼率:重碼率越低,減少選字的疑慮,輸入速度越快
- 選字至少多花一碼的時間
- 實際上多花的時間:看選字表+翻頁+輸入對應數字
- 這是拼音輸入法的的劣勢
- 不用選字是盲打的必要條件
- 重碼率:重碼率越低,減少選字的疑慮,輸入速度越快
- 簡碼:簡碼可大幅增加常用字的輸入速度,但必須額外背誦
- 簡碼是否好背
- 困難字方案:如何打出不知道拆碼的字
- 一字多拆:避免一些字型由於主觀認知上的差異而拆不出的困擾
- 模糊輸入:不會拆字時可用模糊的輸入方式拆出
- 如
abc*
,會列出abca
、abcb
、abcc
、abcd
…所對應的字
- 如
- 編碼長度
- 普遍性
- 一般電腦是否有安裝此輸入法
- 購買價格
- 非漢字輸入
- 切換成英文的方法
- 標點符號、注音、希臘符號、數學符號、表情符號(emoji)
- 擴充性
- 自訂編碼或自訂詞庫
- 不同國家的漢字
- 簡體、繁體、韓文、日文
- 記憶功能
- 輸入法自動學習、記憶常用字
- 字庫大小
- 是否能輸入生僻字
實驗
資料來源
- 台灣的常用國字標準字體表(共4808字)
- 教育部定義的常用國字
- 教育部字頻表
- 即常用的字,如「的」、「不」、「一」、「我」、「是」、「人」、「有」…
- 字頻表前100/500/1200/2500/3700字
- 據研究,國三學生約認識3700字
- 以字的頻率加權平均
- 一般散文
- 小王子(27519字)
- 我所知道的康橋(5857字)
- 背影(1324字)
假設
- 按空白鍵等同按0.5個普通鍵的時間
- 應該是高估的數字
- 因為大姆指基本上都在空白鍵上,應該是不用花這麼久
- 需要選字的輸入法,其選字頻率為2%
- 不確定真實數字
- 選字等同按2個普通鍵的時間
- 應該是低估的數字
- 需要查看想要的字的位置(排第幾個)
- 需要額外輸入方向鍵、數字鍵或空白鍵
- 如果用舊注音,已經將位置背起來了,那等同1個普通鍵
- 但是需要的記憶量很大,在此不考慮
- 應該是低估的數字
- 手指移動不花時間
- 因為難以計算
- 有興趣的人可以實作此部份
計算方式
- 計算文章中的中文及符號,若遇到無法拆解的情況(很少),會直接跳過
- 計算文章中一個字的拆字長度平均
- 嘸蝦米一個字有多種拆字法,所以用嘸蝦米最簡碼、嘸蝦米最長碼來表示其上下限
備選輸入法
- 嘸蝦米
- 注音
- 倉頡
- 大易
- 拼音
- 行列
註:五筆輸入法沒有放入比較,因為我完全搞不懂他的拆字邏輯
輸入法解碼方式
拆碼的方法
- 參考Linux上中文輸入法的編碼表
- 拼音輸入法:直接轉換
- 嘸蝦米:使用正版軟體的編碼表
結果
實作程式碼連結
- 由圖可知,大易和嘸蝦米對字頻的編碼都是出現頻率愈高的字編碼愈短
- 嘸蝦米在打非常常用的字時(常用1200字內),拆碼會比大易短
- 這可以有效減少一般打字時的拆碼長度(參考字頻表-頻率加權的欄位)
- 這使得嘸蝦米在考慮字頻加權的情況下,例如散文時,編碼長度是前幾低的
- 拼音在散文上的表現也很好(雖然不知道原因),所以也能考慮使用
- 嘸蝦米在打非常常用的字時(常用1200字內),拆碼會比大易短
嘸蝦米和其他輸入法比較
所以嘸蝦米強在哪?以上述各評價標準來比較
- 學習成本
- 易學性:字根同時有形、音、義三種來源
- 拆碼好不好記很主觀
- 我個人認為嘸蝦米的字根因為同時使用多種來源,雖然許多字根很天馬行空,但還算是容易聯想的
- 鍵位:⭕使用英文拆碼,不需額外記憶
- 易學性:字根同時有形、音、義三種來源
- 打字速度
- 編碼長度:⭕由上述實驗可知,嘸蝦米的編碼是很短的
- 選字:⭕幾乎不會重碼
- 嘸蝦米把常用的重碼字移到兩碼簡碼了
- 尾碼輸入V等同選第二順位的字,大幅加快選字速度
- 例子
- 尾碼輸入V等同選第二順位的字,大幅加快選字速度
- 嘸蝦米把常用的重碼字移到兩碼簡碼了
- 簡碼:❌嘸蝦米的兩碼簡碼很多是硬湊的,特別難記
- 困難字方案:⭕注音輸入、同音詞輸入
- 注音輸入:就是內建的注音
- 對於剛學習的新手來說,是非常有用的(會顯示嘸蝦米編碼)
- 同音詞輸入:想打「蝦」字,但忘了字怎麼寫,可以找一個同音的字如「瞎」,就會列出同音的字作為選項
- 注音輸入:就是內建的注音
- 普遍性 ➖
- 要付費,不過終生可使用,很划算
- NTD 680(家用版)、990(一般版)、200(Android)
- 在台灣算是常見,有些公共電腦也有嘸蝦米
- 台大有買授權版,可以在軟體中心下載
- 要付費,不過終生可使用,很划算
- 非漢字輸入
- ⭕標點符號、希臘符號、數學符號、注音/平假/片假名、符號
- 注音
ㄌ
→,l2
- 日文
あ
→a,
- 日文
シ
→shi.
- 特殊符號
↓
,△
,①
,□
,○
- 注音
- ❌沒韓文、表情符號(emoji)
- ⭕標點符號、希臘符號、數學符號、注音/平假/片假名、符號
- 擴充性 ⭕
- 可輸出成簡體或日文漢字
,,j
→ 之後輸出的字為日文標準- 有些日文漢字要用此模式才能輸出,如
畑(はた, FQO)
- 有些日文漢字要用此模式才能輸出,如
,,c
→ 之後輸出的字為简体標準,,ct
→ 可以用繁体字的逻辑拆字,输出时为简体字
- 可輸出成簡體或日文漢字
嘸蝦米使用心得
❓:學嘸蝦米要先學哪些字
❗:「嘸蝦米」(OVFF COX MN
),因為你需要經常Google簡碼的邏輯
- 緣由
- 因為我不想額外記鍵盤配置,所以倉頡、大易之類的直接不考慮
- 剛好學校有提供嘸蝦米,就試著學習看看,想不到還蠻好用的
- 目前日常打字約60~70字/分,比打注音快一些
- 測試平台:https://typing.tw/
- 能輸入日文和一些特殊符號,非常有用
- 輸入法可視為一種加密表
- 可用來當作密碼或密語
- 嘸蝦米文翻譯機
嘸蝦米教學
- PAPAYA 電腦教室 - 為什麼公司的前輩們打字都那麼快? 來談談那些年他們一起練過的嘸蝦米輸入法 ~
- 官網教學
- 學習軟體
- Wiki: 嘸蝦米輸入法
- 查碼網站(非官方)
- 嘸蝦米有快打模式,在使用非最簡碼輸入時,會出現提示
誰能擊敗嘸蝦米?
標題已經表示,傳統的(拼字、拼音)輸入方法是贏不了嘸蝦米的,需要更聰明的方法
- 智慧選字
- 注音聲母,如
ㄐㄅㄈㄏ
→ 加倍奉還 - 拼音縮寫,如
AWSL
→ 啊我死了
- 注音聲母,如
- 自動補字(Auto Complete)
- 自動產生/補完後面的字
- 語音輸入
- 意念輸入
- 腦機介面(brain-computer interface, BCI)
- 這類似SAO那一套
- 這是霍金那一套嗎?
- 腦機介面(brain-computer interface, BCI)
上述幾個智慧方法的缺點是難以輸入專有名詞(人名、產品名、專業術語),還是會有需要修正錯字或選字的情形
參考資料
- 輸入法列表
- 嘸蝦米官網
- Wiki: 中文輸入法