2023年6月30日 星期五

漢字使用環境的建置 —— 小學堂字頭全宋體更新

☆ 2023/10/13 《漢字構形資料庫》字典累積修正更新,原連結請重新下載。

漢字構形資料庫

漢字構形資料庫」是早年由中央研究院與幾個學術研究單位共同研發的一個大型漢字檢字系統。當時的時空背景仍是 BIG-5 碼的年代,於是設計者利用有限的使用者造字區,分做十三個外字集,把九萬多個漢字塞入這些外字集中。後來由於  Unicode  標準的興起,「漢字構形資料庫」所定義的「構字式」、外字集遂逐漸失去主導地位,於是官方在 2013  年宣佈停止更新,重點轉移至線上的「小學堂文字學資料庫」。我所製作的「部件檢索」,很多數據與理念便是承襲自「漢字構形資料庫」。以今日的觀點來看,要使用者安裝十三個編碼重疊的字型並藉助間接的「構字式」來對應,確實是難以使用,但任這些曾經的寶貴漢字資源,逐漸湮沒在荒煙蔓草之中,實在可惜。於是我又拉了 suns99 兄,開始了一段大規模的「搶救之旅」。

壓力中的信念與希望

在去年底完成了「中醫藥特用漢字」的整理之後,我與  suns99 兄便開始了整理「漢字構形資料庫」的工作。「漢字構形資料庫」有現成的字型、完善的拆分資料,理論上應該會比較輕鬆,集中火力的話,或許兩個月左右便能完成。但我却放慢了腳步,一來是心疼老友  suns99 兄,總是被我「逼著」高強度地工作,呵呵;二來是我自己也逐漸沒辦法如此重的負荷了。

父母親都年事已高,大腦與身體的退化讓他們慢慢地喪失了生活自理的能力,我必須花愈來愈多的時間來照顧他們。這半年來照護的壓力與日俱增,可是我始終不曾放棄,「整理漢字的工作」成了壓力中的一個信念與希望,支持著我在忙累之中,挺直腰桿踽踽前行。

這次的整理,我採用比較不一樣的策略。「漢字構形資料庫」的 93305 個字頭,扣除有 Unicode  標示的之外,剩下 24350  個缺字需處理。由於有較完善的拆分資料,我利用批次部件檢索進行檢字,再以人工方式核實,先完成初步的還原清理。然後再交給  suns99 兄以倉頡輸入法複驗,逐一檢查是否為真的缺字。

就這樣,工作在時間夾縫裏緩慢地進行。我每完成一部分初稿就交給  suns99 兄複驗,直到六月上旬,suns99 兄完成所有的複驗,我才開始做最後整理。將實際缺字編碼,抽取字形補入字庫。清理之後,有 274  組字頭重複出現,於是人工一一查證,發現「漢字構形資料庫」的 Unicode  標示多有「不實」,很多與 Unicode   官方的字形不一致,反而是以《漢語大字典》字形為準。逐一修正之後,仍有 54  組字頭重出,應該就是官方的漏網之魚,沒有加以註銷的重出字了。

舊物重生

由於「漢字構形資料庫」已是十多年前的舊物,這十年間「小學堂」陸續又增收了兩百多個字頭,這部分字頭沒有現成的資料與字型,我只能從官網上查閱,整理出資料與字型。經過清理,再增收了 163 字,至此「漢字構形資料庫」,或者應該說「小學堂」的字頭就全部收齊了。排除符號之類的非漢字,此次整理總計新收錄了 13859  個補充字,「全宋體」的收字數量來到 198806  字,逼近二十萬字。

(這些增收字目前在「缺字系統」裏也完全找不到)

完成了字型,再將拆分資料略事優化之後加入「部件檢索」,這些十年前的舊物便再一次重生了。使用者只要安裝「全宋體」這個單一字庫,便能以「部件檢索」檢索到「漢字構形資料庫」或「小學堂」的全部字頭,更能直接用這些字來數位化古籍文獻,不再有窒礙。


錯誤勘正

「小學堂」的某些字形還是有問題的,例如:

