MathJax.Hub.Config({tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]}}); function MyAutoRun() {    var topp=$(window).height()/2; if($(window).height()>450){ jQuery(".outline_switch_td").css({ position : "fixed", top:topp+"px" }); }  }    window.onload=MyAutoRun; $(window).resize(function(){ var bodyw=$win.width(); var _leftPaneInner_width = jQuery(".rich_html_content #leftPaneInner").width(); var _main_article_body = jQuery(".rich_html_content #main_article_body").width(); var rightw=bodyw-_leftPaneInner_width-_main_article_body-25;   var topp=$(window).height()/2; if(rightw<0||$(window).height()<455){ $("#nav-article-page").hide(); $(".outline_switch_td").hide(); }else{ $("#nav-article-page").show(); $(".outline_switch_td").show(); var topp=$(window).height()/2; jQuery(".outline_switch_td").css({ position : "fixed", top:topp+"px" }); } }); 基于双语协同训练的最大名词短语识别研究
  软件学报  2015, Vol. 26 Issue (7): 1615-1625   PDF    
基于双语协同训练的最大名词短语识别研究
李业刚1, 2, 3, 黄河燕1, 2 , 史树敏1, 2, 鉴萍1, 2, 苏超1, 2    
1. 北京理工大学 北京市海量语言信息处理与云计算应用工程技术研究中心, 北京 100081;
2. 北京理工大学 计算机学院, 北京 100081;
3. 山东理工大学 计算机科学与技术学院, 山东 淄博 255049
摘要:针对传统方法对双语最大名词短语识别一致性差以及跨领域识别能力弱的缺点,提出一种基于半监督学习的双语最大名词短语识别算法.利用汉英最大名词短语的互译性和识别的互补性,把平行的汉语句子和英语句子这两个数据集看作一个数据集的两个不同的视图进行双语协同训练.在协同训练中,把双语对齐标注一致率作为标记置信度估计依据,进行增量标记数据的选择.实验结果表明:该算法显著提高了双语最大名词短语的识别能力,在跨领域测试和同领域测试中,F值分别比目前最好的最大名词短语识别模型提高了4.52%和3.08%.
关键词最大名词短语    半监督学习    标注投射    双语协同训练    短语识别    
Title Recognition of Maximal-Length Noun Phrase Based on Bilingual Co-Training
LI Ye-Gang1, 2, 3, HUANG He-Yan1, 2 , SHI Shu-Min1, 2, JIAN Ping1, 2, SU Chao1, 2    
1. Beijing Engineering Applications Research Center of High Volume Language Information Processing and Cloud Computing, Beijing Institute of Technology, Beijing 100081, China;
2. School of Computer Science and Technology, Beijing Institute of Technology, Beijing 100081, China;
3. College of Computer Science and Technology, Shandong University of Technology, Zibo 255049, China
Corresponding author:
Abstract: This article focuses on the problem of weak cross-domain ability on bilingual maximal-length noun phrase recognition. A bilingual noun phrase recognition algorithm based on semi-supervised learning is proposed. The approach can make full use of both the English features and the Chinese features in a unified framework, and it regards the two language corpus as different view of one dataset. Instances with the highest confidence score are selected and merged, and then added to the labeled data set to train the classifier. Experimental results on test sets show the effectiveness of the proposed approach which outperforms 4.52% over the baseline in cross-domain, and 3.08% over the baseline in similar domain.
Key words: maximal-length noun phrase    semi-supervised learning    label projection    bilingual co-training    phrase identification    

最大名词短语(maximal-length noun phrase,简称MNP)是不被其他任何名词短语所包含的名词短语,在句子中有稳定的外部修饰结构,是一个完整的句法单元和语义单元[1].MNP的分析和研究,是机器翻译、信息检索和信息抽取等任务中的一个有重要价值的难题.从20世纪90年代开始,国内外众多的研究者开始对MNP的自动识别进行研究,其中,在英语MNP自动识别研究中,文献[2]提出的NPtool是一种基于规则方法的MNP自动获取工具;文献[3]则提出在浅层句法分析的基础上,利用有限状态分析识别句子中的MNP.汉语MNP的自动识别研究中,文献[1]提出了组合内部结构的MNP识别算法,识别的正确率达到85.4%;文献[4]提出了一种基于前后向“分歧点”的概率融合策略,利用支持向量机(support vector machine,简称SVM),融合了前后向MNP标注的结果,这也是迄今为止公开的MNP自动识别研究中,基于单个分类器的最好的结果,其F值比基于SVM的基线模型提高了1.05个百分点.

