[心得] 假設最理想化輸入法的取碼數

作者: redlance (紅~)   2013-06-04 02:46:04
引用我上一篇的資料庫5020字字頻,
規則定為:空白鍵不算碼,數字鍵(2~9)算1碼
然後將每字取碼數乘上其出現機率加權
對以下4種取碼方式做比較:
A. 行列30最佳化
以行列30的規則,把前30字頻的字全設為1碼字,
次常用900字為2碼特別碼(30*30),及270字一級簡碼(1碼字+1碼數字,30*9)
其他為3碼。有算錯請指正。
B. 26鍵數字法最佳化
假設只能用26鍵,前26字頻的字全設為1碼字,
次常用676字設為2碼字,其他為3碼
C. 行列取最少碼字
D. 行列取最多碼字(正常拆)
每字平均取碼數之結果如下:
A B C D
字頻前 30字 1.00 1.07 1.65 2.17
100字 1.47 1.50 1.78 2.50
1000字 1.78 1.87 2.10 2.91
5020字 1.88 1.99 2.23 2.97
以上是純數據,有錯請指正。
以下是我主觀的結論:
1.
以5000字來說,將行列最理想化的編碼,可以少打16%的碼。
(我在這假設它就是快16%,實際上會略少,以下)
說多不多,說少不少
主要原因是前30字佔字頻19.8%,而行列的30個1碼字只佔字頻9.7%,差了10%
所以最簡單的優化行列方式就是去改那30個字,最多可得到10%的加速
2.
只使用26鍵的最佳化,取碼數會比"A.理想行列30"略多
但仍比行列少12%
也就是一般拆字的輸入法,不考慮其他因素的理論上:再快也只會比行列快12%
3.
許多新輸入法(我不是專指大新,很多都是)常常以高字頻字編為一碼字,
若只看前30字是很威,快了60%。但前30字畢竟只佔20%字頻,不是全部。
但一拉長戰線,5000字時再快(最理想化)也只比行列輸入法快16%
實際上不可能那麼理想化,能快個10%就很了不起了
4.
我這邊沒有其他入法的編碼表,不過根據上網查的資料
大新和嘸蝦米若未背簡碼,平均碼數(我不清楚是平均還是字頻加權)約3.0碼上下
倉頡似乎是3.45~3.75碼
背簡碼的話嘸蝦米約2.2~2.4碼,大新約2.0碼。行列我算是2.23碼,其實差異不大。
故選擇輸入法,只看哪種輸入法打最快,其實意義不大。
一來練不到那麼快,二來拆字型輸入法的前幾快都差異不大,三來和樣本數量也有差
其他因素如:內建/易學度/拆碼方式/練英打/盲打/人體工學/未來平台支援度/
符號輸入/英日韓簡輸入...都比速度重要很多。

Links booklink

Contact Us: admin [ a t ] ucptt.com