無論是使用 gcin、Yahoo! 奇摩輸入法、小小輸入法平台搭配對照表,
或是使用「通用輸入法編輯工具」將對照表轉成輸入法程式,
對照表的排序方式將會影響候選字的排列順序。
一般而言,遇到重碼而必須選字時,候選字的排列順序最好是:
1.先排 CJK 字元集的熱門字,使用頻率較高的排在較前面。
 比如:同樣唸「ㄏㄨㄥˊ」的字,「紅」較常用,「洪」、「宏」次之…
 所以排序應該是「紅、洪、宏…」。
 較難的地方是必須兼顧破音字的使用率,
 比如:「期年」的「期」唸「ㄐㄧ」,
 但是同樣唸「ㄐㄧ」的字,「機、基、積…」比「期」常用,
 此時「期」就要比「機、基、積…」排得更後面。
2.次排 CJK 字元集的冷門字。
 比如:簡體字、罕見字(煊、堃、綉…)。
3.接著排 CJK Ext-A 字元集的字。
4.最後排 CJK Ext-B 字元集的字。
因為 CJK Ext-A、CJK Ext-B 的字都是罕見字,
所以直接依照 Unicode 10 進位碼排序即可。

「全字庫注音資料表格」並沒有按照上述的原則來排列,
因此,依照前一篇文章製作出來的「CNS_phonetic_v1.txt」並不符合我們的需求。
我們需要一個帶有「曝光名次」的表格來當作排序時的指引,
越常被使用的字,「曝光名次」越前面。
但是,這個表格不能只有「字元 V.S. 曝光名次」,
因為一般而言,「期」的曝光率會比「積」來得高,
這樣排序後,打「ㄐㄧ」的注音時,「期」會比「積」排得更前面。
所以,我們需要一個「組字字根-字元 V.S. 曝光名次」的表格,
也就是必須把「組字字根-字元」複合起來,再與「曝光名次」相互對照。

Firefly 於 2006 年依據「全字庫文字屬性規範 94.2 版」
而製作的「全字庫注音輸入法參考檔」的排列順序正好滿足我們的需求,
我們可以選取 Firefly 做的 cin 檔裡的「組字字根 V.S. 字元」部份,
將「組字字根」與「字元」間的多個空白取代為單一空白,
然後貼到 Excel(命名為:Firefly_Order.xlsx)「工作表1」的 A 欄裡,
B 欄則產生由 1 開始的數列,當作「曝光名次」,
然後將它存檔。
(如果您要整理的是倉頡、筆劃輸入法的話,
只要在 A 欄貼上已經排名過的 Big5 字元,
B 欄產生數列當作「曝光名次」即可,其餘步驟都相同)

如果各位按照前一篇文章的講解而完成「CNS_phonetic.xlsx」的話,
它的「工作表1」應該是這樣的:
A 欄:原始行號
B 欄:字元
C 欄:注音符號
而完成的「CNS_phonetic_v1.txt」則是一列一列的「組字字根 字元」,
它們都是按照字元由小而大排序。

將「CNS_phonetic_v1.txt」的內容全選後,
貼到 Excel(命名為:Temp.xlsx)「工作表1」的 A 欄裡,存檔後關閉。
然後將「Firefly_Order.xlsx - 工作表1」的 A、B 欄,
貼到前一篇文章提到的「part_replace.xlsm」的 B、C 欄,
再將 A2 儲存格修改為「Temp.xlsx」,
最後按下「開始整批取代」按鈕,
等待一段時間後,當畫面提示「取代完成,請切換視窗查看結果」時,
即可將當下開啟的兩個 Excel 檔儲存,
這時「Temp.xlsx - 工作表1」的資料會變成:
A 欄:曝光名次

將這欄「曝光名次」貼到「CNS_phonetic.xlsx - 工作表1」的 D 欄,
這時「工作表1」應該是這樣的:
A 欄:原始行號
B 欄:字元
C 欄:注音符號
D 欄:曝光名次
並且是按照字元由小而大排序。
改成按照曝光名次由小而大排序後,
會發現後面資料列的 D 欄仍是字元,
這些資料列是超出 Firefly 的 cin 檔範圍而沒有被取代掉的部份,
將它們的 D 欄全改為「-」後,再存檔即可。

再將 B 欄內的資料貼到「Unicode code converter」網頁的「Characters」欄裡,
轉成對應的 10 進位碼(Decimal code points),並稍做整理後,
貼到「CNS_phonetic.xlsx - 工作表1」的 E 欄,
按照 E 欄由小而大排序後,
找出 E 欄為「13312~19893」的資料列,在其右側的 F 欄填入「A」;
找出 E 欄為「19968~40869」的資料列,在其右側的 F 欄填入「0」(數字的零);
找出 E 欄為「131072~173782」的資料列,在其右側的 F 欄填入「B」;
它們分別代表 CJK Ext-A、CJK、CJK Ext-B 的字元。

這時「CNS_phonetic.xlsx - 工作表1」應該是這樣的:
A 欄:原始行號
B 欄:字元
C 欄:注音符號
D 欄:曝光名次
E 欄:Unicode 10 進位碼
F 欄:Unicode 字元集種類
並且是按照 Unicode 10 進位碼由小而大排序。
此時,再用自訂排序方式,
依照注音符號、曝光名次、字元集種類、10 進位碼的階層順序,
由小而大排列,那麼改善排序這個階段的工作就算結束了!
先別急著轉成純文字檔的對照表,下一篇介紹完檢查錯誤的方式後,我們再來轉換。

arrow
arrow
    全站熱搜

    terryhung 發表在 痞客邦 留言(0) 人氣()