倉頡之友
康熙与倉頡
主頁 自學 倉頡字典 康熙字典體

倉頡平台2022 網上輸入法 九萬漢字

論壇 聯絡 康熙字典網上版 捐助本站
論漢字編碼一對一之可能及實踐方法 - 中文輸入法學術論壇 - 康熙字典与倉頡之友 - Powered by Discuz!



 找回密碼
 注册
查看: 1873|回復: 5

論漢字編碼一對一之可能及實踐方法

[複製鏈接]
發表於 26-6-2023 13:56:00 | 顯示全部樓層 |閱讀模式
本帖最後由 Dustin 於 26-6-2023 01:56 PM 編輯

自接觸《倉頡輸入法》以降,甚是喜歡朱邦復先生對於漢字傳承的理念,但對於《倉頡輸入法》在某些省碼概念下仍有不滿。多方閱覽後,了解到漢字編碼的難處,專研此道十餘載,今日有興在此與各位前輩分享研究心得。基於以下方法(為之後稱呼方便該方法名為《倉易輸入法》,簡稱《倉易》;《倉頡輸入法》簡稱《倉頡》)作者拆解了6507個漢字無重碼,雖然對於浩瀚字海仍顯微小。但作者希望公布此方法讓有在關注編碼的前輩們,或感興趣的同好能接續發展。

https://docs.google.com/spreadsheets/d/1xCZW9btiPzQfCk7XznJ61C67H8yDNPgg/edit?usp=sharing&ouid=106073667106723969922&rtpof=true&sd=true

以上是google表單的成果網址。另外,在開始詳述《倉易》編碼邏輯之前,先來看看以下幾個篇章標題。這將方便各位閱讀時能找到要看的重點。

目錄:
一、書寫漢字帶給《倉易輸入法》的啟迪
二、《倉易輸入法》的框架介紹
三、《倉易輸入法》實務操作及安裝
四、《倉易輸入法》後話及總結

一、書寫漢字帶給《倉易輸入法》的啟迪

再談編碼之前,先講講幾個重要的書寫漢字特徵(為之後辨別之便,使用筆桿子書寫的漢字稱之為書寫漢字,簡稱漢書;使用按鈕敲擊呈現的漢字稱為數位漢字,簡稱漢碼),這將有助大家理解我的推演過程。
1.漢書不論筆畫多寡,字與字之間所佔據的空間是相同的,在此我稱之為手寫九宮格,而這將啟迪《倉易》一個重要的概念「無」字卦的概念,後續將再說明之。
2.漢書不論字形長相為何,字中必然藏有部首並且僅有一組。而《倉易》也將貫徹此一觀念,並且作為漢碼與漢書能一一對應的核心重點。
3.所有漢字皆能做一級字源拆分(意及每個字都有其源頭,不論其是否指向自己)而根據這份結果《倉易》將其拿來作為字形結構的分析,並從表意文字描述字符中提取四種名稱及符號「行⿱、列⿰、圍⿴、嵌⿻」做為《倉易》的確認鍵。
4.最後,漢字發展淵遠流長,許多書寫字體(甲骨、金文、小篆等等)因應書寫工具或習慣而發生改變,但之所以這些字體彼此還能看出傳承關係,不外乎是因為字裡行間的圖像符號有其一定的內在邏輯及規律,縱使少許的增筆或少筆甚至是變形亦能推敲得出。因此《倉易》拆解文字的精神是:若是編碼過程中,字形符號看似有多種拆解長相,則首重字形符號背後的涵義。例如:「告」、「先」的字形分析應當是「牛口」、「止儿」,那在《倉易》這兩個字的上半部就會視為兩種不同的編碼形體;而「義」、「羚」的字形分析應當是「羊我」、「羊令」那這兩個字的前半部就會使用相同的編碼概念。但字理的發展過程中出現嚴重變形者,則不在此列。具體請參看結果連結<漢字編碼>編碼字元欄。



二、《倉易輸入法》的框架簡介

