倉頡字元序列計畫

分享和討論倉頡輸入法相關的資訊和内容
版面规则
公正客觀講理,杜絶廢話連篇
回复
头像
ejsoon
圈圈精英
圈圈精英
帖子: 2401
注册时间: 2022年 11月 18日 17:36
为圈友点赞: 102 次
被赞次数: 101 次
联系:

倉頡字元序列計畫

帖子 ejsoon »

程式界面設計草案:
界面圖
界面圖
字元序列計畫界面圖.jpg (167.78 KiB) 查看 351 次
https://ejsoon.win/
天蒼人頡:發掘好玩事物
头像
ejsoon
圈圈精英
圈圈精英
帖子: 2401
注册时间: 2022年 11月 18日 17:36
为圈友点赞: 102 次
被赞次数: 101 次
联系:

Re: 倉頡字元序列計畫

帖子 ejsoon »

數據結構:

代码: 全选

{"20989":{"char":"函","ijlist":["横鉤","仰匡","水"],"head":[0,1],"relation":["","\\",">",""],"bracket":["1-2"]},"24555":{"char":"快","ijlist":["側心","五中","大"],"head":[0,1],"relation":["","|","#",""],"bracket":["1-2"]},"25033":{"char":"應","ijlist":["廣府","側人","側人","土","心"],"combination":["2-3"],"head":[3,4],"relation":["",">","|","+","_/",""],"bracket":["0-3","2-3"]},"27138":{"char":"樂","ijlist":["豎折","私右","斜撇","日","豎折","私右","木"],"head":[5,6],"relation":["","+","|","-","|","+","/",""],"bracket":["0-5","0-1","2-3","4-5"]},"29254":{"char":"牆","ijlist":["豎折","豎形","頁首","土","人","人","外圍","口"],"include":[[6,7]],"head":[2,5],"relation":["","+","+'","|",":","|","/",">",""],"bracket":["0-2","3-7","3-5","4-5","6-7"]}}
上次由 ejsoon 在 2024年 5月 9日 13:32,总共编辑 2 次。
https://ejsoon.win/
天蒼人頡:發掘好玩事物
头像
ejsoon
圈圈精英
圈圈精英
帖子: 2401
注册时间: 2022年 11月 18日 17:36
为圈友点赞: 102 次
被赞次数: 101 次
联系:

Re: 倉頡字元序列計畫

帖子 ejsoon »

https://ejsoon.win/
天蒼人頡:發掘好玩事物
头像
ejsoon
圈圈精英
圈圈精英
帖子: 2401
注册时间: 2022年 11月 18日 17:36
为圈友点赞: 102 次
被赞次数: 101 次
联系:

可以填構字符了: 倉頡字元序列計畫

帖子 ejsoon »

這貨做起來並不簡單。

現在已經可以填構字符了:
不簡單.png
不簡單.png (61.26 KiB) 查看 286 次
接下來要弄「數據結構」了。印象中有一種工作就叫「數據結構」,工資很高。現在我知道它為啥工資那麼高了。因為數據結構是最麻煩的。
https://ejsoon.win/
天蒼人頡:發掘好玩事物
头像
ejsoon
圈圈精英
圈圈精英
帖子: 2401
注册时间: 2022年 11月 18日 17:36
为圈友点赞: 102 次
被赞次数: 101 次
联系:

Re: 倉頡字元序列計畫

帖子 ejsoon »

按以下順序組合括號:

combine
bracket
head
contain
ijlist
https://ejsoon.win/
天蒼人頡:發掘好玩事物
头像
ejsoon
圈圈精英
圈圈精英
帖子: 2401
注册时间: 2022年 11月 18日 17:36
为圈友点赞: 102 次
被赞次数: 101 次
联系:

數據結構要重新做: 倉頡字元序列計畫

帖子 ejsoon »

剛才想到,字元序列的數據應該可以復用。

比如含「鳥」的所有字,「鶴鴻鷓鴣鶷鳿鵄鸖鳫鳯」等,都可以通過組合來快速生成。

只需要點「古」和「鳥」,加上它們之間的分體關係(並列),即可生成「鴣」的字元序列。

如果做不了這樣的自動化,可以先用文本替換的方式生成。

這樣就能最大限度的減少工作量。

然後我發現,當年做的「倉頡字首表」,這時就派上用場了!
https://ejsoon.win/
天蒼人頡:發掘好玩事物
头像
ejsoon
圈圈精英
圈圈精英
帖子: 2401
注册时间: 2022年 11月 18日 17:36
为圈友点赞: 102 次
被赞次数: 101 次
联系:

Re: 倉頡字元序列計畫

帖子 ejsoon »

當我們要為「醍」字添加字元序列及構字簡式時,只需要輸入「=酉/是」,則字元序列及構字簡式會自動生成。

前提是,「西」和「是」二字的資料已經存在。

也就是說,字元序列計畫將有以下意義:
  1. 解釋所有倉頡取碼問題
  2. 獲取一個漢字的構成部份
  3. 字型生成器
其中,字型生成器是朱邦復聲稱已經做好的。並且他似乎聲稱他能用倉頡編碼生成字型。然而我敢肯定這是絕對不可能的,因為倉頡編碼最多只有五碼,它省略掉太多的字型信息,並且只給鍵名,完全不知道它代表的是哪個輔助字形。

因此,只有我做的字元序列及構字簡式,能實現「字型生成器」,即依靠同一條字型信息的描述,來生成「楷、宋、黑、圓」等所有字型。

當然這需要其它程式高手來推動了,我一個人做不了這麼多,我也不太會字型産生這部份。
https://ejsoon.win/
天蒼人頡:發掘好玩事物
头像
ejsoon
圈圈精英
圈圈精英
帖子: 2401
注册时间: 2022年 11月 18日 17:36
为圈友点赞: 102 次
被赞次数: 101 次
联系:

