双语文本的对齐方法及装置 【技术领域】
本发明涉及文本信息处理领域,特别涉及一种双语文本的对齐方法及装置。
背景技术
随着互联网的迅猛发展,互联网上的信息量呈指数爆炸式增长。如何利用好这些信息则成为了一个难题,尤其是语言上的不统一,人们期望有一种自动的或需要很少人工干预的方法将一种语言转换成另一种语言,而这些方法的设计和实施需要大量的双语对齐文本(即已给出在篇章级、句子级、词语级等级别的对应关系的双语文本)。由于人工制作双语对齐文本费时费力,于是需要一些方法来自动对双语文本进行对齐(即给出双语文本在篇章级、句子级、词语级等的对应关系)。
现有技术中的一种对齐方式是:采用句子长度信息来对双语文本进行对齐;另一种对齐方式是:采用词语间互译关系来对双语文本进行对齐。
在实现本发明的过程中,发明人发现现有技术至少存在以下几个缺点:
采用句子长度信息来对双语文本进行对齐时,当输入文本中出现的句子缺失或插入时,会引起对齐性能的急剧下降,从而导致鲁棒性差;第二种对齐方式随着文本长度的增加,词语数量的增多,对齐的时间也将随之增长,从而导致对齐的速度很慢。
【发明内容】
为了提高双语文本的对齐速度,并同时保证良好的鲁棒性,本发明实施例提供了一种双语文本的对齐方法及装置。所述技术方案如下:
一方面,提供了一种双语文本的对齐方法,所述方法包括:
将待对齐双语文本的原文文本及译文文本分别进行预处理;
判断所述原文文本及译文文本之间的句子数差值是否足够大,并根据判断结果,将经过预处理的双语文本分割成多个双语文本片段;
根据词语间的互译关系,将每个双语文本片段进行对齐,得到对齐的双语文本。
另一方面,提供了一种双语文本的对齐装置,所述装置包括:
预处理模块,用于将待对齐双语文本的原文文本及译文文本分别进行预处理;
判断模块,用于判断所述原文文本及译文文本之间的句子数差值是否足够大;
分段模块,用于根据所述判断模块的判断结果,将经过预处理的双语文本分割成多个双语文本片段;
对齐模块,用于根据词语间的互译关系,将所述分段模块得到的每个双语文本片段进行对齐,得到对齐的双语文本。
本发明实施例提供的技术方案的有益效果是:
通过判断原文文本及译文文本之间的句子数差值是否足够大,并根据判断结果,将经过预处理的双语文本可靠地分段,再分别对每个双语文本片段进行对齐,从而提升对齐的速度;又由于在对每个双语文本片段进行对齐时,采用的是词语间的互译关系,因此保证了良好的鲁棒性。
【附图说明】
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例1提供的双语文本的对齐方法流程图;
图2是本发明实施例2提供的双语文本的对齐方法流程图;
图3是本发明实施例3提供的双语文本的对齐装置结构示意图;
图4是本发明实施例3提供的双语文本的对齐装置中的分段模块结构示意图。
【具体实施方式】
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
参见图1,本实施例提供了一种双语文本的对齐方法,方法流程如下所示:
101:将待对齐双语文本的原文文本及译文文本分别进行预处理;
102:判断所述原文文本及译文文本之间地句子数差值是否足够大,并根据判断结果,将经过预处理的双语文本分段,得到一至多个双语文本片段;
103:根据词语间的互译关系,将每个双语文本片段进行对齐,得到对齐的双语文本。
本实施例提供的方法,通过判断原文文本及译文文本之间的句子数差值是否足够大,并根据判断结果,将经过预处理的双语文本可靠地分段,再分别对每个双语文本片段进行对齐,从而提升对齐的速度;又由于在对每个双语文本片段进行对齐时,采用的是词语间的互译关系,因此保证了良好的鲁棒性。
实施例2
参见图2,本实施例提供了一种双语文本的对齐方法,该方法针对句子级的对齐,通过将双语文本可靠地分段来有效提高句子对齐的速度,从而实现整篇双语文本的对齐,具体方法流程如下:
201:将待对齐双语文本的原文文本及译文文本分别进行预处理;
具体地,预处理包括但不限于将原文文本及译文文本中的句子切分成词,并将存在词根的词映射为对应的词根,例如,将英文中代表名词复数的词映射成对应的单数词;将标点符号转换成单字节形式,例如,将中文双引号映射成ASCI I码(Ame rican Standard Code for Information Interchange,美国信息交换标准代码);将易于转换的非阿拉伯数字转换成阿拉伯数字,例如,将“三十五”转换成“35”;除此之外,还要统计每个词在整篇文本中出现的次数,及在其所在的句子中出现的次数,并统计每个句子的指纹。
关于句子的指纹,定义如下:
给定句子序列s1,s2,L,sn,记w(si)为句子si中所有词的集合,则句子si的指纹为:
F(si)=W(si)-W(si-1)-W(si+1);
其中,F(s1)=W(s1)-W(s2),F(sn)=W(sn)-W(sn-1),“-”代表集合的差运算。
202:判断原文文本及译文文本之间的句子数差值是否足够大,如果是,执行206,否则,执行203;
针对该步骤,设原文文本的句子数为N1,译文文本的句子数为N2,如果|N1-N2|/min(N1,N2)>0.5,则认为差值足够大,其中,min(N1,N2)表示取N1与N2中的最小值。
203:使用句子长度信息将原文文本及译文文本进行初步对齐,得到多个句子对;
具体地,给定两段互为翻译的文本(S;T)=(S1S2L Sm;T1T2L Tn),其中,S为原文文本,T为译文文本,Si和Ti分别为原文文本和译文文本中的第i个句子。用表示一组句子,称为一个句子对。如果存在a0=0<...<ai-1<ai<...<ak=m,b0=0<...<bi-1<bi<...<bk=n,则称A=A1,A2,L,Ak为(S;T)的一个对齐。
在使用句子长度信息将原文文本及译文文本进行初步对齐时,通过建立数学模型来描述原文文本句子长度与译文文本句子长度间的关系,根据此模型可以算出任意一个句子对对齐的概率P(Ai),而原文文本和译文文本的一个对齐A的概率则为P(A)=P(A1)P(A2)LP(Ak),将令P(A)取得最大值的对齐作为原文与译文的对齐结果,根据对齐结果,得到多个句子对;目前已有多个模型提出原文文本句子长度与译文文本句子长度间的关系,但这些模型的定义之间比较相似,没有根本性的差别,并不影响本发明实施例的实施,可以根据具体的语言选取一种最适合的模型使用。
在本实施例中,定义P(Ai)=P(δ)P(NS,NT),其中,LS为Ai中原文文本句子长度,LT为译文文本句子长度,c是单位长度的译文文本平均对应的原文文本长度(亦即单位长度的译文文本对应的原文文本长度的数学期望),σ是单位长度的译文文本对应的原文文本长度的方差,这两个值在不同的语言间是不同的,可以使用相应语言的句子级互译文本统计得到。
关于P(NS,NT)的定义:使用句子级互译文本可以得到不同数量的原文文本句子与译文文本句子对齐的概率,举一例说明,假设从句子级互译文本中统计得到1句原文文本对应1句译文文本的情形有100次,1句原文文本对应2句译文文本的情形有10次,2句原文文本对应1句译文文本的情形有15次,并且没有其他的情形。则1句原文文本对应1句译文文本的概率为100/(100+10+15),则1句原文文本对应2句译文文本的概率为10/(100+10+15),则2句原文文本对应1句译文文本的概率为15/(100+10+15)。记Ai中原文文本句子数为NS,译文文本句子数为NT,P(NS,NT)是NS句原文与NT句译文文本对齐的概率。
204:对得到的每个句子对进行验证计算,选择符合验证条件的句子对作为初始分割点,并在初始分割点处将经过预处理的双语文本分割成多个双语文本初始片段;
在对每个句子对进行验证计算时,需要对每个句子对计算TRS(Si,Tj)、TRT(Si,Tj)、TFRS(Si,Tj)、TFRT(Si,Tj)这四个值,计算公式如下:
TRS(Si,Tj)=|TW(Si)||W(Si)|]]>
TRT(Si,Tj)=|TW(Ti)||W(Ti)|]]>
TFRS(Si,Tj)=|TF(Si)||F(Si)|]]>
TFRT(Si,Tj)=|TF(Ti)||F(Ti)|]]>
其中,在给定句子对(sk1,sk2,L,skm;tj1,tj2,L,tjn),简记sk1,sk2,L,skm为Si,代表原文文本中的句子;tj1,tj2,L,tjn为Tj,代表译文文本中的句子。W(Si)为原文文本句子Si中所有词的集合,W(Tj)为译文文本句子Tj中所有词的集合,TW(Si)为W(Si)中可以在W(Tj)中找到译文的词的集合,TW(Tj)为W(Tj)中可以在W(Si)中找到原文的词的集合。在求出句子对中的每个句子的指纹后,F(Si)为原文文本中所有句子的指纹的并集,F(Tj)为译文文本中所有句子的指纹的并集。而TF(Si)为F(Si)中可以在W(Tj)中找到译文的词的集合,TF(Tj)为F(Tj)中可以在W(Si)中找到原文的词的集合。
符合验证条件的句子对为至少满足下面一个条件的句子对:
条件1:TRS(Si,Tj)≥0.6且TRT(Si,Tj)≥0.6;
条件2:TRS(Si,Tj)≥0.5且TRT(Si,Tj)≥0.5
且TFRS(Si,Tj)≥0.4且TFRT(Si,Tj)≥0.4。
205:在各个双语文本初始片段中选择满足分割条件的句子对作为候选分割点,之后执行步骤207;
其中,分割条件为句子对中含有多对互为翻译的词,且互为翻译的词仅出现在该句子对中;由于该步骤是在各个双语文本初始片段中选择满足分割条件的句子对,因此,分割条件中所涉及到的“互为翻译的词仅出现在该句子对中”应该理解为“互为翻译的词仅出现在对应的双语文本初始片段中的该句子对中”。
此处的分割条件是为了进一步确定候选分割点的准确性,本实施例不对互为翻译的词的对数进行限定,例如,可以包含3对或3对以上互为翻译的词,且仅在此句子对中出现的词。
206:在经过预处理的双语文本中直接选择满足分割条件的句子对作为候选分割点;
该步骤中的分割条件同步骤205,由于该步骤是在经过预处理的双语文本中选择满足分割条件的句子对,因此,分割条件中所涉及到的“互为翻译的词仅出现在该句子对中”应该理解为“互为翻译的词仅出现在经过预处理的双语文本中的该句子对中”。
207:对选出的每个候选分割点,在其前后各取N个句子连同其自身组成一个双语文本测试片段,得到多个双语文本测试片段;
208:根据词语间的互译关系将每个双语文本测试片段对齐,根据对齐结果及筛选规则,筛选候选分割点;
针对该步骤,根据词语间的互译关系将每个双语文本测试片段对齐的具体步骤如下:
定义了一个评分函数SF(Ai)来对每个句对进行评分,而对齐A=A1A2L Ak的评分为SF(A1)+SF(A2)+L+SF(Ak),将该评分最大的对齐作为原文与译文的对齐结果。
其中,SF(Ai)的定义如下:给定一组句子(SiL L Sj;TkL L Tl),设c是SiL L Sj中的一个词,e是TkL L Tl中的一个词,且c与e是互为翻译的,记stf(c)为词c在SiL L Sj中出现的次数,stf(e)为e在TkL L Tl中出现的次数,关于每个词在句子中出现的次数,上述步骤201的预处理步骤中已给出结果。记stf(c;e)为stf(c)与stf(e)中较小者;T为双语文本测试片段的原文文本的总词数,dtf(c)为c在双语文本测试片段的原文文本中出现的总次数,idtf(c)为T/dtf(c)。任给一个句对Ai=(Si;Ti),记(c1;e1)……(ck;ek)为Si和Tj中互为翻译的词对,则
SF(Ai)=Σj=1klog(stf(cj,ej)×idtf(ej))×MP(|Si|,|Ti|)×LP(LSi,LTi)]]>
其中,MP(|Si|,|Tj|)是Ai中原文句子数与译文句子数的函数,是Ai中原文句子长度与译文句子长度的函数。
在根据词语间的互译关系进行对齐之后,依据以下几种筛选规则,筛选候选分割点,即决定是否保留、替换选择出的候选分割点,具体规则如下:
规则1:若对齐结果为候选分割点对应的双语文本测试片段中至少有一半句子对只包含原文文本或译文文本的句子,则将候选分割点丢弃;
规则2:若对齐结果为候选分割点对应的句子对中的句子分属不同的句子对,则将候选分割点丢弃;
规则3:若对齐结果为候选分割点对应的句子对不完整,则以完整的句子对替换候选分割点。
下面,以N=3为例,对本步骤进行详细说明。
设有原文文本为:{S1,S2,S3,S4,S5,S6,S7,S8,S9,S10},译文文本为{T1,T2,T3,T4,T5,T6,T7,T8,T9,T10,T11},其中,Si和Ti都是句子。以句子对(S5,T6)被选为侯选分割点为例,则首先取出双语片段({S2,S3,S4,S5,S6,S7,S8},{T3,T4,T5,T6,T7,T8,T9}),并在根据词语间互译关系进行对齐后,根据不同的对齐结果,依照上述规则1-3分别举例:
应用规则1的例子:设对齐结果中S2,S3,S4,S5,S6,S7,S8这6个句子没有译文与之对齐,而T3,T4,T5,T7,T8,T9这6个句子没有原文与之对齐,S5与T6是对齐的,亦即结果中有13个句对,其中12个句对只包含原文或译文句子,超过了句对总数(即13)的一半,此时认为从S5与T6处将原文与译文切开是不合适的,故将候选分割点(S5,T6)丢弃;
应用规则2的例子:设对齐结果为S2与T3对齐,S3与T4对齐,S4、S5与T5对齐,S6与T6、T7对齐,S7与T8对齐,S8与T9对齐,亦即S5与T6是分属于不同句对的,它们并不是互译的,S5与T6处将原文与译文切开是不合适的,故将候选分割点(S5,T6)丢弃;
应用规则3的例子:设对齐结果为S2与T3对齐,S3与T4对齐,S4与T5对齐,S5、S6与T6对齐,S7与T7、T8对齐,S8与T9对齐,亦即事实上S5与S6合在一起才是T6的完整翻译,因此用(S5S6,T6)替代(S5,T6)作为候选分割点。
209:去除分割位置有交叉的候选分割点,确定最终候选分割点;
具体地,如一个候选分割点由原文第10句与译文第1句组成,而另一个候选分割点由原文第1句与译文第10句组成,则它们无法将文本切割为不相重叠的部分,它们是交叉的,则去除此类候选分割点。
210:在确定的最终候选分割点处进行分割,将经过预处理的双语文本分割成多个双语文本片段,并根据词语间的互译关系,对每个双语文本片段进行对齐,得到对齐的双语文本。
其中,根据词语间的互译关系,对每个双语文本片段进行对齐时,过程同上述步骤207中所涉及到的,此处不再赘述。
另外,针对该步骤中涉及到的“在确定的最终候选分割点处进行分割,将经过预处理的双语文本分割成多个双语文本片段”,作出以下说明:
如果该步骤中的最终候选分割点是从步骤206选择出的候选分割点中筛选出来的,即是从经过预处理的双语文本中直接选择出来的,则对于该步骤中的“在确定的最终候选分割点处进行分割,将经过预处理的双语文本分割成多个双语文本片段”,即指在确定的最终候选分割点处,将整篇经过预处理的双语文本分割成多个双语文本片段。
如果该步骤中的最终候选分割点是从步骤205选择出的候选分割点中筛选出来的,即是从各个双语文本初始片段中选择出来的,则对于该步骤中的“在确定的最终候选分割点处进行分割,将经过预处理的双语文本分割成多个双语文本片段”,即指在确定的最终候选分割点处,将对应的双语文本初始片段进一步分段,最终使得将整篇经过预处理的双语文本分割成多个双语文本片段。
综上所述,本实施例提供的方法,通过将待对齐双语文本的原文文本及译文文本进行预处理,并判断原文文本及译文文本之间句子数差值是否足够大,在句子数差值不够大时,采用句子长度信息将经过预处理的双语文本进行初步对齐,在句子数差值足够大时,则避免采用句子长度信息将经过预处理的双语文本进行初步对齐,保证了良好的鲁棒性。最后,通过在确定的最终候选分割点处分割,将经过预处理的双语文本可靠地分段,并根据词语间的互译关系将每个双语文本片段进行对齐,提升了对齐的速度,保证了良好的鲁棒性。
实施例3
参见图3,本实施例提供了一种双语文本的对齐装置,该装置包括:
预处理模块301,用于将待对齐双语文本的原文文本及译文文本分别进行预处理;
判断模块302,用于判断原文文本及译文文本之间的句子数差值是否足够大;
分段模块303,用于根据判断模块302的判断结果,将经过预处理的双语文本分割成多个双语文本片段;
对齐模块304,用于根据词语间的互译关系,将分段模块303得到的每个双语文本片段进行对齐,得到对齐的双语文本。
具体地,上述预处理模块301,用于统计原文文本及译文文本中每个句子的指纹;每个句子的指纹为:F(si)=W(si)-W(si-1)-W(si+1);
其中,W(si)为句子si中所有词的集合,W(si-1)为句子si的前一个句子si-1中所有词的集合,W(si+1)为句子si的后一个句子si+1中所有词的集合,“-”代表集合的差运算。
判断模块302,用于在|N1-N2|/min(N1,N2)>0.5时,判断原文文本及译文文本之间的句子数差值足够大;
其中,N1为原文文本的句子数,N2为译文文本的句子数,min(N1,N2)为N1与N2中的最小值。
进一步地,参见图4,分段模块303包括:
选择单元303a,用于根据判断结果,选择满足分割条件的句子对作为候选分割点;
测试片段获取单元303b,用于在选择单元303a选择出的候选分割点的前后各取多个句子,连同候选分割点组成双语文本测试片段,得到多个双语文本测试片段;
对齐单元303c,用于根据词语间的互译关系,将测试片段获取单元303b得到的每个双语文本测试片段进行对齐;
筛选单元303d,用于根据对齐单元303c的对齐结果及筛选规则,筛选候选分割点,并去除分割位置有交叉的候选分割点,确定最终候选分割点;
分段单元303e,用于在确定的最终候选分割点处,将经过预处理的双语文本分割成多个双语文本片段。
其中,筛选单元303d在筛选时依据的筛选规则为:
规则1:若对齐结果为候选分割点对应的双语文本测试片段中至少有一半句子对只包含原文文本或译文文本的句子,则将候选分割点丢弃;
规则2:若对齐结果为候选分割点对应的句子对中的句子分属不同的句子对,则将候选分割点丢弃;
规则3:若对齐结果为候选分割点对应的句子对不完整,则以完整的句子对替换候选分割点。
具体地,上述选择单元303a,具体用于在原文文本及译文文本之间的句子数差值足够大时,在经过预处理的双语文本中直接选择满足分割条件的句子对作为候选分割点;
或,在原文文本及译文文本之间的句子数差值不够大时,根据句子长度信息,将经过预处理的双语文本进行初步对齐,得到多个句子对;对每个句子对进行验证计算,选择符合验证条件的句子对作为初始分割点,在初始分割点处将经过预处理的双语文本分割成多个双语文本初始片段,并在各个初始双语文本片段中选择满足分割条件的句子对作为候选分割点;
其中,分割条件为:句子对中含有多对互为翻译的词,且互为翻译的词仅出现在句子对中。
另外,针对分段单元303e用于“在确定的最终候选分割点处进行分割,将经过预处理的双语文本分割成多个双语文本片段”,作出以下说明:
如果最终候选分割点是由选择单元303a从经过预处理的双语文本中直接选择出来的,则分段单元303e,用于“在确定的最终候选分割点处进行分割,将经过预处理的双语文本分割成多个双语文本片段”时,即指分段单元303e在确定的最终候选分割点处,将整篇经过预处理的双语文本分割成多个双语文本片段。
如果最终候选分割点是由选择单元303a从各个双语文本初始片段中选择出来的,则分段单元303e,用于“在确定的最终候选分割点处进行分割,将经过预处理的双语文本分割成多个双语文本片段”时,即指分段单元303e在确定的最终候选分割点处,将对应的双语文本初始片段进一步分段,最终使得将整篇经过预处理的双语文本分割成多个双语文本片段。
进一步地,选择单元303a在对每个句子对进行验证计算时,具体用于对每个句子对计算TRS(Si,Tj)、TRT(Si,Tj)、TFRS(Si,Tj)、TFRT(Si,Tj)这四个值,计算公式如下:
TRS(Si,Tj)=|TW(Si)||W(Si)|]]>
TRT(Si,Tj)=|TW(Ti)||W(Ti)|]]>
TFRS(Si,Tj)=|TF(Si)||F(Si)|]]>
TFRT(Si,Tj)=|TF(Ti)||F(Ti)|]]>
其中,W(Si)为原文文本句子Si中所有词的集合,W(Tj)为译文文本句子Tj中所有词的集合,TW(Si)为W(Si)中可以在W(Tj)中找到译文的词的集合,TW(Tj)为W(Tj)中可以在W(Si)中找到原文的词的集合;F(Si)为原文文本所有句子的指纹的并集,F(Tj)为译文文本所有句子的指纹的并集;TF(Si)为F(Si)中可以在W(Tj)中找到译文的词的集合,TF(Tj)为F(Tj)中可以在W(Si)中找到原文的词的集合;
相应地,验证条件为:
TRS(Si,Tj)≥0.6且TRT(Si,Tj)≥0.6,和/或
TRS(Si,Tj)≥0.5且TRT(Si,Tj)≥0.5
且TFRS(Si,Tj)≥0.4且TFRT(Si,Tj)≥0.4。
综上所述,本实施例提供的双语文本的对齐装置,通过判断原文文本及译文文本之间的句子数差值是否足够大,并根据判断结果,将经过预处理的双语文本可靠地分段,再根据词语间的互译关系,分别对每个双语文本片段进行对齐,从而提升了对齐的速度,保证了良好的鲁棒性。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。