摘要:针对传统基于转换的词性标注方法中规则学习速度过慢的问题提出了一种对训练语料库进行动态划分的算法。该算法根据规则之间的冲突和依赖关系对训练语料库进行动态划分,减小了搜索空间。在保证拉丁蒙文词性标注正确率的前提下提高了规则学习速度。经过10000拉丁蒙文句子语料库的对比测试,发现该方法在规则学习中所花费的时间仅为原方法的32%。
关键词:词性标注;转换;规则冲突;规则依赖;动态划分
中图分类号:TP18文献标识码:A
文章编号:1001-9081(2007)04-0963-03
0引言
词性标注一直是自然语言信息处理的一个重要研究课题。词性标注主要方法有两种:基于规则的方法和基于统计的方法。基于规则的方法通常采用手工编制复杂的词性标注规则系统,可以充分利用人的语言学知识,但是带有很强的主观性,容易产生规则冲突,对语言学专家的依赖性强,存在知识获取的瓶颈问题,并且加工、调试规则费时费力。基于统计的方法如隐马尔可夫模型,在计算每一输入词序列的最有可能词性标注序列时,既考虑上下文,也与二元或三元概率参数有关。由于人工标注训练语料库的易得性和统计模型的健壮性,使得统计方法成为当前主流的词性标注方法。然而基于隐马尔可夫模型的词性标注也存在不足:为了达到很高的标注准确率,需要大量的训练语料;基于隐马尔可夫模型的标注方法不能直接利用现有的语言学知识,对自然语言语法结构的很多属性描述太粗糙;容易产生数据稀疏。
1基于转换的错误率驱动的方法
基于转换的错误率驱动的方法[1]最初用于英文的词性标注。其基本思想是利用一个初始标注器来标注训练语料库,然后把标注结果和正确标注结果进行比较,遍历所有可能的转换模式,从中选出效果最好的一条转换式,作为系统的标注规则,再用该规则重新标注语料库。重复上述过程,每次循环都得到一条新规则,直到没有新的转换式出现。这样就可以获得词性标注的规则集。在标注时,首先使用初始标注器进行标注,然后利用获得的规则集进行标注。
这种方法的优势在于能够利用大范围的词汇和语法结构规则。特别地,标注可以建立在词语或更多的上下文上。通过选取和追加把一个初始的不完美标注器转化成一个只有很少错误的标注器,基于转换的标注编码了词语和标记之间复杂的依存关系。基于转换的标注器训练需要的决策量比估计大量的马尔可夫模型的参数要少一个级别。
图片图1基于转换的错误率驱动的方法流程
目前,基于转换的词性标注方法存在一个主要的缺点,就是规则学习过程中所需要的时间过长,计算量过大。本文将针对这一问题提出一项改进。新算法在每次迭代过程中,根据冲突转换规则模板对训练语料库进行动态划分,使每个转换模板只需遍历语料库的一部分,而不是全部,减少了学习时间。
2拉丁蒙文的语法特点
蒙文和英文在语法上具有一定的相似性。蒙古文中的词有形态变化,即在词根上可以接附加成分形成新的词。一般不同的附加成分所形成的词的类型是不同的,所以可以根据词中的附加成分确定词类。
在蒙古语中,某些类型的词在词汇中只占少数,这些有限的少数词属于某种词性,其类型在不同的句子成分中始终不变。因此,可以用枚举的方式把它们列出,并在句子中直接指出其词性。因此,基于转换的词性标注方法完全可以用于拉丁蒙文的词性标注。
3基于转换的规则学习算法
1)当前一词的标记为z,则将当前词的标记a改为标记b。
2)当前一词的标记为z,且后一词的标记为w,将当前词的标记a改为标记b。
在循环过程中,对每条转换式都要扫描整个训练语料库,对所有可能的转换式都要计算标注错改为对的次数,以及对改为错的次数,两者之差最大者被视为最佳转换式,每次循环结束时,可以找到一条最佳转换式。利用该转换式对整个训练语料库进行标注,并且将该转换式作为获取的规则记录在一个有序表中。重复上述过程,直到不再出现新的规则为止。
然而每获取一条转换式的时间复杂度为O(Nc2*Nt*Nw),其中Nc为词性集标记的数目,Nt为规则转换模板的种类,Nw为训练语料库中包含词次的数目。可见时间复杂性是非常高的。实际上由于转换模板太多,因而无法全部调入内存,大量时间还要花在内外存的数据交换上,因此花费的总时间还要长得多。
4改进的基于转换的规则学习算法
由上面的算法可知,每个规则转换模板都要对整个训练语料库进行遍历,然而通过对规则转换模板的研究,我们发现有些规则转换模板是互相冲突的,即如果当前词满足规则转换模板X,那么它一定不会满足规则转换模板Y。这样就可以在遍历训练库的过程中,将所有满足规则转换模版X的词加入一个集合,设为S1。当对规则转换模板Y进行学习时,遍历的训练语料库为整个训练集减去集合S1所得到的差集。