综上我们发现:现有的MNP的研究都是针对单一语言的,仅采用单一语言的各种特征来提高MNP的识别性能,不同语言之间MNP识别的一致性比较差,这很大程度上影响了MNP等价对的进一步提取.实际上,不同语言的MNP识别利用了各自语言的不同特征,具有互补性,若取长补短,充分利用,可以提高MNP的识别性能和识别的一致性.另外,现有研究成果中,自动识别MNP效果比较好的都是基于有监督的学习方法.有监督的学习方法虽然在诸多自然语言处理任务中都有良好的表现,但其存在两个明显的不足之处:其一,需要大量的已标注数据来保证学习的准确性;其二,当已有的标注数据与待判定的数据不属于同一个领域时,有监督学习算法的性能会明显下降.改进这两个不足的方法之一就是采用半监督的学习方法,半监督学习方法在词性标注[5]、语义角色标注[6]和情感分类[7]等自然语言处理任务中都有初步的应用.

我们的研究立足于利用不同语言之间MNP识别的互补性,取长补短,引入了典型的半监督学习算法——协同训练,提出了双语协同训练算法,算法的框架如图 1所示.以汉英双语MNP识别为例,把平行的汉语句子和英语句子这两个数据集看作一个数据集的两个不同的视图,融合汉英双语特征进行协同训练.从公开发表的论文来看,与本文最相近的研究是文献[7]的利用双语协同训练进行情感词分类,但是文献[7]在双语标注转换时采用的是词典翻译的方式,相比之下,MNP往往是由多个词组成的,粒度更大,简单的词典翻译和词对齐等方法无能为力.因此,我们在标注投射过程中使用一个对数线性模型,修正标记示例的投射错误,减少另外一个分类器的噪音引入.

Fig.1 Framework for proposed algorithm 图 1 协同训练算法框图
1 双语MNP

双语MNP要具备可互译性和双语的一致性,这对机器翻译有着重要的意义,也是我们进行MNP双语协同训练的基础.双语MNP涉及到两种不同的语言,与普通的单语MNP相比,有额外的约束条件:其一,双语MNP是句法独立的,不存在一端名词短语连续,另一端不连续的现象;第二,双语MNP在双语句子中句法功能相同,即,一端是名词短语,另一端也应具有名词的功能.我们对CTB英汉双语对照树库(English ChineseTranslation Treebank V1.0)的4 175个句子进行了相应的统计.分析发现,汉英MNP具有较好的稳定性,98%以上都符合上述约束.Koehn[8]在英语-德语、汉语-英语和葡萄牙语-英语等语言对之间也做过类似的统计,虽然统计语料来源不同,但统计结果相似,这也说明等价双语MNP的研究适用于更大范围的语言对.限于篇幅,我们仅以汉英MNP对为例进行更深入的研究.

双语MNP在单语中可能被其他名词短语包含,但是它不能被可互译的其他名词短语包含.也就是说,它的最大是双语一致可互译下的最大.区别于单语的MNP,双语MNP可形式化定义为:

定义1. 对于句对SP=<S,T>,S表示汉语文本序列,S:ws1ws2wsns,T表示英语文本序列,T:wt1wt2wtnt,其中,nsnt分别表示句子ST的长度.若存在<Mc,Me>,McS,MeT,并且满足下列条件,则称<Mc,Me>为双语MNP:

{<Mc,Me>|Mc=ws0,ws1,…,wsm,Me=wt0,wt1,…,wtn;McMe;m<ns,n<nt}.

(1)非空性:Mcnull,Menull;

(2)互译性:McMe,MeMc具有翻译上的转换充分性;

(3)代表性:McMe的语义核心由一个或多个名词组成,该语义核心的成分特征决定了整个MNP短语结构的特征;

(4)最大性:不存在另外一个$\langle \overline {Mc} ,\overline {Me} \rangle ,\overline {Mc} \subset S,\overline {Me} \subset T,$且满足$Mc \subseteq \overline {Mc} ,Me \subseteq \overline {Me} .$

例如:汉英句对“确保了浦东开发的有序进行”和“ensuring the orderly advancementof Pudong’s development”的双语MNP识别结果为“确保/O 了/O 浦东/BS 开发/IS 的/IS 有序/IS 进行/IH”,“ensuring/O the/BS orderly/IS advancement/IHof/IS Pudong/IS ’s/IS development/IS”.汉语MNP“浦东开发的有序进行”和英语MNP“theorderly advancement of Pudong’s development”可以互译,具转换充分性.汉语和英语MNP的语义核心词“进行”和“advancement”都是名词,可以代表对应MNP的特征.

2 双语协同训练算法

协同训练算法(co-training)[9]是一种典型的半监督学习方法,最初的协同训练是在一个数据集的两个充分冗余的视图上利用有标记示例分别训练分类器,在协同训练过程中,每个分类器从未标记示例中挑选出对示例赋予正确标记的置信度高的示例进行标记,并把标记后的示例加入另一个分类器的有标记训练集,训练过程不断迭代,达到某个停止条件为止.该算法的不足在于“充分冗余视图”这一限定条件在实际问题中往往难以满足.文献[10]的研究则证明:“充分冗余”这个条件即便是不完全满足,协同训练算法也可以在一定程度上提升分类器的性能.文献[11]提出了一种在同一个属性集上训练两个不同的分类器的协同训练算法,该算法不再要求“充分冗余的视图”,但不足之处在于:算法在少量标记数据上进行10倍交叉验证,经常难以稳定地估计置信度;同时,算法的泛化能力也有所降低.文献[12]提出了在同一个属性集上使用同类型分类器的tri-training算法,该算法首先对有标记示例集进行可重复取样,生成3个有标记训练集,在每个训练集上分别训练产生分类器;然后,用其中两个分类器对同一个未标记示例进行预测,如果预测结果相同,则认为该示例标记置信度较高,加入第3个分类器的有标记训练集中.tri-training算法的优点是不再显式地估计置信度,而是通过多个分类器的预测结果的一致性来隐式地估计标记置信度,提高了算法的泛化能力.tri-training算法的不足之处在于:如果初始分类器比较弱,隐式估计往往不够准确,容易错误标记未标记示例,从而给第3个分类器引入噪声数据.

本文提出的双语协同训练算法在现有丰富的汉英平行语料基础上,利用双语MNP的互译性和识别的互补性,把平行的汉语句子和英语句子这两个数据集看作一个数据集的两个不同的视图进行双语协同训练.不同于普通的协同训练任务,双语协同训练过程中还有一个标记投射的问题.由于语言的差异性和词对齐技术的差强人意,单纯依靠词对齐进行词投射得到对应MNP的方法性能比较差.因此,我们在投射过程中使用一个对数线性模型修正投射标记,降低标记示例的投射错误,减少另外一个分类器的噪音引入,从而提高协同训练的质量.另外,在利用分类器对未见示例进行预测时,我们引入双语对齐标注一致率作为标记置信度估计的衡量指标,摆脱了对小样本标记数据的依赖,隐式估计标记置信度,从而提高了算法的泛化能力,具有领域适应性.算法描述如算法1所示.

算法1. 双语MNP协同训练算法.

1.已知条件:

1.1.汉英句子级别对齐的已标注语料集合Ls,Lt;

1.2.汉英句子级别对齐的未标注语料集合Us,Ut.

2.初始化分类器:

2.1.在Ls上训练分类器Classifier(s);

2.2.在Lt上训练分类器Classifier(t).

3.循环m次:

3.1. 从UsUt中抽取n个对齐的句子,分别利用分类器Classifier(s)和Classifier(t)进行标注,形成$\bar Us$和$\bar Ut$计算$conformity\_ration(\bar Us,\bar Ut),\max \leftarrow conformity\_ration(\bar Us,\bar Ut),$初始化标注语料增量集合$\tilde L{t^*} \leftarrow null,\tilde L{s^*} \leftarrow null;$