字號:59470
字形誤作「䲕」,與字號:81234(10.F57A)相同。依照它的拆分資料及查閱《漢語大字典》第一版,字形當作

字號:63023
字形誤作「㸬」,與字號:33162(3.E3B1)相同。依照它的拆分資料,字形當作

字號:80971
字形誤作「𨞁」,與字號:50375(5.F65C)相同。依照它的拆分資料,字形當作

字號:64568
此字空有拆分資料卻無字形,這是唯一一個我無法收錄字形的字頭。

當然錯誤不止這些,以上僅舉數例做為代表。

離線字典

由於「漢字構形資料庫」的原始設計是以它獨特的「構字式」來關連字形,這就不是簡單地遷碼能解決問題,因此我無法提供一個簡單的「遷碼對照表」,或是有效的解決方案來批次轉換文檔。

我只能將整理的結果做成一部離線字典,讓使用者以「部件檢索」檢索到某個字後,利用這部字典快速跳轉至「小學堂」官網對應頁面,進行查閱。只要將我製作的《全字庫》、《教育部異體字索引字典》、《漢字構形資料庫》放在同一群組,一次查詢就能橫跨三個大型漢字資料庫、快速調閱官網資訊,當是極有用的工具。

資料庫中的一些資訊,感覺用處已不大,像是「小篆編號」一欄,似乎與目前「小學堂」官網已不一致,姑且留著備查。只有「字源」一欄,可以理解當初據何來源收字,尚有其參考價值(「小學堂」官網沒有這項資訊)。

點擊字頭後的「字號」,可以直接帶出「小學堂」官網對應字頭頁面。點擊最右邊的「字碼」,則可以直接帶出字形資訊頁面。


《漢字構形資料庫》離線字典在此一併發布,不再另行撰文介紹。


詞條總數:93547
漢字數目:93069
符號數目:477
圖片數目:0
連結數目:1
下載連結:漢字構形資料庫.zip


字形優化

根據我的觀察,「漢字構形資料庫」提供的楷體字形正確性較高,與拆分資料多半一致,明體字則有不少字形與楷體並不一致,甚至是錯誤的。這部分我已盡力修正,讓所收錄的字形維持正確。

「漢字構形資料庫」的  24350  個未編碼字扣除 13696 個增收字,也就是說還有 10654 個字形屬於既收字。這些字形當可擇其優者替換掉一些「全宋體」原先質量較差的字形,只是可用的時間實在窘迫,這部分尚未完成。

字型更新

經過這些整理,這次更新給大家的全宋體,除了基本字區、A - H 區的已編碼漢字共 98060 個外,再加上 100746 個 Unicode 尚未編碼的補充漢字,總計共有 198806    個漢字。除了涵蓋 Unicode 15.0 的所有漢字、涵蓋了四大字典的所有字頭與台灣 CNS 標準的編碼漢字之外,更涵蓋了「小學堂」的所有字頭,足堪專業領域之使用。

另 Unicode 15.1  新增的四個 IDC  字元:U+2FFC ⿼、U+2FFD  ⿽、U+2FFE ⿾、U+2FFF  ⿿,我也增補進來,方便  IDS 構字式的使用。

下載連結:全宋體.zip
下載連結:倉頡碼表.7z (僅保留漢字部分,請自行併入您慣用的碼表)

安裝字型的方式請參閱 漢字使用環境的建置 ㈠ —— 顯示篇 的說明。

鳴謝

感謝這些原字型製作單位與作者的無私奉獻。
感謝老友 suns99 兄,總是不離不棄地與我並肩作戰。
感謝好友 Mastameta 兄,陸續提供了一些優化字形供我替換。


現將此成果無條件分享出來,樂見學術研究、教育工作、個人閱讀這方面的運用,但請勿用做任何形式的商業營利行為。希望「全宋體」這個大型字庫以及「部件檢索」這個檢字工具,能在漢字文化的整理、研究上幫上一點小忙。




勘誤:



本分隔線以下已更新處理
  • 󼱊􁗓重複,後者註銷。(2023/09/20)
  • 󼸛􁈇重複,後者註銷,字形依後者。(2023/09/19)
  • 󶄟􀧪重複,後者註銷。(2023/09/13)
  • 臘􁗹重複,後者註銷。(2023/09/06)
  • 󳠆􀒢重複,後者註銷。(2023/09/04)
  • 󻋋􀖴重複,後者註銷。(2023/09/04)
  • 󻋱􀘋重複,後者註銷。(2023/09/04)
  • 󱭝􀟰重複,後者註銷。(2023/09/04)
  • 𬈃􀣫重複,後者註銷。(2023/09/04)
  • 󴚹􀥁重複,後者註銷。(2023/09/04)
  • 󻌮􀈈重複,後者註銷。(2023/09/04)
  • 󿈽􀈭重複,後者註銷。(2023/09/04)
  • 󻈕􀕳重複,後者註銷。(2023/09/04)
  • 󰾀􀫻重複,後者註銷,字形依後者。(2023/09/04)
  • 󻁶􀘀重複,後者註銷,字形依後者。(2023/09/04)
  • 「􂬟」字形修正从「士」。《教育部異體字字典》宋體字形錯誤。(2023/09/04)
  • 「􂺂」字形修正从「兔」。《教育部異體字字典》宋體字形錯誤。(2023/09/04)
  • 「􀗪」字形修正从「田中女」。《教育部異體字字典》宋體字形錯誤。(2023/09/04)
  • 𧏝󲫽重複,後者註銷,字形依後者。(2023/09/04)
  • 󱻵􀂠重複,後者註銷,字形依後者。(2023/09/03)
  • 「􁻢」字形修正作「⿸厂⿱⿰屰攵足」。《教育部異體字字典》宋體字形錯誤,據手寫字形改。(2023/08/31)
  • 「󽗒」字形修正作「⿰虫𦞅」。《中華字海》字形錯誤,與筆畫數不合。《說文長箋》無此字形,據篆文字頭改。(2023/08/30)
  • 𡑻􄓑重複,後者註銷。(2023/08/20)
  • 󽻄􂆀重複,後者註銷,字形依後者。(2023/08/15)
  • 𢲀􄐩重複,後者註銷。(2023/08/11)
  • 􆪾􆴶重複,後者註銷。(2023/08/11)
  • 𫵙􆁿重複,後者註銷。(2023/08/11)
  • 𰲛󵀨重複,後者註銷。(2023/08/11)
  • 𪦧􅫜󺺄重複,後二者註銷。(2023/08/11)
  • 𤲥􀼧重複,後者註銷。(2023/08/10)
  • 「󳖔」字註銷。《漢字海》錯誤字形,據《中文大辭典》應作「𡯪」。(2023/08/02)
  • 󿚍􄬻重複,後者註銷,字形依後者。(2023/07/28)
  • 󽆑􁃎重複,後者註銷,字形依後者。(2023/07/25)
  • 󽆩􁃑重複,後者註銷,字形依後者。(2023/07/25)
  • 󽆥􁃐重複,後者註銷。(2023/07/24)
  • 󽆒󿙟重複,後者註銷。(2023/07/24)
  • 󽆫􁃛重複,後者註銷。(2023/07/24)
  • 󻍖􇌘重複,後者註銷。(2023/07/22)
  • 𢿣􄒥重複,後者註銷。(2023/07/21)
  • 「􄔁」字註銷。《教育部異體字字典》錯誤字形,據元刊本《玉篇》應作「󻍴」。(2023/07/21)
  • 𩄚󵢾字形交換,以合於 CNS 標準。(2023/07/20)
  • 󴜭􀭏重複,後者註銷。(2023/07/17)
  • 𡲘󰜏重複,後者註銷。(2023/07/17)
  • 「􀃰」字註銷。《教育部異體字字典》錯誤字形,據《重訂直音篇》應作「󵅆」。(2023/07/14)
  • 「󰴥」字註銷。《漢語大字典》第二版錯誤字形,一版無誤,據《字彙補》應作「𩄥」。(2023/07/11)
  • 𩒭󰴰重複,後者註銷。(2023/07/10)
  • 「󳲡」字形修正作「⿳山宀󰉟」。《中華字海》字形錯誤,據朝鮮本《龍龕》改。(2023/07/09)
  • 43534 󽛢:官網字形誤作「⿱𥫗普」,據《漢語大字典》修正。(2023/07/04)
  • 99596 𫸲:字形與 62042(7.F35D)同,重出。(2023/06/30)
  • 80971 􇽣:官網字形誤作「𨞁」,與 50375(5.F65C)同。(2023/06/30)
  • 79331 􈺴:官網字形誤作「𩰤」,與 21413(1.E65E)同。(2023/06/30)
  • 63023 󰢔:官網字形誤作「㸬」,與 33162(3.E3B1)同。(2023/06/30)
  • 59470 􈻓:官網字形誤作「䲕」,與 81234(10.F57A)同。(2023/06/30)




19 則留言:

  1. 提个小建议,每次字型更新的时候,全宋体的字体文件上的版本号可以递增下吗?现在全是Version 1.00,有些词典文件里附带了全宋体,但是时间久了,没法确认使用的全宋体是什么版本。

    回覆刪除
    回覆
    1. 您好!由於平時我對字型的更動非常頻繁,改動版號太費事了,因此沒有養成改動的習慣。感謝您的建議,下次更新時我再注意一下,如果我還記得的話,呵呵!

      刪除
    2. 多谢!只需要在对外发布字体的时候,更新版本号就可以了。

      刪除
  2. 您的每個作品都是我生活的一部分了,尤其這次加入了漢字構形資料庫的字,實在太棒了!萬分感謝!

    回覆刪除
    回覆
    1. 多謝讚美,您的支持也是我持續前進的動力。

      刪除
  3. 建議全宋體壓縮包這個文件名“簙虏代刚”使用unicocde編碼,BIG5編碼在簡體中文環境下呈現亂碼,無法閲讀,謝謝大佬,大佬費心了,兩個人堅持半年又加了1万多字。

    回覆刪除
    回覆
    1. 感謝您的提醒。我習慣用 7zip 進行壓縮,照說我已經指定 cu=on 的參數,應該會用 Unicode 編碼才對。手邊沒有簡體的環境,難以驗證這件事,看來這參數沒有生效,我再研究看看。

      刪除
    2. 可以试试7zip的最新版,在简体中文环境这个文件名的确是乱码,谢谢大佬。

      刪除
    3. 已經更新至最新版,下次發布再麻煩您看看是否改善,多謝!

      刪除
  4. 你好,我在製作《吳守禮國臺對照活用辭典》MDX後,發現Unicode官方的BOPOMO區段未完全納入全宋體,缺少7個字,另有3個字形錯誤,希望全宋體能夠修正這10個注音符號。
    圖片版: https://cloud.freemdict.com/index.php/s/i8rkQHWwNkcyJ3M

    回覆刪除
    回覆
    1. 您好!感謝您告知。經我檢視,您所謂的3個字形錯誤,應該並無錯誤。這些字形直接取自全字庫字型,或許是筆畫風格偏圓,讓您覺得與 Unicoe 的樣字不同。

      現有的 Bopomofo Extended 區段字形偏向宋體,與 Bopomofo 區段的偏向楷體不一致,我已重新取了偏楷體字形替換上去,缺的7個字也補上了,下次更新即可使用。

      刪除
  5. WFG‥
      一直忘了一件事‥
    《部件檢索》中,缺了「⻆」字——而是以「補充字‥󾉟」替代。
        ⻆ U+21c6  倉頡碼:nbq(記得加入倉頡碼表 wbx 檔中)
        󾉟 U+Fe35F 補充字(可刪除)
      此當修正!
     
      倉頡碼表 wbx 檔中——
       𬟏 𬟏 txu  ←多了一個“𬟏”字。
       tz 𬟏
     
      另外,建議‥
    《部件檢索》,內定「超過 99 字」,就會省略餘字的顯示。
    (每次都得去更改一下,程式裡的數值,才能全部顯示。)
      一般人使用,大概也不必去檢視所有的字,所以無須費時,全部顯示;
    但有時,也想要查看,其他「相同部件的組字」。
      是否能增設一個「顯示全部字數」的按鈕,在需要查看時,就按一下,好能顯示出,所檢索到的全部字數?
     
                      阿文

    回覆刪除
    回覆
    1. 「⻆ U+21C6」位於補充部首區段,嚴格來說它並非「正常的漢字」,而是一個部首符號,如同 214 個康熙部首符號一般。它的用途是專爲表達部首而設,不宜與「正常的漢字」混為一談,否則便會造成為人詬病的一字多碼問題,這是為什麼我要捨「⻆ U+21C6」而就「󾉟 U+FE35F」的原因。

      目前一次查詢最多會顯示99個字,如果覺得還想看更多,再按一次查詢即會最多顯示999個字,這個兩段式的設計,我覺得兼顧了基本與進階的使用情境,足矣!超過千字,基本上已難以查閱。如果真的增設一個「顯示全部」的按鈕,一不小心,輸入的部件構字性太強,十幾萬漢字灌爆瀏覽器,大概就掛了,只是徒增使用者的困擾而已。

      刪除
  6. 您好:
    這次更新小學堂字頭,實在非常感謝!藉這個機會,我瀏覽了全宋體的構字資料,現在將一些我看到的問題呈請您留意。

    􆛯@亻朿土 小學堂字型從束,合甲骨文;構字式誤作朿
    󽞏@臼火 字形上來看構字應該是𦥑。「臼火」與「𦥑火」在古文字中都存在,前者是遽/懅字,後者是鑄字。全宋體已有「󰩛(臼火)」,則此字較可能是「𦥑火」?又有「󵢣」實際上也是同字
    𤲥(ext.B)􀼧 同字(或許可用PUA字型)
    𪦧(ext.H)􅫜󺺷󺺄 同字
    𰲛(ext.G)󵀨 同字
    𫵙(ext.E)􆁿 同字,構字式為「𡰥止」,是「𨒈」的省形。Unicode原始規範字形就造的不太正確,下部既不是止也不是正。Sim-Sun ExtB的字形倒是非常正確。
    􆪾􆴶 同字,都是楚文字剌,漢字構形資料庫誤分。構字果刀者或可刪
    刅󿵢 同字
    叟@申又 此字在原始碼可以看到,卻搜索不到?

    以下皆構字有誤:
    􀏱@日󰉝
    􀏲@日又
    􀏳@目󵗘
    􀏴@日攵
    􀏵@日又
    􀏶@日镸又
    􀏷@日耎丶
    􀏸@日丿攵
    􀐁@艹󰊓日
    􀐂@䒑旲
    􀐕@日广󼬰
    􀐨@下冖又 構字實可與下一字相同
    􀐪@丅冖一又
    􀐬@丅又
    􀐵@八曰
    􀐶@一曰
    􀐷@卄曰
    􀐹@丷曰
    􀐻@刀冖日
    􀐼@刀冖八日
    􀑀@亼曰
    􀑁@𠆢丅曰
    􀑂@𠆢十曰
    􀑃@𠆢二
    􀑄@𠆢干
    􀑉@文月 依字源應從又/󵗘
    􀑊@月又
    􀑋@月又
    􀑌@十又
    􀑓@月一反
    􀑔@月反
    􁂮@宀臼
    􀉻@月攵
    􀉾@月又
    􀉿@丅耳攵
    􀊀@月攵
    􀊂@十口又@古又
    􀏏@日刀儿
    􀏐@日刀儿
    􁕪@厂月
    􀏑@日厂
    􀏒@日厂工
    􀏓@晶厂
    􀏔@晶厂工
    􀏕@厂工日
    􀏖@厂日
    􀏗@晶厂
    􀏘@木囟木厂
    􅿞@釒󘀆 󘀆非字,應為􆰢
    􂙾@卄□乂卜回 □非字,艸亦誤
    􀓞@木卩
    􃷵@魚寸
    􂐓@豆隹
    􂘄@关丷良 左旁構字有誤?
    􂘋@又食
    􂘐@亼土戈丶
    􂙜@宀󰊓馬
    􂚀@馬亼亚 簡體
    􂚃@馬戶
    􂚘@骨卄死廾 右旁即葬?
    􂚙@骨卄死十十
    􂡤@目𰀪󰊸乀 從𰀠
    􂡥@目八
    􂡦@目工斤一
    􂡧@目二丨二丨
    􂡨@目一斤一
    􂡩@目𰀪斤
    􂡪@目行
    􂡮@日爿一片一 或可作𤕰󰊅
    􂡰@目爿一片一
    􂡿@鼓甲一 從𤰞/田󺭉‖󰒌㇒
    􂢀@壴甲一丶
    􂢁@十豆攴甲一丶
    􂢃@耳一一乚
    􂢋@臼一儿
    􂢏@󰉊由
    􂢐@󰉊穴
    􂢓@鼠由 簡體
    􂢙@自甲
    􂢞@亠夕耳
    􂢠@亠丩月
    􂢡@亠丶丶丿丨一一 丿丨一一似可統一為󰑆,相關諸字也往往有其他錯誤,不全部列出了
    這些字往往是少了某一部件,猜想是處理時誤刪了?再往下看應該還有。
    若您大約知道會出問題的主要在哪個區域,我可以主力先看那部分。

    此外,構字原則有些區域不統一?例如部件「𦣻」有時分解作「一自」,如此一來,搜索「𦣻」時將搜不到定義為「一自」的字,而「𦣻」是更接近漢字原始構造的部件。其他還有如「𠔉/龹」又作「丷夫」等。這個問題似乎滿麻煩的,不知道您有沒有慣用的部件表之類,我可以協助校對。

    再次感謝您提供如此方便的工具!

    回覆刪除
    回覆
    1. 原內容是tab分隔的表格,貼上來後tab變成了空格,變得難以閱讀了,非常抱歉!

      刪除
    2. Walter兄好:

      感謝指正。

      「􆛯@亻朿土」這資料來自構形資料庫,原始數據就錯了。
      「󽞏@臼火」先生灼見,此字是據《漢字海》收字,正是同「鑄」。「󰩛」字是據《古文字通假字典》收字,正是讀為遽。「󵢣」字則是據《說文》小徐本收字,見「𤐫」字注。
      「𤲥(ext.B)、􀼧」重複,後者註銷。
      「𪦧(ext.H)、􅫜、󺺄」重複,後二者註銷。至於「󺺷」字,《漢字海》「󺺄、󺺷」二形兼收,只好保留對應。
      「𰲛(ext.G)、󵀨」重複,後者註銷。
      「𫵙(ext.E)、􆁿」重複,後者註銷。
      「􆪾、􆴶」重複,後者註銷。
      「刅、󿵢」《教育部異體字字典》二形兼收,只好保留對應。
      「叟@申又」兄謂搜索不到是什麼情形?我這裏可以呀!

      至於所列構字有誤者,這些便是我所謂「缺了胳膊,少了腿」來自《教育部異體字字典》提供的拆分數據。當時我也質疑是否是從資料庫轉換給我時,把未編碼的部件字給弄丟了,但承辦人員表示原始資料如此,我也無言以對。這部分的拆分數據問題很多,幾年下來我因爲時間精力有限,只能少量、少量地修正,無法一次性地全面修訂。這些字我有註記,數量大概還剩一萬四千字,一直是我心中的石頭,兄若能幫忙修訂,那真是感激不盡。

      拆分的數據,來源不一,原則多有歧異,我已盡力統整,但數量龐大,我無力逐一審視,只能邊用邊改。兄若真的願意跳此「火坑」,方便的話,在此留言您的 e-mail,然後立刻刪除留言,我可以將這部分的工作檔提供給您進行校訂。

      刪除
  7. 留言不知為何,沒有刪除選項T_T

    回覆刪除
    回覆
    1. 應該有啊!不知 Blogger 出了什麼問題。我已經發信,請兄查收。

      刪除