陳小瑩,艾金勇
(1.西藏民族大學 信息工程學院,陜西 咸陽 712082;2.西藏民族大學圖書館,陜西 咸陽 712082)
基于小字符集藏文拉丁轉寫系統的設計與實現
陳小瑩1,艾金勇2
(1.西藏民族大學 信息工程學院,陜西 咸陽 712082;2.西藏民族大學圖書館,陜西 咸陽 712082)
隨著藏語語言信息技術的迅速發展,藏文拉丁轉寫成為迫切需要解決的重要課題之一。該文在前人有關藏文拉丁轉寫研究的基礎上,設計并實現了基于小字符集方案的藏文拉丁轉寫系統。文章通過對小字符集編碼方案的特征分析,同時根據藏文正字法知識,提出了基于小字符集編碼的藏文拉丁轉寫算法,并對具體算法策略進行了分析和說明,最后在Windows平臺進行了程序的實現。藏文拉丁轉寫方案的設計與實現,可以解決藏文多編碼系統之間的兼容性問題。
藏文;拉丁轉寫;小字符集;占位輔音
在國內外藏學研究領域,藏文拉丁轉寫實現了現代藏文與拉丁轉寫之間的相互轉換。近年來,由于藏語語言信息技術的迅速發展,拉丁轉寫形式不僅可以作為多文種少數民族文字處理平臺上文字的識讀和研究工具,還可以解決藏文多編碼系統之間的兼容性問題,前期已經有不少學者進行了相關的研究。陳麗娜等在《藏文拉丁轉寫的研究與實現》一文中針對大字符集編碼的字符特征在OpenOffice.org中實現了藏文的拉丁轉寫[1]。民族所的江荻研究員在《藏文的拉丁字母轉寫方法》一文中系統的闡述了藏文的拉丁轉寫原則和目前拉丁轉寫方案,并歸納出比較全面的藏文拉丁字符字母轉寫的規則[2]。祁坤鈺等在2008年《基于國際標準編碼系統地藏文拉丁文轉寫規則模型》一文中針對基本集編碼體系,提出了藏文變長序列碼到拉丁文轉寫的轉換模型,文中并沒有涉及具體的算法[3]??挡女彽仍凇痘赨nicode編碼的藏文轉寫拉丁文本的算法》中雖然提出了關于Unicode編碼的藏文拉丁轉寫算法,但是關于藏文黏寫字符等特殊現象并沒有針對性的處理,而在現代藏文中這種現象還是普遍存在的[4]。綜上所述,盡管在藏文拉丁轉寫方面前期已經有了相當多的成果,但是在小字符集編碼的藏文拉丁轉寫的具體實現上還有待進一步的研究?;诖耍疚幕谛∽址幋a體系,提出藏文拉丁轉寫算法,并在Windows 平臺下設計實現了該算法。
2.1 現代藏文的結構特點
書面藏語的“字”是由藏文字符和梵音藏文等字符構成的,共有30個輔音字母,10個梵音藏文字母,5個元音符號和3個梵音藏文元音符號,其中[a]為零位元音[5]。藏文的基本單位是音節,音節與音節間用音節符“.”分隔,句子與句子之間用單垂符“|”分隔,段落與段落之間用雙垂符“||”分隔。每個藏文音節結構上由“基字”、“上加字”、“下加字”、“前加字”、“后加字”、“重后加字”以及元音組成,它不僅具有橫向拼寫性,同時也具有縱向拼寫性,其中前加字、基字、后加字與重后加字橫向拼寫。而在縱向上可能有上加字、基字、下加字和元音的縱向拼寫。構成藏文字的前加字、基字、上加字、下加字、后加字、重后加字和元音統稱為藏文字的部件。每個結構位置上的部件都有固定的構造規則,除開基字外所有結構位置上的部件都可以空缺。
2.2 藏文的編碼特點
在藏文信息處理中存在兩種不同的字符集編碼和實現方案。一種是以藏文編碼字符集基本集為基礎,以垂直預組合的方法顯示藏文,簡稱大字符集法。另一種是基于ISO/IEC 10646(Tibetan)的藏文編碼方案,以動態組合的方法顯示藏文,簡稱小字符集法。大字符集主要是在計算機中以上下疊加的字母作為一個整體進行編碼的,這種方法將需要動態組合的上加字、基字、下加字和元音組合成為一個字丁,對每個字丁在藏文編碼字符集中進行編碼。但是這種方式的處理會導致大量的兼容字符,從而增加了系統處理的復雜性。而且這種方式需要對現有的藏文數據的所有組合方式進行預組合,難以實現所有系統的兼容。小字符集方法是將藏文完全按拼音文字處理,以其基本組成構件,包括元音字符、輔音字符、上下加字等為基本編碼對象進行編碼的方法,這是完全符合ISO的所有評估程序和批準原則的一個方案,是目前國際上較為流行的一種藏文編碼方案。而且隨著計算機技術的進一步發展,國際標準的小字符集可以勝任任何應用,目前大字符集實際已經被大多數系統放棄。
現代藏文拉丁轉寫系統的結構如圖1所示。整個現代藏文拉丁轉寫系統從功能上可以分為知識庫管理與維護、藏文文本預處理、藏文字丁部件分解和拉丁轉寫四個主要模塊。下面分別介紹各個模塊的功能和實現方式。
3.1 藏文文本預處理
藏文文本預處理模塊主要有藏文特殊字符的規范化處理和藏文黏著詞的分離和還原兩個部分,針對現代藏文文本中出現的特殊現象進行處理,以得到規范化的藏文音節字。
3.1.1 特殊字符的規范化處理
藏文文本中除了包括正常的規范字符外,還可能會出現英文縮略詞、簡寫詞、數字、符號等一些不屬于藏文字符的其他字符,這些不屬于藏文字符的其他字符直接影響著文本信息處理的正確性,所以在拉丁轉寫之前應該要進行規范化處理。
處理方式主要是歸納現代藏文中出現的一些非規范字的類別,并給出它們在規范化藏文詞表上的規范寫法,提取出轉換規則,建立相應的規則知識庫。在遇到此類特殊字符時只需要按照相應的規則進行轉換即可。
3.1.2 黏寫字符的處理


