付 玉,李 敏,王 帆,鄭蕊蕊,許 爽
(大連民族大學 a.計算機科學與工程學院;b.信息與通信工程學院,遼寧 大連 116605)
羅馬轉寫即非拉丁文字系統的文字符號轉寫成拉丁字母,現已被應用在阿拉伯語、日語、希伯來語等,針對不同語言提出了多種轉寫方案。滿文的羅馬轉寫分為兩部分:滿文向羅馬字母轉寫和羅馬字母向滿文字母轉寫,這是兩個互逆的過程[1]。本文主要討論羅馬字母向滿文字母轉寫,并運用 Anakv轉寫方案,在 Keil5 軟件開發平臺上利用 C 語言編程設計滿文單詞羅馬轉寫智能算法。當前所研究的滿文是“圈點滿文”或者“新滿文”,相對于“無圈點滿文”[2],其規范了詞形,改進了拼寫方法。滿文是由6個元音音素以及27個輔音音素組成[3],但是不能完全被視為音素型文字,事實上是以音節為單位拼接組合構成的。滿文字母形式復雜,不僅有元音、輔音之分,還根據字母所在單詞的位置不同分為獨立式、字頭式、字中式、字尾式。由于滿文不存在相應的標準字符集,在信息電子化和資源共享的大背景下,將其羅馬化(轉寫)有一定的必要性。
滿文字母根據規則,上下相連,成為連續一體的符號,形成滿文單詞。滿文單詞的拼寫規則非常復雜,不同的字元在不同的位置有不同的表現形式,不同滿文單詞的長度會相差很多[4]。同一字體、同一字號的不同滿文單詞,它們的長度在不同條件下會出現差異,為正確識別滿文帶來了一定的困難。因此,滿文的識別不能以詞為單位,而應該以字元為單位進行識別。在識別前不僅要對滿文進行行列切分,還要對滿文單詞進行切分,把一個滿文單詞切分成多個滿文字母如圖1[3]。

圖1 滿文單詞及其切分字元
滿文的獨特之處在于同一個字母,出現在單詞的開頭、中間、結尾處時,寫法往往不同。位于單詞中間時,根據上面或下面的字母不同而不同。羅馬轉寫與滿文字母的對照如表1,由表1可知滿文的字母根據其所在單詞中位置的不同,書寫分為獨立式、字頭式、字中式和字尾式四種(部分字母不足四種)書寫方式,同時可知同一個字母在同一個位置會出現多種形式。因此在把滿文字母轉換為羅馬轉寫的時候,首先考慮的是羅馬字母表的字符同滿文字母表的字符的對應關系[5],該對應關系已在表1中給出。作為轉寫字符,它與被轉寫字符之間的對應關系是一對一的,不能被替換。羅馬字母向滿文轉寫的過程(以羅馬 g’ag’ai 為例)如圖2。同一羅馬字母對應的滿文字母在不同的搭配條件下形式不同見表2。表2是以羅馬字母 t 為例的滿文字母搭配表,在不同的條件,不同的位置,滿文字母的書寫呈現出多樣性。因此,為在羅馬字母向滿文字母轉寫時不出現紊亂,需對字母進行編碼。
表1羅馬轉寫與滿文字母對照(部分)


圖2 羅馬轉寫(以g’ag’ai為例)