了解上述前言後,《倉易》設定了以下規矩:「數位九宮、編碼字元、部首核心、結構參造、部首四象、四象疊碼、捏形字卦、有形無卦、書寫編排、省碼情境。」並達成了6507個漢字無重碼的突破。

1.數位九宮:同手寫九宮格之概念,所有編碼漢字構成不超過六碼。也就是一個編碼漢字最多只需輸入6次即可完成。並且所有的《倉易》字碼最終也都是六碼長相。(由於有設計確認鍵的關係,《倉易》在使用上不一定都會需要輸入到六次。而再不足六碼的情況下,「無」字卦就會將其填充至六碼,例如:日「陽嵌無無無無」)

2.編碼字元:然而所有漢字不論是否進行編碼,我們都可以依其圖像符號拆解成若干字元。而這些挑選過的字元將是構成各種漢字的基石(這些形體不一定跟字義有明確的關係,但通常來說都具有強烈連結)不消說在不同體系的拆解之下,這些基石字元也各不相同。而在《倉易》底下它們還具有以下幾個特性:
       a.在漢字拆解過後,拆解出來的字元依其性質分為部首、部件及結構。另外,在不同的漢字拆解中就算有相同的字元,它們彼此持有的性質也不一定會一樣。(例如:可的「口」是部首,但柯的「口」是部件)
       b.所有字元最多三碼(意及最多按三次)
       c.所有字元在特定情況下,可能會增碼或省碼(意及減少/增加輸入次數)

3.部首核心:代表《倉易》的所有漢碼皆有部首,並且漢字部首字為《倉易》編碼的優先對象。(另外須再次說明的是,《倉易》中部首字不等同部首字元。)而若是該字元擔當某個漢碼字的部首時需完整輸入其定義的編碼,沒有增減。
a.在此使用的部首總類為213個傳統部首加15個簡中部首。其中傳統部首是承襲《字彙》以及《康熙字典》的214部首而來,唯將夊部合併至夂部。

4.結構參造:若數位九宮在省碼過程結束後仍保有空間,則需參考一級字源拆分來輸入結構。而當數位九宮被填滿或是當中出現結構字卦(也就是確認鍵)時,表示該漢碼輸入完成,應當在螢幕上呈現所該對應的漢字。另外,一級字源拆分是找尋該字的父母,因此追溯出來的是漢字而不是字元。但在《倉易》作為參照時,是看其相對位置所對應的字元組合來映射其父母,然後再來判斷其結構。以下詳述各結構在《倉易》的定義:
        a.直行結構:若父母輩僅有兩個,且映射的字元組合呈現上下堆疊,則為此。
        b.橫列結構:若父母輩僅有兩個,且映射的字元組合呈現左右擺放,則為此。
        c.包圍結構:若父母輩大於等於三個,或是其中映射的字元組合至少有兩組邊長被其他字元組合完整包圍,則為此。
        d.嵌套結構:若父母輩即為本身或父母輩是其它漢字(此字本身是訛字或俗字等異寫體)或映射出的字元組合相互沾黏不可分,則為此。

5.部首四象:一般而言漢字中的部首都會形似原本的部首字,但也不乏有部首偏旁長相完全不一樣的時候。而在《倉易》中為了解決此一問題,重整了部首偏旁的範圍,讓部首可以用「行列圍嵌」的結構特性帶出四種長相。具體請參照成果連結的<部首核心>頁面查看。
        a.偏旁同胚:倘若該部首偏旁字的書寫筆畫等同於部首字時,《倉易》暫不解。如:「亻人」、「灬火」蓋因目前理論沒有較好的兼容方式,且作者以為這些皆是拓撲同胚,也應當不用另行構造。

6.四象疊碼:由於一個編碼部首有四種長相,而這四種長相的字元在字元階段所擁有的編碼是一模一樣的,僅在文字層面上的編碼結構(確認鍵)不同。因此仍不免俗地會有重碼的情況發生,因此在以下情況則需要重複輸入。
        a.若部首四象中的「行列圍」是「嵌」的重複字形(如:炎炏焱就是火的重複字形),且該字元在字中是部件,且該字字元構件僅有兩組,則該四象字元需重複輸入編碼。具體有那些可直接參看結果連結<漢字編碼>備註欄中標註疊字的部份。

7.捏形字卦:也就是《倉易》字元實際所需敲擊的編碼按鍵,一鍵一卦即為一碼,共計卅二組(詳細可參看結果連結<卅二字卦>)每一組字卦除代表字元外,還有代理字元及輔形字元。如同拼音字母般,在不同組合下,同字母的發音也不一定會一樣,具體音調還是得看KK音標或國際音標等。因此字卦也不單單僅有一個代表字元。而代理字元及輔形字元就是針對不同省碼情境下可以省碼的字元長相。
       a.代表字元:除結構字卦及無卦外,其於字卦僅有一組,且一定是漢字部首,也因此部首四象都是代表。
       b.代理字元:除結構字卦及無卦外,其於字卦皆有左右兩組,且一定是漢字部首,也因此部首四象都是代理。
       c.輔形字元:除結構字卦及無卦外,其於字卦皆有若干不等的輔形,但不一定是漢字部首,若是則部首四象皆是輔形。

8.有形無卦:卅二字卦中最特別的當屬無卦,這也是所有代理字元必然擁有的編碼。其作用不僅是用來填補數位九宮的空缺,更是字元省碼的重要輔佐。基於排列組合的概念,若是將它放在剩餘的27組字卦的左或右時,會被視為不一樣的排列順序。這樣的好處是,由於無卦本身不帶有特定的概念,因此省略時不會有負擔,但需要時卻可以做出區別。
        a.左、右代理字元其無卦分別放在該字卦的左右,形式如:左代理字卦:「無卦」、右代理字卦:「卦無」。並且字卦中的左代理會比右代理的筆畫少或是在《康熙字典》的排序中靠前。而具體各字卦所包含的代表、代理及輔形字元請對應<卅二字卦>以及<部首核心>查看其編碼。
        b.另外,無卦只會出現在輔形字元之中,其於字元皆不會出現。

9.書寫編排:漢字由於書寫為2維平面,各字元的書寫先後嚴格來說並沒有必然性。因此如何轉譯成有序的線性輸入法,各家所用的準則也不盡相同。在此《倉易》採用的方法是筆畫順序來判斷先後出現的字元,也就是當筆畫書寫到該字元,不論之後該字元有否被寫完,它都會優先出現在編碼前面。
        a.由於作者出生於臺灣,所使用的書寫習慣是中華民國教育部所訂立的,不確定海外其他使用漢字的書寫習慣。為此若是有書寫順序的出入,《倉易》目前優先參照中華民國教育部訂立的書寫順序為依歸。

10.省碼情境:在講完上述各種概念後,最後就是省碼情境的應用。誠如一再提到的,漢字是由字元組成的,因此在開始省碼前,優先填上所有原始字元的編碼,然後再依循以下的情境開始做刪減,刪減完成後若還有空間則再添加結構字卦並填補無卦至六碼。
       a.代理省碼:當代理字元為部件時,省略無卦後依舊大於等於三碼(不含結構字卦),則該字元就可省略無卦,單獨用該卦代表。
       b.輔行省碼:當輔形字元組成為部件時,用單卦表示後依舊大於等於四碼(不含結構字卦),則該字元就可以使用單卦表示。其中省略的字元順序是由後往前省碼。
       c.大字省碼:當漢碼筆畫大於六碼時,則依結果連結<漢字編碼>編碼字元欄中括號裡的字元省略。(原先作者以為六格空間理應夠放所有漢字,但實際處理依舊發現不少漢字組成比預想的還要複雜。作者曾想過是否應當擴充數位九宮的大小來保持文字的完整,但細想卻覺得應當分類中文字,讓某些中文字屬於大字集,好與一般字集作區別。)