Re: 倉頡字元序列計畫

帖子 ejsoon »

@鶴飛四季

本計畫已經初步完成,可以嘗試錄入了!

https://ejsoon.win/ijlist/

到時我會錄個視頻來講解它的使用方法。

若使用過程中出現bug或有改進意見,歡迎上報。
https://ejsoon.win/
天蒼人頡:發掘好玩事物
头像
ejsoon
圈圈精英
圈圈精英
帖子: 2401
注册时间: 2022年 11月 18日 17:36
为圈友点赞: 102 次
被赞次数: 101 次
联系:

Re: 倉頡字元序列計畫

帖子 ejsoon »

二十日,一千三百多行的代碼。其中很多的構思和算法是有點燒腦的,比如「自動劃分字首,得到倉頡編碼」。
https://ejsoon.win/
天蒼人頡:發掘好玩事物
头像
ejsoon
圈圈精英
圈圈精英
帖子: 2401
注册时间: 2022年 11月 18日 17:36
为圈友点赞: 102 次
被赞次数: 101 次
联系:

Re: 倉頡字元序列計畫

帖子 ejsoon »

昨夜做好了「回退」和「前進」功能,應該是基本做好了。雖然今早測出「魟」字存在bug,但不影響數據的錄入。

去「做」一個工具或系統是很難的,而去「用」它就是簡單的。@鶴飛四季是否願意來「用」一下這個工具?

現在已經實現了檢索已有數據,比如當你錄「訪」字時,點擊「真」按鈕,之後在輸入框裏打「(言)|(方)」,如果此前已經有「言」和「方」的字元數據,則它會自動集成,之後我們再點擊「劃分字首」,則「訪」的字元序列就完成了,提交即可。

做了滿滿的一個月,終於是做成了。跟「網頁輸入法一樣,也是一個不小的工程。

希望鶴兄能去用一下,先嘗試錄幾個簡單的字,如「古下不去羊牛」這些,試試手感。

我後面會談下字元序列計畫的意義,它是朱邦復夙願的繼承,朱邦復在《倉五手冊》序中提到,他實現了字型生成器,也就是用倉頡編碼,生成一個漢字字形。但是朱邦復並沒有做到,他也不可能做到,因為一個字的倉頡編碼,省略了太多的信息,比如「戰」省略了「口田」,同時它也不知道這個中文字母所代表的是哪個輔助字形。

但是我做的字元序列可以做到,因為我精確到了輔助字形,我為每一個輔助字形都命名,且列舉出了它們的可能變化。

也就是說,我不能說「因為虎碼、98五筆都有取碼所用字根的資料」,所以倉頡也要來一個。我想做這個字元序列,大概是在2017年左右我就有這個想法了。

倉頡取碼是必然要用到字元序列的,比如「勤」字的第二碼為何取「一」而不取「土」,正是因為前面取完了只剩下「一」。

所以對於倉頡而言,它的最準確也是唯一準確的描述是:倉頡是一個從字元序列中依照「首二身三」規則挑出最多五個並以此為編碼的中文輸入法。

不知道字元序列的話,既學不會倉頡,也無法用倉頡打字。這是倉頡輸入法跟其它輸入法的最本質區別。



做一個工具是很難的,寫代碼是很難的。我在做「括號匹配」及「字首劃分」時,走在路上都在想如何實現,前後有幾種方案,前一種已經差不多實現了,但是發現「賞」等字不行,又推翻重來。刪了一百多行代碼。第二版也不行,最終我才想到一個比較好的算法,去實現「自動劃分字首」。

這也是為了人們在使用這個工具時能多一點簡便,順帶能替人們檢查他的結構判定有沒有對。否則一開始我是小括號、中括號、大括號都是要人工填的,現在大括號是自動填的,大大方便了使用者。

這個工具能做出來是很不容易的,一開始我所想的數據結構過份複雜了,比如{字首、次字首、包含作用、字元、構字符}等都在這個數據結構中。要是我還按這個數據結構來做,不僅現在無法完成,完成的日子也遙遙無期。

還是經過了深入的思考,才得出現在所用的數據結構。當時在思考用何數據結構時,我就停了好幾日,想了好幾日,因為這個實在是太燒腦了。

為了做這個東西,把我眼睛、脊椎都累壞。(前面我有做一兩個月的,有「立體生成器、混亂時鐘破解、網頁輸入法」。)
https://ejsoon.win/
天蒼人頡:發掘好玩事物
头像
ejsoon
圈圈精英
圈圈精英
帖子: 2401
注册时间: 2022年 11月 18日 17:36
为圈友点赞: 102 次
被赞次数: 101 次
联系:

Re: 倉頡字元序列計畫

帖子 ejsoon »

與此同時,字元序列計畫可以很輕易就打ichirou等人的臉。

比如我說先結構判定,之後才能劃分字首。這個騎沈四傑就不同意。他們連這麼簡單的問題都搞不懂,智商如同三歲小孩。沒有結構判定,你連它是上下、左右、包圍都搞不清楚,你能劃分字首?

現在我用算法證明了,當你做完結構判定,則字首就呼之欲出。

再如ichirou一直為人詬病的「咼商一致」,那我們就把「咼」和「商」的字元序列寫出來,把它們的結構判定寫出來,那它們的認知上還會有甚麼問題?

因此,字元序列是一種能把問題、把倉頡規則講明白的方式。它是一種思想的表達。比如我想表達我對「咼、商」二字的理解和看法,我就把它的字元序列寫出來,再加以構字符號,這樣就十分清晰,一目了然。
https://ejsoon.win/
天蒼人頡:發掘好玩事物
回复

在线用户

正浏览此版面之用户: ejsoon 和 1 访客