︹ ᠨᠠᠰᠤᠨ᠋ᠤ᠋ᠷᠲᠤ᠂ ᠳ᠋᠊᠂ ᠰᠠᠷᠠᠨᠠ᠂ ᠸᠠᠩ ᠰᠡᠷᠭᠦᠯᠡᠩ ︺ - ᠦᠭᠦᠯᠡᠯ - (ᠬᠢᠲᠠᠳ) 现代蒙古语谓语段自动标注系统的设计与实现
 1 现代蒙古语谓语段自动标注系统的设计与实现 王斯日古楞 12 , 德萨日娜 13 ,那顺乌日图 1 1内蒙古大学蒙古学学院010021 2内蒙古师范大学计算机与信息工程学院 010022 3内蒙古社会科学院蒙古语言文字研究所010010 Email:siriguleng@imnu.edu.cn 摘要:蒙古语格框架的研究和建设中谓语是核心。我们从语料库中归纳了蒙古语谓语结 构知识,以及谓语段辅助成分的结构知识,作为蒙古语格框架研究的知识资源基础。本文主 要介绍了基于这些知识库开发的 ︽现代蒙古语谓语段自动标注系统︾ 的设计方法和实现算法。 关键词:蒙古语格框架、谓语段、规则、算法 Abstract: The predicate segment is the core in the researching and the building of the Mongolian case frame. We summed up the knowledge of Mongolian predicate structure and predicate segment assistant component from corpus. It became the knowledge resource foundation. This paper mainly introduced The designing method and implementing Arithmetic of Modern Mongolian Predicate Segment Automatic Segmentation System. Keywords: Mongolian Case Frame, Predicate Segment, Rule, Arithmetic 1、研究的意义和目的 蒙文信息处理工作从 20 世纪 80 年代开始,经过 20 多年的发展,在字和词的处理方面 已经有了一定的理论基础,同时也出现了一些应用系统,但在句子处理阶段的研究才刚刚起 步。为了对使蒙文信息处理的研究进一步深化在字和词处理的理论和实践基础上,我们对蒙 古语句子自动切分进行了研究。句子的切分是对句子进行研究的第一步,在此基础上才能进 一步研究句子分析和理解。我们在蒙古语 ︽格框架理论研究︾ 的研究过程中,设计和实现了 ︽基于规则的蒙古语句子自动切分系统︾ ,在此基础上设计和实现了 ︽现代蒙古语谓语段自 动标注系统︾ . ︽现代蒙古语谓语段自动标注系统︾ 的研究将对蒙古语句法结构研究和语义 研究打下了重要的理论基础,提供了有效的实践方法。本文主要介绍此系统的设计方法和实 现算法。 2、系统设计 2.1、系统资源 系统资源包括语料库、规则库和词典三部分。语料库中包括原始语料库,以及标注的各 个阶段生成的标柱语料库,我们库从现代蒙古语语料库蒙古族中学高中语文教材中选择 10 万词次的语料作为原始语料,进行了实验。 2 规则库中包括每个阶段所需要的规则,其中有连动词直接替换规则、连动词条件替换规 则、带标点符号句切分规则、无标点符号句切分、句子切分预处理规则、谓语段切分总规则、 助动词识别直接替换规则、否定成分直接替换规则、否定成分条件替换规则、句型成分直接 替换规则和句型成分条件替换规则等规则,以特定的格式存储在文本文件中,便于在程序中 使用。根据规则功能的不同可以分为标注规则和纠正规则,根据格式的不同可以分为直接替 换标注规则和条件替换标注规则。 词典使用了现代蒙古语语法信息词典, 包括三万多的词条, 系统中主要使用了词性属性。 为了提高系统的性能,我们把词典中的词条按词性存放到不同的文本文件中,在程序中根据 需要打开相应的文件进行查询即可。 2.2、系统功能结构图 根据对语料库进行标注和统计的具体需求,我们的系统包括了标注、统计、输出等主要 模块。具体结构图如图 1 所示。 图1 系统结构图 2.3、程序执行数据流程 本系统是一个完整的语料库标注系统,标注有一定的顺序性,每处理一步,都生成了相 现代蒙古语谓语段 自动识别系统 句子切 分标注 谓语段 识别标注 统计模块 浏览模块 各个阶段 标注语料 规则统计 各个阶段 标注语料 结果浏览 连动词 直 接和条件标注 带标点和无标点句切分标注 句子切分预处理和切分标注 谓语段辅 助成分标 注 谓语段切 分标注 句型成分 直接和条 件标注 否定成分 直接和条 件标注 助动词 识别标 注 3 图 2 谓语段切分标注流程图 预处理 谓语段切分标 注处理 预处理 规则库 谓语段切分 规则库 蒙语语法信 息词典 助动词标柱处 理 助动词标注 规则库 否定成分标注 处理 否定成分规 则库 统计和输出谓语 段切分语料库 结束 否定成分标注 纠正处理 否定成分纠 正规则库 句型成分标注 处理 句型成分规 则库 句型成分标注 纠正处理 句型成分纠 正规则库 开始 输入原始 语料库 蒙古语句子切 分系统 4 应标注语料库和每个规则的标注情况的统计, 系统执行流程图 2 谓语段切分标注流程图 所示。 其中句子切分标注部分的实现和结果分析在 ︽基于规则的蒙古语句子自动切分系统的实 现︾ 一文中已经详细介绍了。本文重点介绍谓语段及其辅助成分的标注的实现。 3、算法实现 3.1数据结构 系统设计中的两类主要数据是切分以后的句子及用于标注的规则。 我们从语料库和知识 库中分别读到程序中,以一定的数据结构进行组织,以便于容易处理。 ︵1︶ 句子的结构 const maxsize=1000︔ //资源表长度 const maxrule=10000︔ //生成规则的个数 struct wnode { String word︔ //单词内容 String suff︔ //动词和名词后缀 wnode *next, *prior︔ //前后指针 }︔ struct Sentence{ int WordCount︔ //句子中单词的个数 wnode * link,*tail︔ //链表首尾指针 }︔ Sentence AllSent[10000]︔ ︵2︶ 规则的结构 struct RNode{ int tag︔ //结点类型标记 String key︔ //结点内容 RNode *next,*prior︔ //前后指针 }︔ struct HRNode { int num︔ //结点个数 RNode * head , *tail︔ //每条规则的头尾指针 }︔ struct RTable { HRNode rule[maxsize]︔ //规则链表数组 int len︔ //规则的个数 }︔ RTable RuleTable︔ 5 3.2、实现算法 下面分别介绍各模块的任务及其实现算法。 ︵1︶ 预处理模块 否定成分和句型成分表中的复合成分中包含了多个单词,为了便于查询,同时使得各个 成分具有整体效果,我们将这两个表中的每个串的多个单词,用=号连接起来,对语料库进 行标注,作为谓语段识别的预处理︕ ︵2︶ 谓语段标注模块 格语法框架的研究和建设中谓语是核心。 我们在分语料库的基础上归纳了蒙古语谓语的 类型和谓语结构知识,作为格语法框架研究的资源基础。根据语料库的分析,蒙古语句子结 构中谓语是由谓语段构成。 谓语段中除了谓语中心词, 还有助动词、 否定成分和句型成分等。 谓语段标注规则中主要标注谓语中心词。我们归纳出了谓语中心词标注规则库,其中有 322 条规则. 这是整个系统的核心,基本思想是按照规则链表,对句子链表进行标注。 算法: 读取每条规则;GetRule ︵“data\\wyqfgz.txt“, RuleTable︶︔ while ︵sfile 不结束︶ { 读出一个句子;GetSentence ︵sfile, sent1︶︔ 进行谓语段切分标注;WeiyuQiefen_main ︵将结果写入文件;WriteSentence ︵dfile, sent1︶︔ } 谓语段切分标注算法: void WeiyuQiefen_main ︵Sentence* st, RTable//最后是标点符号 while ︵︵sp︕ =NULL︶︶ //句子不结束时 { 找到结束标志; for ︵所有的规则︶ { if ︵标志相同︶ 按规则中的每个词性条件在句子中进行查询处理; //int SeachDic ︵char *word, char* cx︶ if ︵所有条件都匹配︶ 插入标记结点︔ } } } 其中函数: int SeachDic ︵char *word, char* cx︶ 6 功能:在词典中查询单词 word 的词性是否为 cx,是返 1,否则返回 0︔ 实现方法:根据词性打开相应的文件︔ 系统资源库中对每类词构造一个文件,这样需要什么词 性就打开相应的文件进行查询即可︕ ︵3︶ 助动词标柱处理模块 在蒙古语中有些动词自身没有独立意义,只能协助其它词表示语法意义和语法变化,这 类词被成为助动词.根据助动词在句子中的意义和作用,我们认为助动词是属于谓语段的.分 析在谓语部分出现的助动词的类型和表现形式,我们归纳出了助动词标注规则库,其中有 318 条规则. 算法基本思想:从规则库中将规则一条一条读出来,对语料库中的每个句子进行查询, 对与规则匹配的部分进行标注. ︵4︶ 否定成分标注处理和否定成分标注纠正处理模块 在句子的谓语段有无否定成分,从语义上讲是相反的.因此,否定成分是谓语中心词的一 个非常重要的语义成分.在谓语段,否定成分经常与动词一起出现,但有时还与名词一起出现. 其中包括阻止语气词、否定语气词和少量的具有阻止否定含义的复合成分。对语料库进行分 析,我们总结和归纳出否定成分标注规则库,其中有 90 条规则.为了解决其中部分有歧义的 规则,又建立了纠正规则库,其中有 88 条规则. 算法基本思想: 先从否定成分标注规则库中将规则一条一条读出来,对语料库中的每个句子进行查询, 对与规则匹配的部分进行标注. 再从否定成分纠正规则库中将规则一条一条读出来,对语料库中的每个句子进行查询, 对与纠正规则匹配的部分进行纠正. ︵5︶ 句型成分标注处理模块和句型成分标注纠正处理模块 句型成分是与句子结构相关的组成单元.组成蒙古语各种句子模式的蒙古语 句型成分中包括连接句子的连词,表示句子语气情态的情态词和语气词,以及意义和 功能语气相同的一些复合成分.在此,我们只研究其中与谓语段相关的情态句型成分, 我们 通过分析总结和归纳出句型成分标注规则库, 其中有 221 条规则.为了解决其中部分有歧义 的规则,又建立了纠正规则库,其中有 2 条规则. 算法基本思想: 先从句型成分标注规则库中将规则一条一条读出来,对语料库中的每个句子进行查询, 对与规则匹配的部分进行标注. 再从句型成分纠正规则库中将规则一条一条读出来,对语料库中的每个句子进行查询, 对与纠正规则匹配的部分进行纠正. 4、实验及结论 ︽现代蒙古语谓语段自动标注系统︾ 是一个实验性系统。它具备了对蒙古语句子的谓语 段进行自动标注的基本功能。能够对语料库文件自动切分句子,标注出每个句子的谓语段极 7 其谓语段内部出现的各种辅助成分。实验语料为现代蒙古语 100 万词级语料库中的 10 万词 语料 DDHB345 ︵高中蒙古文课本第 3、4、5 冊︶ ,在真实语料中其标注准确率可以达到 70%。 今后我们需要完善各个部分的消岐规则,进一步提高标注系统的准确性。 参考文献 [1] 黄昌宁,李涓子,语料库语言学,商务印书馆,2002年。 [2] 俞士汶主编,计算语言学概论,商务印书馆,2003年。 [3] 那顺乌日图, ﹃ 蒙古语语法信息词典 ﹄ 框架设计,博士学位论文 2000年。 [4] 华沙宝, ︽现代蒙古语语料库︾ 程序,内蒙古大学学报,1992年第 2期。 [5] 德萨日娜,蒙古语格框架的研究[D],内蒙古大学博士学位论文,2006年6月,P58-P60 [6] 王斯日古楞,德 萨日娜. ︽蒙古语连动词语义功能自动识别系统︾ [J] . ︽中国蒙古学︾ ,2006年第3 期.P111-P113 [7] 陈灿煌. C++ BUILDER 6彻底研究[M].北京:中国铁道出版社,2003年2月.P8-P10 [8] 余明兴,吴明哲.Borland C++ Builder 5 实例精讲,清华大学出版社,2001年6 月。