字符編碼是一套法則,使用該法則能夠將兩個不同自然語言的字符的集合進行配對。滿文是一種從左到右,從上到下豎寫的拼音文字,并且在一個滿文單詞中各個字母連寫。若將滿文信息化處理,既不能像英文單詞那樣實現簡單拼寫,也不能像中文那樣書寫。這種特點給滿文的編碼帶來了很大的難度,而信息處理的基礎是建立一個適用的編碼系統。對滿文進行編碼時,需考慮是否符合滿文單詞的特點,是否能夠解決滿文音形之間多對多的對應關系。本章介紹的滿文字母編碼,是按照字母加編號的形式進行,編號即對不同位置進行編號,見表3。編碼之前,定字頭式為1列、字中式為2列、閉音節字中式為3列、字尾式為4列,元音中的獨立式為0列。對滿文進行編碼時,羅馬轉寫與對應列數的組合即為滿文字母的編號(如羅馬轉寫a的獨立式編碼為a0),特殊情況下的滿文字母編碼特殊處理。
傳統的形碼編碼和音碼編碼是針對規范字符給出的對應編碼,不包括特殊情況下的變形形式。此編碼方案考慮滿文的各種特殊情況,主要解決一音多形、一形多音的矛盾問題,以便于滿文的錄入。處理字母特殊形式的編碼時,根據特殊需要在同一音節下增加列或行,羅馬轉寫與所在列數及其對應的增加的列數(或行數)的組合為其編號。以羅馬轉寫e,i,k,d為例,特殊規則如下。
(1)羅馬轉寫e的字尾式分為4種形式——規則字尾式、與b、p拼寫,與t、d拼寫,與 k、g、h 拼寫。規則字尾式所在列為 4,即編號為e4;與b、p拼寫為增加的第1列,即編號為e41;與 t、d 拼寫為增加的第2列,即編號為e42;與k、g、h 拼寫為增加的第3列,即編號為e43。
(2)羅馬轉寫i的字中式分為4種形式——兩個規則字中形、兩個特殊字中形,所以其字中式有4列。當對應滿文字母字中形位于輔音下時,其對應編號為i21;位于元音下時,其對應編號為 i22;當拼寫為ts’i時,其對應編號為i23;當拼寫為dzi時,其對應編號為i24。
(3)羅馬轉寫k的4種音節都有兩種搭配方式,所以在同一音節下需增加一行。如在字頭式中,與a、o、v拼寫時,其對應編號為k11;與e、i、u拼寫時,其對應編號為k12。
(4)羅馬轉寫 d 有 3 種搭配方式,所以需增加兩行。如在字頭式中,與 a、i、o 拼寫時,其編號為d11;與e、u拼寫時,其編號為 d12;與v拼寫時,其編號為 d13。
此編碼簡單易行,編碼的唯一性避免了滿文字母使用時的混亂,保證羅馬轉寫的準確。
表3滿文字母編碼表(部分)

羅馬轉寫盡可能采用單個字母表示主體文字的字母,單個字母不足以表示的主體文字則采用羅馬字母額外附加其他符號或字母的方式表示[6]。羅馬字母轉寫與主體文字是對應的,不能有二義性,并且應是雙向可逆的。單一的滿文字母對應的羅馬轉寫并不唯一,最多有 4個轉寫字母組成;確定羅馬轉寫之后,還需確定滿文字母在單詞中的位置,位置不同的滿文字母,其寫法也各不相同。遞歸法是整個算法的主體,在選取單詞過程中要設置好對結束條件的判斷和對獲取的單詞中控制字符的處理。由于滿文字母和羅馬字母并不是一一對應,一個滿文字母最多對應著4個羅馬字母,例如對應是的ts′i。在已知羅馬字母串的情況下,直接根據羅馬字母串中的字母無法判斷其對應的滿文字母,通過判斷羅馬字母串的組合形式和滿文的對應關系,進行羅馬字母到滿文字母的轉換。目前,羅馬向滿文轉寫的方案有許多種,只有 Anakv 轉寫方案可應用于羅馬字母轉換字母。Anakv 轉寫方案采用穆林德夫滿文轉寫,字母ū在輸入時請用v代替,?用x代替。特定字母寫法為:k′,g′,h′,ts′,ts′i,d?,sy,cy,jy(?輸入時用z代替;輸入′ 時用半角字符)。這一轉寫規則特定了非常規的字母,使轉寫簡單易行。
3.2.1 獨立式與字頭式
滿文元音字母較為特殊,可獨立成為一個滿文單詞。在程序運行時,若羅馬首字母后為空,可判斷輸出字母為元音字母的獨立式。而羅馬轉寫長度大于1時,首先要判斷羅馬轉寫所對應滿文字頭式的音節,之后根據字母搭配選取其相應的滿文字母形式。程序運行時遍歷已編碼的滿文字母庫(即索引表),當已給定的索引值在索引表中查出其相等的索引項,則調用并顯示此字母。獨立式與字頭式羅馬轉寫算法設計流程如圖3。

