孟和吉雅,山 丹
(1.内蒙古大学 计算机学院,内蒙古 呼和浩特 010020;2. 内蒙古社会科学院,内蒙古 呼和浩特 010020)
蒙古语是中国蒙古族自治地方的通用语言之一。在上世纪70、80年代开始研究蒙古文信息处理时,主要是从文字处理开始的,而且制定的蒙古文编码也是表现“字型”为主。经过几十年的发展,蒙古文信息处理研究已经不仅仅局限于文字处理方面,在语音合成、语音识别、文字识别等也有了一定成果。虽然蒙古文Unicode编码已经在2000年公布,定义了名义字符编码和变形显现字符最小集[1],但是以前的很多文字资料还是用旧的编码存储,而且大多数人还在使用字型为主的旧的输入法和编码。如: 蒙科立、智能、方正、明安图、赛音等编码。
在《大纲》中要求的单词按照音节数量来分类,筛选和检索时,需要做对蒙古文单词分音节,并统计音节个数。所以在拉丁转写的基础上又做了分音节和统计音节个数的工作。
选择 “拉丁转写”和“分音节”方法的主要原因是考虑了我们的工作需要和程序里实现的简单和准确。原因如下:
我们根据《蒙古文编码键盘布局》,又考虑校对和编程的方便,自己制定了一种蒙古文单词拉丁转写规则,如表1所示。
表1 拉丁转写规则——蒙古文字母与拉丁转写对应表
续表
表2 元音“”的各种字型拉丁转写表(蒙科立编码)
//转换编码
function TFormZhuan.Convert(temp_str:WideString):WideString;
var
mid_str:WideString; WS:WideString; i,j:integer; WC: WideChar; Code: Word;
begin
mid_str:=′′; i:=1;
while i<=length(temp_str) do
begin
for j:=1 to array_len do
begin
WS:=MidStr(temp_str,i,1);
WC:=WS[1]; Move(WC, Code, SizeOf(WC));
if latin[j,0]=IntToHex(Code,2) then
begin mid_str:=mid_str+latin[j,1]; break; end;
end;
i:=i+1;
end;
Convert:=mid_str;
end;
转换程序界面如图1所示。
图1 拉丁转写转换程序界面
分音节算法的基本思路是根据蒙古文的以“元音为中心”组成音节的规律,按照音节类型去分音节。在算法中涉及到的蒙古文音节类型有(v: 表示元音;c: 表示辅音): v,vv,vvc,vc,vcc,cv,cvv,cvc,cvcc[2,4]。分音节的判断条件见表3。分音节程序界面如图2所示。
表3 音节类型及分音节判断条件
续表
图2 单词分音节程序界面
本论文中主要讨论了在有关蒙古文标准音测试方面的研究工作中对蒙古文单词进行拉丁转写转换和分音节的原因以及实现方法。这里采用的拉丁转写规则和分音节条件的正确性在我们用蒙科立输入法和编码录入的7 200多个单词上得到了验证。由于对蒙科立蒙古文编码了解的局限性和做实验的蒙古文单词的局限性,可能存在遗漏,有待进一步完善。
[1] 确精扎布. 蒙古文编码[M]. 呼和浩特:内蒙古大学出版社, 2000.
[2] 青格尔泰. 蒙古语语法[M]. 呼和浩特:内蒙古人民出版社,1999.
[3] 蒙古语标准音水平测试大纲编写组.蒙古语标准音水平测试大纲[M].呼和浩特:内蒙古人民出版社,2003.
[4] 呼和,确精扎布. 蒙古语语音声学分析[M].呼和浩特:内蒙古大学大学出版社,1999.
[5] 湘沪科技. Delphi类库查询辞典[M]. 北京:中国铁道出版社, 2004.
[6] Liscbner,里希纳,朱腾辉,肖雪莲. Delphi技术手册[M]. 北京:中国电力出版社, 2001.