莫禮平,周 勝,尹楠佳
(吉首大學(xué)信息科學(xué)與工程學(xué)院,湖南 吉首 416000)
基于構(gòu)件漢語拼音的湘西方塊苗文輸入法*
莫禮平,周 勝,尹楠佳
(吉首大學(xué)信息科學(xué)與工程學(xué)院,湖南 吉首 416000)
在分析湘西方塊苗文的結(jié)構(gòu)特點及其構(gòu)件拆分方法的基礎(chǔ)上,提出了一種基于構(gòu)件漢語拼音全部字母的輸入編碼方案,設(shè)計了輸入法編碼映射表;并以多多輸入軟件生成器為工具,實現(xiàn)了基于Windows IMM-IME結(jié)構(gòu)規(guī)范的湘西方塊苗文輸入法軟件及其安裝程序.測試結(jié)果表明,基于上述輸入編碼方案的苗文輸入法易學(xué)易用,能夠有效地解決湘西方塊苗文的計算機(jī)輸入問題.
湘西方塊苗文;輸入法;編碼映射表;IMM-IME結(jié)構(gòu)
湘西方塊苗文是清朝末年以來,武陵山片區(qū)湘西苗族人民根據(jù)“取個人認(rèn)為最易認(rèn)易記的漢字作為代表符號”的原則自創(chuàng)的一種方塊文字[1],是中國民間苗族文化的主要載體.目前,湘西方塊苗文信息處理研究剛剛起步,見諸報導(dǎo)的僅有板塘苗文(湘西方塊苗文的代表)的計算機(jī)編碼和TrueType字庫創(chuàng)建研究[2].由于缺乏輸入法,長期以來,苗族文化研究人員進(jìn)行學(xué)術(shù)研究和交流時都是依靠紙張筆墨等傳統(tǒng)手段和圖片掃描等機(jī)械方式處理湘西方塊苗文,工作效率很低.
輸入技術(shù)是文字信息處理研究的基礎(chǔ),為湘西方塊苗文設(shè)計并實現(xiàn)一種易用快捷的輸入法,對于弘揚(yáng)苗族文化、保護(hù)苗族文化遺產(chǎn)、促進(jìn)武陵山片區(qū)民族文化旅游產(chǎn)業(yè)的發(fā)展,都有重要的實際價值.
1.1結(jié)構(gòu)特征
湘西方塊苗文是一種仿漢字結(jié)構(gòu)的文字,幾乎都是由2~3個漢字(或偏旁)組成的合體字,其結(jié)構(gòu)大致包括左右、上下、內(nèi)外、側(cè)圍4種類型[3].實用的湘西方塊苗文中,以左右結(jié)構(gòu)和上下結(jié)構(gòu)為主,側(cè)圍結(jié)構(gòu)較少,內(nèi)外結(jié)構(gòu)極少.文中將能夠作為湘西方塊苗文的形符、聲符或義符使用,且有音有義的漢字(或偏旁)稱為成字構(gòu)件;湘西方塊苗文的構(gòu)件中還包含了極少量有形但無音無義的符號單位(如“X”“~”),文中稱之為不成字構(gòu)件.
1.2構(gòu)件拆分方法
僅由2個漢字(或偏旁)構(gòu)成的湘西方塊苗文合體字,可直接將其拆分為2個構(gòu)件.當(dāng)合體字由3個或更多個漢字(或偏旁)組成時,通常其中的某2個或3個部分可以組合成1個日常使用頻率較高且含義明確的簡單漢字.此時,宜將此組合視為一個整體,當(dāng)成一個構(gòu)件使用.若無法按照“日常使用頻率較高且含義明確”的原則將某2個或3個部分組合成1個簡單漢字,則將該湘西方塊苗文合體字拆分為3個構(gòu)件(最多也只拆分為3個構(gòu)件).
據(jù)此原則,4種不同結(jié)構(gòu)類型的合體字大部分都可拆分為2個構(gòu)件,僅有極個別左右結(jié)構(gòu)和上下結(jié)構(gòu)的合體字需要拆分為3個構(gòu)件.因此,可將湘西方塊苗文分為2構(gòu)件型合體字和3構(gòu)件型合體字2類.
1.3構(gòu)件拆分示例
圖1為不同結(jié)構(gòu)的湘西方塊苗文的字例拆分示意圖.按照前述構(gòu)件拆分原則,圖1a)中字例拆分為左構(gòu)件“貧”和右構(gòu)件“窮”;1b)中字例拆分為上構(gòu)件“列”下構(gòu)件“肉”;1c)中字例拆分為外構(gòu)件“門”和內(nèi)構(gòu)件“得”;1d)中字例拆分為外包構(gòu)件“冠”和內(nèi)側(cè)構(gòu)件“子”即可,無須再拆分為虛線框內(nèi)所含的多個部分;而1e)中字例卻需要拆分為左構(gòu)件“口”、中構(gòu)件“目”和右構(gòu)件“墨”,其中的“墨”不必再拆分為虛線框內(nèi)的2個部分.
因此,圖1a—d)中的字例都由2個構(gòu)件組成,視為2構(gòu)件型合體字,而圖1e)中字例由3個構(gòu)件組成,應(yīng)視為3構(gòu)件型合體字.
圖1 不同結(jié)構(gòu)的方塊苗文字例的拆分
2.1編碼方案的基本思想
由于目前會讀湘西方塊苗文的人極少,按照湘西方塊苗文的讀音來實現(xiàn)輸入法不太可行.考慮到湘西方塊苗文是由漢字(或偏旁)組成的合體字,借助其構(gòu)件的漢語讀音來設(shè)計并實現(xiàn)輸入法是可行的.因此,在設(shè)計湘西方塊苗文輸入編碼方案時,直接利用構(gòu)件對應(yīng)漢字(或偏旁)的漢語拼音的全體字母作為輸入編碼.由于所有湘西方塊苗文都可當(dāng)作2構(gòu)件型和3構(gòu)件型合體字處理,因此只需按一定次序敲擊鍵盤上對應(yīng)這2~3個構(gòu)件的全部漢語拼音字母鍵位,即可達(dá)到將該湘西方塊苗文輸入到計算機(jī)中的目的.
注意,為了縮短輸入編碼的長度,當(dāng)構(gòu)件是漢字偏旁時,只取其讀音第1個部分的漢語拼音字母.例如,“氵”讀音為“三點水”,拼音組合為“sandianshui”,只取“san”3個字母;“忄”讀音為“豎心旁”,拼音組合為“shuxinpang”,只取“shu”3個字母;“扌”讀音為“提手旁”,拼音組合為“tishoupang”,只取“ti”2個字母.
2.2合體字拆分取碼原則
輸入湘西方塊苗文時,按照從上到下、從左到右、從外到內(nèi)的順序?qū)γ缥淖中芜M(jìn)行拆分取碼.側(cè)圍結(jié)構(gòu)型苗文遵循從左到右的取碼原則.若內(nèi)側(cè)構(gòu)件位于合體字左下方,則先左取內(nèi)側(cè)構(gòu)件,再右取外包構(gòu)件;若內(nèi)側(cè)構(gòu)件位于合體字右上方,則先左取外包構(gòu)件,再右取內(nèi)側(cè)構(gòu)件.對于任意一個苗文,按構(gòu)件拆分方法取出構(gòu)件,并根據(jù)上述編碼思想和取碼原則,依次取出各個構(gòu)件的漢語拼音字母,即得出供輸入該苗文用的輸入編碼序列.
根據(jù)上述方法,圖1中5個字例的輸入編碼序列分別為“pinqiong”、“l(fā)ierou”、“mende”、“guanzi”、“koumumo”.
3.1IMM-IME結(jié)構(gòu)規(guī)范及輸入法生成器
Windows平臺下的鍵盤輸入法大部分都基于微軟公司提供的輸入法接口IMM-IME結(jié)構(gòu)[4-5].該結(jié)構(gòu)由IMM(輸入法管理器)、IME(輸入法編輯器)、IMP(輸入法分析器)3大部分構(gòu)成.IMM負(fù)責(zé)管理當(dāng)前系統(tǒng)中活動的每個IME,維護(hù)其與應(yīng)用程序進(jìn)程之間的通信.IMP對系統(tǒng)注冊表中注冊的各個輸入法程序進(jìn)行維護(hù).IME就是開發(fā)者要編程實現(xiàn)的輸入法程序,主要包括CI (轉(zhuǎn)換接口)和UI (用戶界面)2個部分.CI通常以供IMM調(diào)用的函數(shù)集形式出現(xiàn),由開發(fā)者按照IME 接口規(guī)范添加詳細(xì)函數(shù)代碼,用以實現(xiàn)將用戶按鍵轉(zhuǎn)換成文字字符的轉(zhuǎn)換功能.UI通常以可見或不可見的窗口形式出現(xiàn),主要負(fù)責(zé)接收和處理由 IMM 和應(yīng)用程序發(fā)來的輸入消息,提供同用戶交互的界面,讓用戶隨時了解輸入法的當(dāng)前狀態(tài).UI窗口由缺省IME窗口、用戶界面窗口和用戶界面組件窗口(如輸入法狀態(tài)的顯示窗口、編碼信息輸入窗口、重碼選擇窗口等)等部分構(gòu)成.
按照IMM-IME規(guī)范實現(xiàn)輸入法軟件的核心工作是,以DLL結(jié)構(gòu)形式,采用IME-API編寫UI和CI函數(shù)代碼,實現(xiàn)用戶界面及轉(zhuǎn)換算法,并編程實現(xiàn)UI和CI通過IMC(輸入法上下文)結(jié)構(gòu)進(jìn)行通信的功能.目前,該核心工作可直接交給Windows提供的IMEGEN之類的輸入法生成器來完成.
湘西方塊苗文輸入法軟件采用多多輸入法生成器[6]實現(xiàn).多多輸入法生成器是一個基于IMM-IME規(guī)范的輸入法軟件及其安裝程序的制作工具,它能夠根據(jù)用戶提供的文本碼表和編碼規(guī)則自動生成獨立的輸入法安裝程序打包文件,以方便用戶發(fā)布輸入法.該工具在具備IMEGEN所有功能的基礎(chǔ)上,完善了各類編碼方案的實際需求,可以自動生成腳本文件,并且支持32位和64位操作系統(tǒng),開放接口,允許用戶依據(jù)SDK開發(fā)第三方插件.
3.2輸入法內(nèi)碼映射表及多多格式碼表的生成
初步建成的方塊苗文字庫使用了Unicode字符集基本多文種平面BMP (Basic Multilingual Plane)[7]中的用戶自定義區(qū)域E000—F8FF,每個字形對應(yīng)1個唯一的Unicode編碼.為了讓輸入法程序能夠根據(jù)鍵盤輸入編碼到字庫中查找對應(yīng)的字形,需要建立字形Unicode編碼與輸入編碼之間的映射關(guān)系,形成輸入法內(nèi)碼映射表.按照前述輸入編碼方案,湘西方塊苗文輸入法內(nèi)碼映射表按以下格式設(shè)計:
<輸入編碼> < Tab鍵 > < 字形Unicode編碼[ < Tab鍵>字形Unicode編碼…] >
其中,Tab鍵為分隔符,方括號為可選項,表示重碼情況.圖2給出了湘西方塊苗文輸入法內(nèi)碼映射表的部分截圖.
使用多多輸入法生成器生成輸入法軟件還需要有多多文本格式的碼表.圖3給出了使用多多碼表編輯器MBEditer生成的湘西方塊苗文輸入法碼表截圖.
圖2 湘西方塊苗文輸入法內(nèi)碼映射表
圖3 湘西方塊苗文多多格式輸入法碼表
3.3輸入法安裝程序的生成
多多輸入法生成器DDImegen可依據(jù)碼表(*.txt)文檔或生成配置腳本文件(*.ddconfig),通過“向?qū)А焙汀懊钪蓖ㄜ嚒?種方式來生成輸入法安裝程序(*setup.exe).通過“向?qū)А狈绞揭罁?jù)腳本生成湘西方塊苗文輸入法安裝程序“miaowensetup.exe”的步驟如下:
Step1 創(chuàng)建對應(yīng)于多多格式湘西方塊苗文輸入法碼表的生成配置腳本文件“miaowen.ddconfig”,設(shè)置腳本文件的保存路徑及文件名稱.
Step2 設(shè)置輸入法運行時需要用到或顯示的相關(guān)信息.包括湘西方塊苗文輸入法文件名(即在目標(biāo)計算機(jī)的system32中創(chuàng)建的IME文件名)、安裝目錄名稱、輸入法顯示在開始菜單中的名稱、發(fā)布者及軟件版本、幫助鏈接等信息.
Step3 IME驅(qū)動選項設(shè)置.為湘西方塊苗文輸入法指定txt碼表文件路徑、軟件皮膚ico文件路徑、幫助文檔路徑、輸入法顯示在任務(wù)欄右下角系統(tǒng)輸入法列表中的名稱、IME驅(qū)動名稱、語言標(biāo)識、安裝程序保存路徑等.注意,在“語言標(biāo)識”列表中必須選擇“自定義”,并參照“常見Windows語言標(biāo)識數(shù)值參照表”填寫為湘西方塊苗文區(qū)域的十進(jìn)制區(qū)域代碼值.
Step4 生成選項設(shè)置.設(shè)置湘西方塊苗文輸入法軟件的可選功能 (如是否包含聯(lián)想庫、英文輸入、詞典功能,是否支持簡繁轉(zhuǎn)換、用戶造詞、臨時造詞等),以及構(gòu)詞規(guī)則定義、按鍵功能自定義、標(biāo)點符號定義等.
Step5 特性設(shè)定.針對湘西方塊苗文輸入法運行時的輸入系統(tǒng)行為、無候選字出現(xiàn)時的空格行為、嵌入窗口行為、初始化轉(zhuǎn)換狀態(tài)等方面特性進(jìn)行設(shè)置.
Step6 IME默認(rèn)設(shè)置.針對湘西方塊苗文輸入法運行時的默認(rèn)值進(jìn)行設(shè)置,包括候選列表排序依據(jù)、候選列表顯示個數(shù)、詞頻調(diào)整、輸入方案、習(xí)慣設(shè)定、界面控制等方面的默認(rèn)值設(shè)定.
Step7 DME驅(qū)動默認(rèn)設(shè)置.設(shè)置湘西方塊苗文輸入法碼表驅(qū)動程序common驅(qū)動的默認(rèn)值.common驅(qū)動是多多輸入系統(tǒng)的核心部分,能夠滿足碼長在128以內(nèi)的編碼需要,并能依據(jù)配置實現(xiàn)“智能上屏”,可實現(xiàn)“精確匹配候選列表獲取”、“聯(lián)想匹配候選列表獲取”、“查詢模式候選列表獲取”操作.DME驅(qū)動默認(rèn)設(shè)置包括后續(xù)編碼顯示 (編碼逐漸提示) 規(guī)則設(shè)定、碼長設(shè)定、查詢選項設(shè)定、上屏引導(dǎo)鍵和截止鍵(編碼截止鍵)設(shè)定等.
Step8 SKIN驅(qū)動設(shè)置.針對Classicskin驅(qū)動和colourful驅(qū)動,做湘西方塊苗文輸入法軟件的皮膚(界面)設(shè)置.使用Classicskin驅(qū)動可實現(xiàn)經(jīng)典的windows輸入法界面,可針對窗口背景、按鈕、文字樣式及顏色方案自定義進(jìn)行設(shè)置.使用colourful驅(qū)動可實現(xiàn)豐富多彩的輸入法界面,當(dāng)計算機(jī)上安裝了2個或2個以上皮膚文件時,可通過設(shè)定皮膚文件和文件夾的方法實現(xiàn)輸入法的換膚功能.
Step9 軟件安裝設(shè)置.生成湘西方塊苗文輸入法軟件的GUID唯一標(biāo)識符,并可設(shè)置碼表密碼以控制系統(tǒng)主碼表導(dǎo)入導(dǎo)出操作.同時,還可以設(shè)置注冊碼密鑰以支持輸入法軟件注冊功能.
Step10 軟件內(nèi)容設(shè)置.針對湘西方塊苗文輸入法軟件,進(jìn)行開始菜單項、包含字體目錄、配置程序項、嵌入圖標(biāo)項設(shè)置.
完成以上步驟操作后,單擊“生成”按鈕,DDImegen將依據(jù)腳本文件“miaowen.ddconfig”自動生成湘西方塊苗文輸入法安裝程序.
4.1安裝
為了方便管理并保證輸入法能正常工作,可按以下步驟安裝湘西方塊苗文輸入法軟件:
Step1 建立安裝程序及相關(guān)文件的存儲目錄,并將湘西方塊苗文TrueType字庫文件“miaowen.ttf”、輸入法生成時的初始化配置腳本文件“miaowen.ddconfig”、輸入法碼表文件“miaowenmb.txt”和輸入法安裝程序“miaowensetup.exe”等4個文件復(fù)制到該目錄.
Step2 將字庫文件“miaowen.ttf”復(fù)制到“C:/WINDOWS/fonts”目錄下,完成字體的安裝.
Step3 運行安裝程序“miaowensetup.exe”,進(jìn)入“安裝向?qū)А苯缑?,按提示設(shè)置好安裝目錄及其他相關(guān)參數(shù),然后點擊“安裝”按鈕,開始自動安裝工作.
Step4 點擊“完成”按鈕,結(jié)束安裝過程.
安裝完成后,湘西方塊苗文輸入法會出現(xiàn)在“語言欄”,按“Ctrl+Shift”鍵即從當(dāng)前輸入法切換到苗文輸入法.此外,安裝程序同時“開始”菜單中會增加“設(shè)置湘西苗文”功能項.通過該功能可以查看碼表,還能針對輸入法的界面及其他內(nèi)容進(jìn)行常規(guī)設(shè)置和高級設(shè)置.
4.2測試
圖4 湘西方塊苗文輸入后與漢英數(shù)混排顯示效果截圖
在windows記事本中,對湘西方塊苗文輸入法軟件進(jìn)行多次測試的結(jié)果表明,該輸入法易學(xué)易用,輸入編碼簡單易記,能夠?qū)崿F(xiàn)已加到字庫中的任意一個湘西方塊苗文的正確輸入.圖4給出了使用該輸入法輸入的湘西方塊苗文、漢字、英文、數(shù)字混編后以華文行楷字體顯示的效果.
湘西方塊苗文輸入法基于構(gòu)件的音碼輸入方案,采用作為構(gòu)件使用的漢字(或偏旁)漢語讀音的全拼輸入法來輸入苗文.從鍵盤上依次敲擊該苗文所有構(gòu)件漢語拼音的全部字母鍵,即可達(dá)到輸入該苗文合體字的目的.該輸入法與漢字拼音輸入法原理一致,用戶只要按照構(gòu)件拆分方法,記住苗文合體字拆分取碼原則,就可以將湘西方塊苗文輸入到計算機(jī)中.然而,上述方法雖然能夠解決湘西方塊苗文的輸入問題,但因沒有限制碼長,輸入編的長度普遍較大,不利于提高輸入速度;而且,該方法還會因構(gòu)件不同但構(gòu)件同音、構(gòu)件相同但構(gòu)件在合體字中所處位置不同而產(chǎn)生較高的重碼率;此外,因用戶對漢字(或偏旁)的漢語讀音不準(zhǔn)而出現(xiàn)取錯輸入碼,導(dǎo)致無法輸入苗文的情況也有可能發(fā)生:因此,下一步,筆者將以縮短碼長、降低重碼率和輸入錯誤概率為目標(biāo),對湘西方塊苗文的輸入編碼方案進(jìn)行優(yōu)化.
[1] 楊再彪,羅紅源.湘西苗族民間苗文造字體系[J].吉首大學(xué)學(xué)報:社會科學(xué)版,2008,29(6):130-134.
[2] 莫禮平,周愷卿,蔣效會.板塘苗文的計算機(jī)編碼及字庫創(chuàng)建[J].吉首大學(xué)學(xué)報:自然科學(xué)版,2013,34(2):31-35.
[3] 趙麗明,劉自齊.湘西方塊苗文[J].民族語文,1990(1):44-49.
[4] Microsoft Corporation.Win32 Multilingual IME Overview for IME Development[EB/OL].[2003-04].http://www.docin.com/p853168.html.
[5] Microsoft Corporation.Win32 Multilingual IME Application Programming Interface[EB/OL].[2003-04].http://www.docin.com/p3619562.html.
[6] 多多中文官方網(wǎng)站.多多輸入系統(tǒng)用戶手冊v3.x[EB/OL].[2012-10-23].http://chinput.com/docs/ddimegen/index.htm.
(責(zé)任編輯 向陽潔)
InputMethodofXiangxiSquareHmongLanguageCharactersBasedontheChinesePinyinComponents
MO Liping,ZHOU Sheng,YIN Nanjia
(College of Information Science & Engineering,Jishou University,Jishou 416000,Hunan China)
An encoding scheme of inputting Xiangxi square Hmong language characters is put forward after the structure features and the method of compounds splitting are analyzed.This scheme is based on inputting the whole letters of Chinese pinyin components.The code mapping table is designed.Taking Duoduo input soft generator as a tool,the input soft based on IMM-IME architecture and setup program are implemented.Test result shows that the input method based on the above scheme is easy to learn and use,and can effectively solve the problem of inputting Xiangxi square Hmong language characters into computer.
Xiangxi square Hmong language characters;input method;code mapping table;IMM-IME architecture
1007-2985(2014)02-0030-05
2013-10-28
國家自然科學(xué)基金資助項目(61363033);吉首大學(xué)科研項目(13JDX008)
莫禮平(1972-),女,湖南安化人,吉首大學(xué)信息科學(xué)與工程學(xué)院高級實驗師,工學(xué)碩士,主要從事中文信息處理、Petri網(wǎng)理論及應(yīng)用、數(shù)據(jù)挖掘研究.
TP391
A
10.3969/j.issn.1007-2985.2014.02.008