3.2.循环n次:

3.2.1. 随机地从$(\bar Us,\bar Ut)$中抽取k个句对形成$(\hat Ls,\hat Lt),$依据词对齐原则从$\hat Ls$到$\hat Lt$进行标注投射,投射结果融合$\hat Lt$修正后形成$\tilde Lt;$

3.2.2. 在$Lt \cup \tilde Lt$上重新训练分类器,$classifier(t) \leftarrow classfier(Lt \cup \tilde Lt);$

3.3.3. 利用分类器Classifier(t)对$\bar Ut$进行标注,重新计算$conformity\_ration(\bar Us,\bar Ut),$如果$conformity\_ration(\bar Us,\bar Ut) > \max ,$则$\max \leftarrow conformity\_ration(\bar Us,\bar Ut),\tilde L{t^*} \leftarrow \tilde Lt;$

3.3.$Lt \leftarrow Lt \cup \tilde L{t^*},$在Lt上重新训练分类器classifier(t)←classifier(Lt);

3.4.循环n次:

3.4.1.随机地从$(\bar Us,\bar Ut)$中抽取k个句对形成$(\hat Ls,\hat Lt),$依据词对齐原则从$\hat Lt$到$\hat Ls$进行标注投射,投射结果融合$\hat Ls$修正后形成$\tilde Ls;$

3.4.2. 在$Ls \cup \tilde Ls$上重新训练分类器$classifier(s) \leftarrow classfier(Ls \cup \tilde Ls);$

3.4.3. 利用分类器Classifier(s)对$\bar Us$进行标注,重新计算$conformity\_ration(\bar Us,\bar Ut),$如果$conformity\_ration(\bar Us,\bar Ut) > \max ,$则$\max \leftarrow conformity\_ration(\bar Us,\bar Ut),\tilde L{s^*} \leftarrow \tilde Ls;$

3.4.4. $Ls \leftarrow Ls \cup \tilde L{s^*},$在Ls上重新训练分类器classifier(s)←classifier(Ls).

3 双语对齐标注一致率

在协同训练过程中,一旦某个增量标注出错,这个错误将被将继续学习和加强,导致算法性能下降.这就需要采取有效的措施减少噪声数据引入.双语MNP具备互译性,也就是说,正确识别的汉英MNP应该具有标注的一致性.所以我们在词对齐的基础上,以对齐词的BIO标注一致率作为衡量指标,选择对齐标注一致率最高的部分(top z)作为增量标记数据.对齐标注一致率的计算如公式(1)所示.

$conformity\_ratio = \frac{1}{n}\sum\limits_U {\frac{1}{K}\sum\nolimits_{k = 1}^K {conformity{{(w{s_i},w{t_j})}_k}} } $ (1)
其中,$conformity{(w{s_i},w{t_j})_k} = \left\{ {\begin{array}{*{20}{l}} {1,{\text{ }}T(w{s_i}) = T(w{t_j})} \\ {0,{\text{ }}T(w{s_i}) \ne T(w{t_j})} \end{array}} \right.,$(wsi,wtj)k表示平行句对的第k(1≤kK)个词对;T(wsi),T(wtj)分别表示MNP汉英两端的BIO标记;U表示未标注语料集;n表示U中的句子数.由于汉语和英语在语序上有较大的差异,在对齐标注一致率计算时我们忽略标记“B”和“I”的差异,认为它们是相同的标记.以Lt的增量标注选择为例,双语对齐标注一致率的获取过程如框图 2所示.

Fig.2 Framework of conformity-rationacquisition 图 2 双语对齐标志一致率的获取过程框图

文献[11]采用的是在少量标记数据上进行10倍交叉验证来进行增量标记数据的选择.这种显式的估计方法的不足之处在于:增量标记数据的选择依赖于少量的标记数据,这会降低算法的泛化能力.为了增强算法的领域适应性,我们采用了类似文献[12]的隐式估计方法,在每次迭代更新的未标注的数据集上进行验证,把在未标注集上对齐标注一致率最高的增量标记数据作为最优增量标记数据.

4 标记投射修正模型

双语协同训练不同于普通的协同训练,两个分类器分别是在不同的语言上训练.因此,一个分类器标记后的示例不能直接加入另一个分类器的有标记训练集,还需要在两个不同语言句子之间进行标注投射.由于汉英之间的语言差异较大,MNP粒度又比较大,仅依靠词对齐进行源语言到目标语言的标注投射获得目标语言MNP,结果会不尽如人意.为了提高标注投射的可靠性,我们融合目标语言MNP的单语特征和双语MNP的对齐特征,对投射结果进行修正.我们首先对从源语言到目标语言的MNP投射区域进行扩展,使之容纳更多的目标语言MNP假设,每个MNP投射假设与源语言MNP组成一个双语MNP假设;然后,我们构造一个线性对数模型,融合目标语言名词短语的句法置信度和双语MNP的对齐置信度,对所有的双语MNP假设综合打分;最后,通过一个贪心搜索得到句对最优的双语MNP假设集合.源语言在目标语言端的最优投射结果就是与源语言名词短语组成最优双语MNP假设的那个目标语言MNP.

4.1 投射MNP扩展

源语言MNP表示为$Mc_{c1}^{c2},$通过词对齐方式,得到目标语言端连续的且包含投射中心词的中心词块作为最小候选区域$Me_{a1}^{a2},$把包含所有投射词的投射区域$\overline {Me} _{b1}^{b2}$的两端分别向外扩展4个词(到达句首或者句尾可能不到4个词)作为最大候选区域.

在目标语言端建立一个滑动窗,从最小候选区域出发,不断向句子任意一侧扩充词,直至达到最大候选区域

边界为止,从而扩展产生一系列的目标语言端候选MNP假设.每个目标语言端MNP假设与$Mc_{c1}^{c2}$组合,形成一个双语MNP假设,表示为${H_k} = (Mc,M\tilde e).$

4.2 MNP单语句法置信度

周强[1]的实验证明边界分布信息特征在MNP自动识别中的有效性.为了确保目标语言端MNP投射满足名词短语的句法特征,我们也选用了左右边界分布概率作为目标语言MNP的句法置信度.边界分布概率包含了左边界二元词性共现频率和右边界二元词性共现频率.

·左边界二元词性共现频率定义如公式(2)所示.

$P(Mxl|M\tilde x_a^b,S) = \max \left( {\frac{{c({t_i},{t_{i + 1}},lw)}}{{c(lw)}},\frac{{c({t_{i - 1}},{t_i},lw)}}{{c(lw)}}} \right)$ (2)

·右边界二元词性共现频率的定义如公式(3)所示.

$P(Mxr|M\tilde x_a^b,S) = \max \left( {\frac{{c({t_i},{t_{i + 1}},rw)}}{{c(rw)}},\frac{{c({t_{i - 1}},{t_i},rw)}}{{c(rw)}}} \right)$ (3)
其中,公式中的ti,ti-1,ti+1分别表示边界词wi的词性、边界词wi的前一个词wi-1的词性和边界词wi的后一个词wi+1的词性,c(*,*,*)表示语料库中MNP边界词wi的二元词性组合出现的次数,而c(rwi)和c(lwi)分别表示左、右边界在语料中出现的次数.数据平滑处理使用了Katz back-off[13],计算方法如公式(4)所示.

${P_{smooth}}({t_i}|t_{i - n + 1}^{i - 1}) = \left\{ {\begin{array}{*{20}{l}} {{P_{smooth}}({t_i}|t_{i - n + 1}^{i - 1}),{\text{ if }}C(t_{i - n + 1}^{i - 1}) > 0} \\ {\gamma (t_{i - n + 1}^{i - 1}){P_{smooth}}({t_i}|t_{i - n + 2}^{i - 1}),{\text{ if }}C(t_{i - n + 1}^{i - 1}) = 0} \end{array}} \right.$ (4)

融合左、右边界信息,投射MNP的单语句法置信度的计算如公式(5)所示.

$P(Mx|M\tilde x,S) = P(Mxl|M\tilde x_a^b,S)P(Mxr|M\tilde x{}_a^b,S)$ (5)
4.3 MNP双语对齐置信度

最大熵[14]模型能够融合不同类型的特征,对于双语MNP的对齐置信度$P(A|Mc,M\tilde e,CS,ES),$我们构造特征函数${f_m}({a_k},Mc_a^b,M\tilde e_c^d,CS,ES),m = 1,2,...,M,$利用最大熵模型进行建模,如公式(6)所示.对于每一个特征函数fm,对应的模型参数为lm,m=1,2,…,M.

$P({a_k}|Mc_a^b,M\tilde e_c^d,CS,ES) = \frac{{\exp \left( {\sum\limits_{m = 1}^M {{\lambda _m}{f_m}({a_k},Mc_a^b,M\tilde e_c^d,CS,ES)} } \right)}}{{\sum\limits_A {\exp \left( {\sum\limits_{m = 1}^M {{\lambda _m}{f_m}({a_k},Mc_a^b,M\tilde e_c^d,CS,ES)} } \right)} }}$ (6)

公式中,CSES分别表示中文句子和英文句子.我们采用3个特征对双语MNP对齐置信度进行建模,分别为双语MNP词性组合共现特征、双语MNP互译特征以及双语MNP长度关联特征.

·双语MNP词性组合共现特征.

词性组合共现特征是指双语MNP中对应的汉英词性序列在整个语料库中的共现频率.具体计算如公式(7)所示.

${f_m}({a_k},Mc_a^b,M\tilde e_c^d,CS,ES) = {f_m}({a_k},t\_Mc_a^b,t\_M\tilde e_c^d,CS,ES) = \frac{{c(t\_Mc_a^b,t\_M\tilde e_c^d)}}{{\sum {c(t\_Mc_a^b,*)} }} + \frac{{c(t\_Mc_a^b,t\_M\tilde e_c^d)}}{{\sum {c(*,t\_M\tilde e_c^d)} }}$ (7)

其中,$c(t\_Mc_a^b,t\_M\tilde e_c^d)$表示双语MNP词性组合在语料中共现的次数,*表示语料中任意词性的组合.

·双语MNP互译特征.

Brown等人[15]使用公式(8)计算源语言文本串F=f1,f2,…,fm,翻译成目标语言文本串E=e1,e2,…,en,的翻译概率.

$P(F|E) = \frac{1}{{{{(n + 1)}^m}}}\prod\limits_{j = 1}^m {\sum\limits_{i = 1}^n {t({f_j}|{e_i}} } )$ (8)

对于候选双语MNP,我们把源语言MNP与目标语言端投射MNP之间的相互翻译概率分别用$P(Mc_a^b|M\tilde e_c^d)$和$P(M\tilde e_c^d|Mc_a^b)$来表示,则双语MNP互译特征如公式(9)所示.

${f_m}({a_k},Mc_a^b,M\tilde e_c^d,CS,ES) = \log (P(Mc_a^b|M\tilde e_c^d)) + \log (P(M\tilde e_c^d|Mc_a^b))$ (9)

·双语MNP长度关联特征.

对于最优的双语MNP$(Mc_a^b,Me_c^d)$而言,$Mc_a^b,Me_c^d$的长度差异近似满足标准正态分布[16],由此,我们定义长度关联特征如公式(10)所示.

${f_m}({a_k},Mc_a^b,M\tilde e_c^d,CS,ES) \approx {f_m}({a_k},|Mc_a^b|,|M\tilde e_c^d|) = \frac{{|Mc_a^b| - \delta |M\tilde e_c^d|}}{{\sqrt {{{(|Mc_a^b| + 1)}^{{\sigma ^2}}}} }}$ (10)
其中,$\delta = \frac{1}{n}\sum\limits_{i = 1}^n {\left( {\frac{{c(M{e_i})}}{{c(M{c_i})}}} \right)} ,{\sigma ^2} = \frac{1}{n}\sum\limits_{j = 1}^n {\left( {\frac{{c(M{e_j})}}{{c(M{c_j})}} - \frac{1}{n}{{\sum\limits_{i = 1}^n {\left( {\frac{{c(M{e_i})}}{{c(M{c_i})}}} \right)} }^2}} \right)} ,$c(*)表示*包含的字符数,英语为字母数,汉语为汉字数.