圖1 拉丁轉寫系統結構圖

粘著詞實例分離還原(基字)—————
其中表中字母s表示此音節字是分離后得到的,sr表示此音節字是分離后對前一音節字做還原后得到的。
3.2 知識庫管理和維護
該模塊的主要功能是維護和管理拉丁轉寫系統中所設計的三個知識庫的規范和管理,即對系統中需要調用的藏文正字知識庫、特殊符號特征規則庫、拉丁轉換規則知識庫內容的完善和維護,以便數據的有效調用和管理。
3.3 藏文字丁部件分解3.3.1 小字符集編碼特點

3.3.2 藏文字丁部件的識別
藏文字丁部件分解根據藏文音節構字規則及藏文小字符集編碼的特點分解各個位置上的字符。其核心在于尋找藏文的基字丁。
若令C表示藏文占位輔音編碼集合,V表示藏文元音字符編碼集合,NC表示藏文非占位輔音編碼的集合,同時根據藏文本身特征,設定下加字集合U,則U屬于NC,同時設定音節中編碼字符串為l1l2……ln(1= 1) 輸入音節字符串l1l2……ln,根據字符串匹配法找出其在集合C、V和NC中的字串C1C2……Cm、Vt和NC0NC2……NCk。k的值獲取后可根據以下幾種情況定位基字的位置并確定各部件字符。 2) 若k=2,則該音節中非占位輔音編碼串為NC1NC2,此時由小字符集編碼的特征判定此時組合字符中必定包含上加字和下加字,而按照藏文輸出順序,就可以確定出兩個非占位輔音NC0NC2分別為基字丁Ba和下加字Up,從而確定出基字丁位置。 4) 若k=0,則該音節中無非占位輔音編碼串,表明該藏文音節沒有上加字和下加字形式存在。此時判定基字位置需要依據元音字符進行判定。若t>0,則可以判定元音前面的輔音字符必定為基字。如果t=0,則需要根據音節寬度進行進一步判別,判別時利用藏文正字法進行分別討論得出對應的基字Ba。 待基字編碼串Ba確定后,再根據Ba是否屬于集合NC進一步來判定其他部件的位置。如果Ba屬于NC,則其后面的占位輔音依次為后加字和重后加字。前面緊挨著該輔音字符的必為上加字,若前面還有占位字符,則為前加字;否則該藏文音節中一定不存在上加字,其后的占位輔音依次為后加字和重后加字,其前面的占位輔音為前加字。最后根據得到的結果確定出各位置上的部件編碼。 3.4 轉寫規則 藏文拉丁字母轉寫是指在不必理解詞句語義的情況下,按照讀音將藏文字母轉換成拉丁字母的方法。對于藏語文字信息處理而言,拉丁轉寫更多的是作為現代藏語的識讀和研究工具,因此本文以藏文的音節為基本單位,依據音節的組織結構,對音節的各個部分分別進行轉寫,實現了基于現代藏語語音的聲韻母轉化方案。 前面已經確立了藏文音節的各部分部件,但是由于組合型梵音藏文字符的存在,所以還需要進行特殊處理,首先判斷藏文音節中不帶音基字丁是否存在于文獻[11]所列舉的新創字符表中,若存在則將其作為一個整體進行拉丁轉換。否則就根據藏文音節的聲韻母組合方式進行組合就可以了。藏文單音節的聲母=前加字+不帶音基字丁,韻母=元音+后加字+重后加字。對照藏文拉丁轉寫規則知識庫后,得到藏文聲母和韻母各自對應的拉丁字母串。則藏文對應的拉丁轉寫=聲母拉丁轉寫+韻母拉丁轉寫。轉化過程中提出以下幾個規則。 規則1 按照聲韻母拼讀方式對藏文音節中各部件依次讀取,然后參照民族所江荻研究員文獻[11]中提出的藏文拉丁轉寫系統實現轉寫。 規則2 藏文轉寫成拉丁字母時,轉寫后的符號一律使用小寫字母。 規則3 不帶元音符號的藏文音節字,則默認被轉寫成包含元音“a”,該元音被放在韻母前邊。 在計算機Windows平臺下,隨機選取了部分藏文文本進行了拉丁轉寫測試,轉寫主要是藏文到拉丁文的轉寫。抽取的文本分別來自藏文主流網站的新聞和個人網頁中的藏文文章。圖2是測試樣例中截取的一部分。 圖2 藏文文本及轉換結果 測試結果表明,在轉換過程中會出現兩種錯誤,一種是因為部分藏文文本不符合現代藏文的構字方法,所以在基字確定上出現錯誤從而造成轉寫不正確,這種情況系統會在可能錯誤的轉寫字符處高亮顯示出來以便人工修改;還有一種情況是由于黏寫字符以及文本規范化過程中的處理結果不準確而造成的轉寫錯誤,這種情況還需要人工針對新的文本情況進行問題分析并修正相應的規則。 論文中主要討論了基于小字符集編碼的藏文音節拉丁轉寫的實現方法。本文采用的拉丁轉寫規則依據藏語聲韻母體系進行,規則中只需要完善藏文聲母拉丁對照表和藏文韻母拉丁對照表,就可以轉換所有的藏字,所需要的庫很小,可移植性強。但是由于藏文本身存在一些梵文和外來的新造詞,這些詞語在基字判別上可能會出現錯誤,因此需要在以后的工作中進一步完善部件識別規則,最終實現一個完整的藏文轉寫拉丁字母系統。 [1] 陳麗娜.藏文拉丁轉寫的研究與實現[J].計算機工程與設計,2006,01: 15-17. [2] 江荻.藏文的拉丁字母轉寫方法[J]. 民族語文,2006,01: 45-53. [3] 祁坤鈺.基于國際標準編碼系統的藏文拉丁文轉寫規則模型[J]. 西北民族大學學報(自然科學版),2008,03: 15-18. [4] 康才畯,江荻. 基于Unicode編碼的藏文轉寫拉丁文本的算法[A].中國中文信息學會.中國計算語言學研究前沿進展(2009-2011).中國中文信息學會,2011: 5. [5] 江荻,周季文. 論藏文的序性及排序方法[J]. 中文信息學報,2000,01: 56-64. [6] 才旦夏茸.藏文文法詳解[M].西寧:青海民族出版社,1988. [7] 關白,才科扎西.現代藏文音節字自動校對研究[J]. 計算機工程與應用,2012,29: 151-156. [8] 才智杰.藏文自動分詞系統中緊縮詞的識別[J]. 中文信息學報,2009,01: 35-37. [9] 扎西次仁.國際標準藏文計算機編碼字符集的研究[J]. 中國藏學,1995,02: 127-143. [10] 周季文.藏文拼音教程[M],北京: 民族出版社,1983,10. [11] 江荻,龍從軍.藏文字符研究: 字母、讀音、編碼、字頻、排序、圖形、拉丁字母轉寫[M],北京: 社會科學文獻出版社,2010,08. Design and Implementation of the Tibetan Transcription SystemBased on Small Character Set CHEN Xiaoying, AI Jinyong (1. School of Information Engineering,Tibet University for Nationalities,Xianyang,Shanxi 712082,China;2. Library of Tibet University for Nationalities,Xianyang,Shanxi 712082,China) With the rapid development of information technology in Tibetan language,Tibetan transcription into Latin becomes an important issue. This article designs and realizes such a transcription system that based on a small character set. According to the Tibetan orthography knowledge,the paper proposes the transcription algorithm according the characteristics of a small Tibetan/Latin character set encoding. The implementation of the Tibetan Latin transcription system can solve compatibility issues between the different Tibetan codes. Tibetan; Latin transliteration; small character sets; placeholder consonant 陳小瑩(1983—),實驗師,碩士,主要研究領域為實驗語音學及計算機應用。E?mail:ajycyt@126.com艾金勇(1983—),館員,碩士,主要研究領域為藏文信息處理。E?mail:ajy0529@126.com 2014-05-20 定稿日期: 2014-11-06 西藏自治區科技廳項目(2015ZR-14-19) 1003-0077(2016)03-0074-05 TP391 A
4 轉寫結果測試

5 結語