三、《倉易輸入法》實務操作及安裝

在了解上面的規則後,我們來仔細介紹結果連結<漢字編碼><部首核心><卅二字卦>的頁面要如何觀看。另外,如果想要實際操作看看的,以下連結是字庫檔。主程式使用的是《倉頡平台 2022》,字庫的替換方式可參見壓縮檔中的圖片說明。

       https://drive.google.com/file/d/1450XDgska88_TqkO6DwSDGLOnk_XASWt/view?usp=drive_link

1.漢字編碼,頁面由左而右的欄位依序是:
       a.統一碼:也就是Unicode標準,是資訊科技領域的業界標準,其整理編碼了世界上大部分的文字系統,使得電腦能以通用劃一的字元集來處理和顯示文字。
       b.部首(傳):參造全字庫網站中的部首來分類。(但作者有時為作業方便而直接參看《康熙字典》的部首分類,若有出入以全字庫為準)
       c.筆畫:參造全字庫網站中的筆畫。(之所以沒有以《康熙字典》為主要經典的原因是,作者起初並不知道《康熙字典》的筆劃是依照部首原型的方式計算。而作者習慣以中華民國教育部的版本計算,整理到很後期的時候才發現兩邊的計算方式並不一樣。為此為了確保筆畫與部首來源一致,一律依全字庫為準。)
       d.一級字源拆分:依照小學堂網站、漢典網站當中提供的《說文解字》、《康熙字典》等文字敘述及圖像推得。其中亦不乏有作者知識背景不足而無法辨別的時候(無法確認時,作者會以括號表示這可能不是這組源頭,並用「;」來保留思路。另外「;」左邊的會被用來作為編碼結構的判斷),以及資訊不足得由作者做猜測的時候(這時該欄會用斜體字表示)。
       e.倉易編碼(符):編碼完成後,各符號對應當今英文鍵盤上的標示
       f.字形:顯示螢幕上,Unicode標準編碼所對應的漢字。
       g.編碼字元:對應該字形所拆解出來的所有字元,其中紅粗體字代表該字的部首。其中有不少部首被作者重新調整過,不一定是全字庫網站或《康熙字典》中所使用的分類。因為作者發現某些部首分類,未必是該字中最適合擔任的字元。
       h.倉易編碼(卦):使用字卦名稱排序的編碼,其中黑色粗體字代表該字的結構
       i.筆畫(碼):不計結構字卦及之後的無卦,對應到《倉頡(五)》、《郑码輸入法》就是計算確認鍵前輸入多少次。
       j備註:關於作者對於此字的一些想法紀錄
       k.倉頡(五):《倉頡輸入法》的第五代版本
       l.郑码輸入法:《郑码輸入法》

2.部首核心:共計227個編碼部首及其編碼偏旁,其中倉易編碼欄位定義了該字元在《倉易》的標準長相,而形狀參考欄位則說明作者如此定義的思路。

3.卅二字卦:關於各卦所包含的代表、代理、輔形以及所對應的鍵盤符號。另外也揭示了各卦名稱的命名由來。這邊也將詳述這些名稱的命名思路。
        a.無極:無極而太極,是陰陽兩分前之混沌狀態。就像文字書寫前就會安排好其空間然後才會下筆書寫。
        b.結構:中文書寫結構的四種常見的特徵,直行、橫列、包圍、嵌套。
        c.七耀:抽換《倉頡輸入法》中的關於「日月金木水火土」的說法,改用中國古人將歲星(木星)、熒惑(火星)、填星(土星)、太白(金星)、辰星(水星)加上太陽(日)、太陰(月),合稱七曜的稱呼。
        d.筆畫特徵:參考了《五筆輸入法》將漢字筆劃分為五種,「橫、豎、撇、捺、折」唯將捺(點)的概念換成勾。並將捺與點的概念分別放入「角卦」與「劃卦」中。
        e.人體:依照漢字中有使用到的人體概念,劃分了五種區域,象徵頭頂面部的「面卦」、象徵手掌形象的「掌卦」、象徵腳部形象的「腳卦」、象徵嘴巴範圍的「嘴卦」、象徵軀幹身體的「體卦」。
        f.形狀:依照漢字中楷書書寫有使用到的形狀,挑選了五個做為代表。看起來像一塊塊的「塊卦」、看起來像是畫框柩的「框卦」、看起來像畫線條一樣的「線卦」、看起來像交叉一樣的「交卦」、看起來像尖尖角的「角卦」
        g.狀態:依照漢字中的一些字元狀態,挑選了五個做為代表。由點劃出發的「劃卦」、像是側面擺放的「側卦」、像是盛載一切的「盛卦」、像是並列擺放的「並卦」、像是舒展大方的「展卦」



四、《倉易輸入法》後話及總結

以上說明就是《倉易輸入法》的綱要,或許結果頁面或輸入過程中仍有些許邏輯不合上述,但那是作者僅一人之力的緣故,無法多次精確校稿的錯訛;另外拆解字理或字理還原有不夠學術或嚴謹的地方也歡迎留言讓作者知道。希望這拋磚引玉的動作,能吸引更多的前輩及愛好者再次關注此一議題。最後橫向比較一下,《倉易》與《五代倉頡》、《郑码》的筆畫(碼)的分布圖、不重碼的數量、平均筆畫(碼)供大家參考。
        a.《倉易》

        b.《五代倉頡》

        c.《郑码》





 樓主| 發表於 29-6-2023 10:31:41 | 顯示全部樓層
感謝提供資訊~看來還有很多前輩們的資料沒讀過。如果還有看不懂的地方也歡迎發問
發表於 28-6-2023 12:50:17 | 顯示全部樓層
請問《卅二字卦》是不是表示那是32鍵的輸入法呢?
 樓主| 發表於 28-6-2023 17:30:32 | 顯示全部樓層
本帖最後由 Dustin 於 28-6-2023 05:36 PM 編輯

對~可以參看附圖,大部分的鍵盤位置也是延續倉頡輸入法的位置。只是我在整理的時候發現,這些輔助字形可能會更好用。並且加入4個確認用的結構鍵,一個特殊用的無卦(或是要叫無字鍵)。
DL-KeyMap.png
發表於 28-6-2023 20:54:00 | 顯示全部樓層
Dustin 發表於 28-6-2023 05:30 PM
對~可以參看附圖,大部分的鍵盤位置也是延續倉頡輸入法的位置。只是我在整理的時候發現,這些輔助字形可能 ...

看起來是個不錯的輸入法,但是想要推廣的話,必須在26鍵以內,因爲fcitx5-android之類的輸入法不支援超過26鍵。想打標點也不容易。行列輸入法、大易輸入法都因爲超過26鍵而失敗。

師大大師輸入法也是超過26鍵的,改良自倉頡的輸入法。

6000字以內無重碼的確是很吸引人。我所聽過的虎碼輸入法也是幾千字以內無重碼的輸入法,它吸引了很多愛好者。加油!
發表於 7-12-2023 08:17:56 | 顯示全部樓層
這是第一次聽過的〈倉易〉輸入法,我還以為是倉頡和簡易輸入法的結合輸入法呢,以前台灣的「倚天中文系統」內建的倉頡輸入法就是倉頡包含簡易,是很多人都用過的中文輸入法。我覺得很不錯,也啟發我開發中文輸入法。
您需要登錄後才可以回帖 登錄 | 注册

本版積分規則

Archiver|手機版|小黑屋|康熙字典与倉頡之友

GMT+8, 27-4-2024 11:17 PM , Processed in 0.017144 second(s), 11 queries , File On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回復 返回頂部 返回列表






倉頡之友 .自學倉頡輸入法    1997 - 2024   
馬來西亞    https://www.chinesecj.com
姐妹站:康熙字典網上版