圖3 獨立式與字頭式算法流程圖
3.2.2 字中式
滿文字母字中式的羅馬轉寫較為復雜,在數據處理時需遍歷滿文字母庫中的每一個數據項,以防數據元素中的原子項被忽略而降低準確率。在建立的關于滿文字母庫數組中,利用主表和數組長度查找所需索引值和關鍵字,若查找失敗,返回上一級。此方案考慮分析字中式的每一種情況,包括辨析元音和輔音、規則字中形和閉音節字中形,以及最難解決的羅馬轉寫搭配情況不同對應的單個滿文字母。字中式羅馬轉寫算法設計流程如圖4。
3.2.3 字尾式
滿文字母中元音字母字尾式較復雜,需根據每個數據項搭配字母而定。一個元音字母的字尾式最多對應3種不同形式,因此在構建算法時需要考慮各個形式,以提高準確率。字尾式羅馬轉寫算法設計流程如圖5。

圖4 字中式算法流程圖

圖5 字尾式算法流程圖
綜合以上算法,以遞歸法為主編寫完整的轉寫算法,實現準確的轉寫功能。此算法已被應用在嵌入式手寫滿文信息查詢系統,經過隨機抽取的單詞量為500的文本測試[7],本算法的轉換正確率為100%。滿文單詞的多種情況在上位機的測試結果如下:
3.3.1 獨立式
滿文單詞的羅馬轉寫為獨立字母并且為元音字母時,輸出為獨立式如圖6。

圖6 獨立式測試結果
3.3.2 羅馬轉寫的不同搭配


(a)羅馬轉寫d與a搭配

(b)羅馬轉寫d與u搭配
3.3.3 羅馬轉寫在不同位置


圖8 羅馬轉寫在不同位置對應不同滿文的示例
本文提出的編碼規則具有唯一性,解決了羅馬轉寫過程中羅馬字母與滿文字母一音多形的問題,提高羅馬轉寫的準確率。羅馬轉寫算法吸取了現有轉寫方案的經驗并結合滿文單詞特點,采用Anakv 轉寫方案特定非常規字母,創建簡練、實用并且符合現代科學技術發展要求的滿文羅馬轉
寫標準。算法的應用將更有利于滿文的信息化建設和國際交流與發展。
[1] 張廣淵.滿文矢量字庫和羅馬轉寫滿文輸入法的實現[J].東北大學學報(自然科學版),2013,24(11):1033-1036.
[2] 張廣淵,李晶皎,張俐.滿文羅馬轉寫與圈點滿文轉換算法的實現[J].東北大學學報(自然科學版),2003(12):1157-1160.
[3] 張廣淵.脫機手寫滿文單詞識別研究[D].沈陽:東北大學,2006.
[4] 許爽,李敏,朱滿瓊,等.滿文識別技術研究與分析[J].大連民族學院學報,2014,16(5):546-551.
[5] 趙驥,李晶皎,張廣淵,等.脫機手寫體滿文文本識別系統的設計與實現[J].模式識別與人工智能,2006,19(6):801-805.
[6] 付勇,佟靖,賀智程.錫伯文滿文拉丁轉寫方案比較分析[J].信息技術與標準化,2015(1-2):43-46.
[7] 朱滿瓊,李敏,許爽,等.圖像背景下的滿文單詞提取[J].大連民族學院學報,2014,16(1):78-81.