星期三, 6月 07, 2006

古契書的亂碼問題

這一陣子比較空閒,幫實驗室繼續處理一些「古契書檢索應用」的工作。

去年十一月,在「談古契書資料處理:之一」與「談古契書資料處理:之二」的 posts 裡,我曾提到「古契書中文編碼」的一些問題。

當時的問題之一,是「編碼標準」的衝突:將古籍數位化的人員,寫程式的人員、MySQL 資料庫、M$ 資料庫...,經常使用不同的編碼格式(常見的格式是 Big5, Unicode Little Endian, Unicode Big Endian, 與UTF-8),因而造成後續資料處理的困難。

經過一些討論後,實驗決定統一用 UTF-16LE 來儲存「文件數位化後的純文字檔案」。因為我的 THDL Retrieval Prototype 當初所用的文獻集(corpus)只含「明清檔案」的部分,而明清檔案的內容不像古契書那麼「古怪」,所以制訂好儲存的編碼格式後,似乎就解決了一大部分的問題。

這兩天處理古契書,又遇到「亂碼」的問題 --- 某些文件中,大概有超過三分之一的亂碼。為什麼會有亂碼呢?一部份的原因,是有些古契書是用日文書寫的(不要忘了,日本人曾統治台灣許多年);而有些古契書裡用的字,在編碼表上找不到對應(像是台大八魚社,四條魚組成一個字,就好像找不到對應的編碼)。另外,還有一部份的原因,則是因為數位化的人員想保存契書的書寫樣式,因而引用了多個 Microsoft Word 的物件,讓自動擷取文字的工具「誤判」而產生亂碼。

看個例子好了(因為剪貼也會經過轉碼的處理,所以許多原本「更古怪」的亂碼,在此已經被轉成問號了):

立遺囑鬮分書字人陳金山娶業林氏生水兄弟七人長曰杉奇次曰賜਍ഀ
能三曰勳珍四曰允固五曰五港六曰六賽七曰七子□母續世□詣子凜਍ഀ
命營鶯俱以完娶各齊承受繩繩是心之所欣慰也有積餘資創建各਍ഀ
處等業但余罕਍ὔ浵䅥⑾停쵠ὓ챵饚粖ᑑ텎蚏鍏൱上進數被宗਍ഀ
□侵漁難以總理似應分爨爰請房親姻戚共相酌議將兄弟鬮分應਍ഀ
份及已置山場山茶水田物業先抽起਍඙贊業段又抽起長孫田業其餘山場茶਍ഀ
畬水田物業以及家□往來賬項公仝配踏作七房均分至公無私禱神拈鬮਍ഀ
為定各應安分照鬮掌管自今日既約之后務各立志恢宏永敦和睦各自經਍ഀ
營創建各業各管਍靎ⵟ睲ㆁ豙⍔䙬偏⦆⅓酱왡쭢空톐⹖ڛ൒
਍坦͛᥎}⍎歛ћ綾㡘恬몐杰㥱⪋螂푸ї啔䎆涅⹩ڛ鵒땨ᝫ๒蹦൝

亂碼就亂碼,有什麼好大驚小怪?問題出在,亂碼轉來轉去,經過多次處理後,會變得越來越莫名其妙(非常符合「Garbage in, garbage out」的原理),而這樣會增加檢索前置處理的困難(有時,經由 regular expression 處理後會產生「原本不預期」的結果;有時,MySQL 會拒絕寫入資料)。

看來,項老師想做 Histoinformatics 的研究,要走的路還頗長呢!

後記:回家後發現這兩天與「古契書」奮戰的結果是:眼睛疲倦、肩膀痠痛。咦,我不是想好好地休息一下嗎,這麼辛苦做什麼啊?

沒有留言: