双语语料句对齐方法、装置、可读存储介质和计算机设备与流程

文档序号:21037455发布日期:2020-06-09 20:30阅读:621来源:国知局
双语语料句对齐方法、装置、可读存储介质和计算机设备与流程

本申请涉及计算机技术领域,特别是涉及一种双语语料句对齐方法、装置、计算机可读存储介质和计算机设备。



背景技术:

在对篇章级对齐的双语平行语料中进行句级别对齐时,一种可行的做法是利用句长信息及词汇信息判断两种语言平行语料中各个句子的相似程度。

譬如,如果两个句子的长度相差较大,则两个句子的相似度较低,为平行句对的可能性也就较小。又或者,如果两个句子同时包含相同的数字,或包含相同的字母串,则两个句子的相似程度较高,两者为平行句对的可能性也就越高。以及,当两句话中包含同一个概念在两种语言中的单词,则两种语言的相似度也更高,譬如英文句子包含“framework”而中文包含“框架”。基于此对齐逻辑,通用的处理流程是先对两种语言的句对分别进行令牌化,令牌化操作等价于对句子进行分词操作,亦即将连贯的一句话拆解为一个个的词语,并提供预先生成或抽取好的双语词典作为辅助信息进行对齐。如果未能提供已有的双语词典,则可以使用句长法对语料进行初步对齐后,再对已经初步对齐的语料抽取双语词典,利用双语词典进行第二次的对齐。

但针对多个语种的待对齐语料进行对齐时,需要在一台服务器上部署各个语种对应的分词工具,以实现抽取不同语种的双语词典,对不同语种的待对齐语料进行对齐。以python为例,中文的可以使用jieba,日语的可以使用mecab,韩语则可以使用mecab的ko扩展等。不同分词工具,不仅依赖于不同的运行环境(比如mecab需要额外的c++支持,mecab的ko拓展更是只可以运行在python3.7版本下),而且还需要各自加载自身不同的依赖词典文件。因此,使得代码的耦合程度大幅度提高,维护成本较高。



技术实现要素:

基于此,有必要针对双语语料句对齐的维护成本高的问题,提供一种双语语料句对齐方法、装置、计算机可读存储介质和计算机设备。

一种双语语料句对齐方法,包括:

获取待对齐平行文本及所述待对齐平行文本中原文文本的语种类型和译文文本的语种类型;

对所述待对齐平行文本进行预处理,获得待对齐平行句对;

从单语分词模型组中调用与所述原文文本的语种类型对应的单语分词模型,对所述待对齐平行句对中的原文文本进行分词处理,获得待对齐原文的句片段组;

从所述单语分词模型组中调用与所述译文文本的语种类型对应的单语分词模型,对所述待对齐平行句对中的译文文本进行分词处理,获得待对齐译文的句片段组;

根据预设的格式处理方式对所述待对齐原文的句片段组和所述待对齐译文的句片段组进行格式处理,获得双语句对组;

基于所述预设的格式处理方式,获取与所述原文文本的语种类型和所述译文文本的语种类型对应的双语词典;

调用句对齐工具,根据所述双语词典,对所述双语句对组进行句对齐处理,获得句对齐平行语料;

所述单语分词模型的训练方式包括:

获取与待训练单语分词模型的语种类型对应单语数据;

对所述单语数据进行预处理,获得单语数据样本;

通过sentencepiece算法基于所述单语数据样本进行单语分词模型训练,获得单语分词模型。

在其中一个实施例中,双语词典的训练方式包括:

从句对齐平行语料库中获取与待训练双语词典的语种类型对应的句对齐平行语料样本,所述待训练双语词典的语种类型包括原文语料的语种类型和译文语料的语种类型;

对所述句对齐平行语料样本进行预处理,得到句对齐平行语料对;

从所述单语分词模型组中调用与所述原文语料的语种类型对应的单语分词模型,对所述句对齐平行语料对中的原文语料进行分词处理,获得样本原文的句片段组;

从所述单语分词模型组中调用与所述译文语料的语种类型对应的单语分词模型,对所述句对齐平行语料对中的译文语料进行分词处理,获得样本译文的句片段组;

根据所述预设的格式处理方式,对所述样本原文的句片段组和所述样本译文的句片段组进行格式处理,获得双语句对样本组;

通过双语词对抽取算法对所述双语句对样本组进行对齐,获得双语词典。

在其中一个实施例中,所述预设的格式处理方式,包括:

获取待格式处理的句片段组;

检测所述句片段组中的下划线符,将检测到的下划线符从所述句片段组中去除。

在其中一个实施例中,所述预设的格式处理方式,包括:

获取待格式处理的句片段组以及对应的语种类型;

根据句片段组的语种类型,确定所述句片段组是否属于格式处理对象;

当所述句片段组属于格式处理对象时,检测所述句片段组中的下划线符,将检测到的下划线符从所述句片段组中去除。

在其中一个实施例中,所述调用句对齐工具,根据所述双语词典,对所述双语句对组进行句对齐处理,获得句对齐平行语料的步骤之后,还包括:

基于预设的过滤条件对所述句对齐平行语料进行过滤,获得过滤后的句对齐平行语料。

在其中一个实施例中,所述预设的过滤条件包括以下条件中的至少一种:

分析所述句对齐平行语料中是否存在对空的句子,过滤所述句对齐平行语料中对空的句子;

根据预设值过滤所述句对齐平行语料中得分小于预设值的句子;

根据所述原文文本的语种类型和所述译文文本的语种类型,过滤掉所述句对齐平行语料中语种类型不符合的句子;

根据数字等特征,过滤所述句对齐平行语料中不符合数字等特征的句子。

在其中一个实施例中,还包括:

将所述句对齐平行语料添加至所述句对齐平行语料库中。

一种双语语料句对齐装置,包括:

平行文本获取模块,用于获取待对齐平行文本及所述待对齐平行文本中原文文本的语种类型和译文文本的语种类型;

预处理模块,用于对所述待对齐平行文本进行预处理,获得待对齐平行句对;

第一分词处理模块,用于从单语分词模型组中调用与所述原文文本的语种类型对应的单语分词模型,对所述待对齐平行句对中的原文文本进行分词处理,获得待对齐原文的句片段组;

第二分词处理模块,用于从所述单语分词模型组中调用与所述译文文本的语种类型对应的单语分词模型,对所述待对齐平行句对中的译文文本进行分词处理,获得待对齐译文的句片段组;

格式处理模块,用于根据预设的格式处理方式对所述待对齐原文的句片段组和所述待对齐译文的句片段组进行格式处理,获得双语句对组;

双语词典获取模块,用于基于所述预设的格式处理方式,获取与所述原文文本的语种类型和所述译文文本的语种类型对应的双语词典;

句对齐处理模块,用于调用句对齐工具,根据所述双语词典,对所述双语句对组进行句对齐处理,获得句对齐平行语料;

其中,所述单语分词模型的训练方式包括:

获取与待训练单语分词模型的语种类型对应单语数据;

对所述单语数据进行预处理,获得单语数据样本;

通过sentencepiece算法基于所述单语数据样本进行单语分词模型训练,获得单语分词模型。

一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行所述方法的步骤。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如所述方法的步骤。

上述双语语料句对齐方法、装置、计算机可读存储介质和计算机设备,通过获取待对齐平行文本及待对齐平行文本中原文文本的语种类型和译文文本的语种类型;对待对齐平行文本进行预处理,获得待对齐平行句对;从通过sentencepiece算法训练的单语分词模型组中,调用与原文文本的语种类型对应的单语分词模型,对待对齐平行句对中的原文文本进行分词处理,获得待对齐原文的句片段组,调用与译文文本的语种类型对应的单语分词模型,对待对齐平行句对中的译文文本进行分词处理,获得待对齐译文的句片段组;根据预设的格式处理方式对待对齐原文的句片段组和待对齐译文的句片段组进行格式处理,获得双语句对组,可以提高句对齐工具进行句对齐精度,基于预设的格式处理方式,获取与原文文本的语种类型和译文文本的语种类型对应的双语词典;调用句对齐工具,根据双语词典,对双语句对组进行句对齐处理,获得句对齐平行语料。通过sentencepiece算法训练的各个语种的单语分词模型,进而使得一套处理流程可以同时处理所有所需语种的双语语料句对齐,大大简化了设计难度与代码的复杂性,降低了代码的耦合度与维护难度,降低了维护成本,并且通过对句片段进行格式处理,,可以提高词句对齐的精度,获得的句对齐平行语料结果更准确。

附图说明

图1为一个实施例中双语语料句对齐方法的应用环境图;

图2为一个实施例中双语语料句对齐方法的流程示意图;

图3为一个实施例中单语分词模型的训练的流程示意图;

图4为一个实施例中双语词典的训练的流程示意图;

图5为一个实施例中双语语料句对齐方法的应用图;

图6为一个实施例中双语语料句对齐方法的流程示意图;

图7为一个实施例中双语语料句对齐装置的结构框图;

图8为另一个实施例中双语语料句对齐装置的结构框图;

图9为一个实施例中计算机设备的结构框图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

图1为一个实施例中双语语料句对齐方法的应用环境图。该应用环境涉及终端110,或涉及终端110和服务器120。终端110和服务器120通过网络连接。涉及终端110时,终端110获取待对齐平行文本及待对齐平行文本中原文文本的语种类型和译文文本的语种类型;对待对齐平行文本进行预处理,调用单语分词模型,对原文文本和译文文本进行分词处理,获得句片段组;对句片段组进行格式处理,获得双语句对组;调用句对齐工具,基于双语词典,对双语句对组进行句对齐处理,获得句对齐平行语料。涉及终端110和服务器120时,服务器120获取终端110发送的待对齐平行文本及待对齐平行文本中原文文本的语种类型和译文文本的语种类型;服务器120对待对齐平行文本进行预处理,调用单语分词模型,对原文文本和译文文本进行分词处理,获得句片段组;对句片段组进行格式处理,获得双语句对组;调用句对齐工具,基于双语词典,对双语句对组进行句对齐处理,获得句对齐平行语料。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

如图2所示,在一个实施例中,提供了一种双语语料句对齐方法。本实施例主要以该方法应用于上述图1中的终端110来举例说明。参照图2,该双语语料句对齐方法具体包括如下步骤:

步骤s220,获取待对齐平行文本及所述待对齐平行文本中原文文本的语种类型和译文文本的语种类型。

其中,待对齐平行文本是需要进行句对齐的原文文本及其平行对应的译语文本构成的双语文本,待对齐平行文本可以是篇章级的平行文本,可以从各渠道获得的篇章级平行文本,如:各类网站抓取获得,各种公开数据集中获取,或人工翻译获得。原文文本可以是待对齐平行文本中的任意一个文本,当确定待对齐平行文本中一个文本为原文文本时,另一个文本则为译语文本。原文文本的语种类型和译文文本的语种类型可以是中文、英文、日文、韩文、西班牙文、印地文、越南文、法文、俄文、德文、阿拉伯文、意大利文、葡萄牙文、土耳其文、泰文、马来文等等语种中的任意两种。

待对齐平行文本的原文文本的语种类型或译文文本的语种类型,根据待对齐平行文本所使用的语种确定,如:待对齐平行文本是含义相同、互为翻译的一篇中文文本和一篇英文文本,可以是中文文本作为原文文本,英文文本为译文文本,则原文文本的语种类型为中文,译文文本的语种类型为英文;也可以是英文文本作为原文文本,中文文本为译文文本,则原文文本的语种类型为英文,译文文本的语种类型为中文。待对齐平行文本的原文文本的语种类型和译文文本的语种类型获取方式,可以是用户通过终端的语种选择确定,也可以是通过对待对齐平行文本进行检测确定。

在一个实施例中,基于训练好的语种检测模型对获取的待对齐平行文本进行语种类型检测,确定待对齐平行文本中的原文文本的语种类型和译文文本的语种类型。语种检测模型可以是基于朴素贝叶斯算法进行训练获得。通过自动对待对齐平行文本的原文文本的语种类型和译文文本的语种类型进行检测,可以提高工作效率。

步骤s240,对待对齐平行文本进行预处理,获得待对齐平行句对。

其中,预处理可以包括:拆句,对待对齐平行文本进行拆句是将待对齐平行文本的原文和译文拆分为多个句子,可以使用目前已有的拆句方法进行拆句,获得待对齐平行句对。预处理还可以包括:拆句、清洗非法字符、去除劣质语料、全半角转换等等。对待对齐平行文本进行清洗非法字符是控制类的字符、表情符等进行删除,可以根据unicode字符表进行对应查找,查找出非法字符进行删除。对待对齐平行文本进行去除劣质语料包括:去除掉一些数字和标点符号很多很乱、明显不符合日常使用逻辑的语料,可以用数字和标点占句子的比例来过滤;去掉语种不相符的语料,即混在a语言语料中的b语言的语料,可以使用语种识别等工具。对待对齐平行文本进行全半角转换是对待对齐平行文本的原文和译文中的标点符号、数字等进行转换,如:中文中使用的是英文的标点符号,通过进行全半角转换,将中文中的英文的标点符号转换为中文标点符号。对待对齐平行文本进行拆句、清洗非法字符、去除劣质语料、全半角转换等处理后,即可获得待对齐平行句对。

步骤s260,从单语分词模型组中调用与原文文本的语种类型对应的单语分词模型,对待对齐平行句对中的原文文本进行分词处理,获得待对齐原文的句片段组。

其中,单语分词模型组包括中文、英文、日文、韩文、西班牙文、印地文、越南文、法文、俄文、德文、阿拉伯文、意大利文、葡萄牙文、土耳其文、泰文、马来文等语种的单语分词模型,单语分词模型是根据对应语种类型的单语数据分别训练获得对应语种类型的分词模型。从单语分词模型组中调用与原文文本的语种类型对应的单语分词模型,例如:待对齐平行句对的原文文本的语种类型为中文,则从单语分词模型组中调用中文的单语分词模型。调用单语分词模型,运行单语分词模型,根据单语分词模型的分词词表对待对齐平行句对的原文文本进行分词处理,将原文文本中的字词进行切分,获得各个句片段,各个句片段组成了待对齐原文的句片段组,如:输入“我在北京腾讯上班”到单语分词模型,输出的句片段组可以是“我在北京腾讯上班”。

在一个实施例中,如图3所示,单语分词模型的训练方式包括:

步骤s262,获取与待训练单语分词模型的语种类型对应单语数据。

其中,单语数据是只包含一种语言的文本,通过各类网站进行抓取该语种类型对应的单语数据,需要训练的单语分词模型的语种类型可以是中文、英文、日文、韩文、西班牙文、印地文、越南文、法文、俄文、德文、阿拉伯文、意大利文、葡萄牙文、土耳其文、泰文、马来文等等语种中任意一种。对于任何常见语种,不论是大语种或小语种,其单语语料存量是无限的,可以根据精确度考虑获取单语数据的量。

步骤s264,对单语数据进行预处理,获得单语数据样本。

其中,预处理包括:清洗非法字符、去除劣质语料、全半角转换等等。对单语数据都进行清洗非法字符是控制类的字符、表情符等进行删除,可以根据unicode字符表进行对应查找,查找出非法字符进行删除。单语数据都进行去除劣质语料包括:去除掉一些数字和标点符号很多很乱、明显不符合日常使用逻辑的语料,可以用数字和标点占句子的比例来过滤;去掉语种不相符的语料,即混在a语言语料中的b语言的语料,可以使用语种识别等工具。对单语数据都进行全半角转换,即标点符号、数字等进行转换,如:中文的单语数据中使用的是英文的标点符号,通过进行全半角转换,将中文的单语数据中的英文的标点符号转换为中文标点符号。对单语数据进行拆句、清洗非法字符、去除劣质语料、全半角转换等处理后,即可获得单语数据样本。

步骤s268,通过sentencepiece算法基于单语数据样本进行单语分词模型训练,获得语种类型对应的单语分词模型。

其中,sentencepiece算法是一种字词的切分算法。通过sentencepiece算法基于单语数据进行单语分词模型训练,如:用中文的单语数据样本采用sentencepiece算法进行单语分词模型,则获得中文的单语分词模型和单语分词模型的分词词表;用英文的单语数据样本采用sentencepiece算法进行单语分词模型,则获得英文的单语分词模型和单语分词模型的分词词表。

在一个实施例中,通过sentencepiece算法基于单语数据样本进行单语分词模型训练的步骤包括:将单语数据样本随机初始化为一个足够大的词表;循环执行以下步骤直至分词词表到达指定大小:(1)固定词表,使用em算法优化词概率p;(2)对词表中每个词,计算其移除会造成的损失;(3)移除造成损失最少的20%的词,同时保留所有单字避免oov(outofvocabulary,指不在词表中的字,保留所有单字可以避免文本中出现不在词表中的单字)。其中,词表的覆盖参数可以根据词表容量造成的效率问题和未知token(令牌,可以为字、词、词片段或句片段,依据分词方式确定)的出现频率造成的精度问题,进行调整,如:中文与日文等难以遍历组成字母的语种的分词词表覆盖度参数设置为0.9995,其余语种的覆盖度设置为1等等。分词词表的大小也可以根据主要涉及的翻译语种(如中文和英文),可以适当放大最终的生成分词词表大小参数,如:中文和英文设置为48000,而将其余的语种的分词词表大小设置32000等等。

仅通过sentencepiece算法,就可以训练多语种的单语分词模型,进行句对齐时不再受限于各种语言间使用不同的分词工具(即:中文需要使用jieba(名称为jieba的中文分词工具),日文需要使用mecab(名称为mecab的日文分词工具),韩语需要使用mecab的ko扩展等。依赖于不同的运行环境(比如mecab需要额外的c++支持,mecab的ko拓展只可以运行在python3.7版本下)的问题。通过sentencepiece算法还可以对相关工具较少的小语种的单语分词模型进行训练,使得基于sentencepiece算法训练的多语种单语分词模型组就可以同时处理所有所需语言的双语语料句对齐,大大简化了系统的设计难度与代码的复杂性,降低了代码的耦合度与维护难度。通过sentencepiece算法训练的单语分词模型,还可以提高分词处理的速度,进而提高了双语语料句对齐的速度。

步骤s280,从单语分词模型组中调用与译文文本的语种类型对应的单语分词模型,对待对齐平行句对中的译文文本进行分词处理,获得待对齐译文的句片段组。

其中,单语分词模型组包括中文、英文、日文、韩文、西班牙文、印地文、越南文、法文、俄文、德文、阿拉伯文、意大利文、葡萄牙文、土耳其文、泰文、马来文等语种的单语分词模型,单语分词模型是根据对应语种类型的单语数据分别训练获得对应语种类型的分词模型,其构建方式不再赘述。从单语分词模型组中调用与译文文本的语种类型对应的单语分词模型,例如:待对齐平行句对的译文文本的语种类型为英文,则从单语分词模型组中调用英文的单语分词模型。调用单语分词模型,运行单语分词模型,根据单语分词模型的分词词表对待对齐平行句对的译文文本进行分词处理,将译文文本中的字词进行切分,获得各个句片段,各个句片段组成了待对齐译文的句片段组。

步骤s300,根据预设的格式处理方式,对待对齐原文的句片段组和待对齐译文的句片段组进行格式处理,获得双语句对组。

其中,双语句对组是进行格式处理后的待对齐原文的句片段组和待对齐译文的句片段组。通过对待对齐原文的句片段组和待对齐译文的句片段组进行格式处理后,可以避免句片段组经过单语分词模型分词处理后保留"_"(该符号是unicode字符表中编号为2581的字符)用于标记文本的开头及词片段前的下划线(该下划线是单语分词模型对句片段组进行分词处理时,替换句片段组中的空格获得的),如:对于一些语种(如中文、日文等)本身通常不包含空格的语言,句首标记会使得同一个词对应两个不同的令牌,如:“我”进行分词处理后,对应“我”和“_我”,导致待对齐原文的句片段组和待对齐译文的句片段组进行句对齐的精确度降低。

在一个实施例中,预设的格式处理方式可以是:获取待格式处理的句片段组;检测句片段组中的下划线符,将检测到的下划线符从句片段组中去除。

其中,将待对齐原文的句片段组和待对齐译文的句片段组作为待格式处理的句片段组,分别检测待对齐原文的句片段组和待对齐译文的句片段组中的下划线符,将检测到的下划线符从句片段组中去除。对待对齐原文的句片段组进行下划线符检测,将检测到的下划线符从待对齐原文的句片段组中去除,对待对齐译文的句片段组进行下划线符检测,将检测到的下划线符从待对齐译文的句片段组中去除。可以通过查找句片段组中的下划线符,将查找到的下划线符在句片段组中进行替换或删除。通过对待对齐原文的句片段组和待对齐译文的句片段组都进行下划线符检测,将检测到的下划线符从待对齐原文的句片段组和待对齐译文的句片段组中去除,获得双语句对组。可以提高双语句对组进行句对齐的精度。

在一个实施例中,预设的格式处理方式还可以是:获取待格式处理的句片段组以及对应的语种类型;根据句片段组的语种类型,确定句片段组是否属于格式处理对象;当句片段组属于格式处理对象时,检测句片段组中的下划线符,将检测到的下划线符从句片段组中去除。

其中,分别将待对齐原文的句片段组和待对齐译文的句片段组作为待格式处理的句片段组,根据待对齐原文的句片段组的语种类型,确定待对齐原文的句片段组是否属于格式处理对象;当待对齐原文的句片段组属于格式处理对象时,检测待对齐原文的句片段组中的下划线符,将检测到的下划线符从待对齐原文的句片段组中去除。根据待对齐译文的句片段组的语种类型,确定待对齐译文的句片段组是否属于格式处理对象;当待对齐译文的句片段组属于格式处理对象时,检测待对齐译文的句片段组中的下划线符,将检测到的下划线符从待对齐译文的句片段组中去除。

根据语种类型,确定是否属于格式处理对象,可以根据各语种类型是否本身通常不包含空格确定是否属于格式处理对象,语种类型本身通常不包含空格属于格式处理对象,如:中文、日文、韩文、泰文等,语种类型本身通常包含空格不属于格式处理对象,如:英文、法文等等。可以通过查找属于格式处理对象的句片段组中的下划线符,将查找到的下划线符在句片段组中进行替换或删除。通过属于格式处理对象的句片段组进行下划线符检测,将检测到的下划线符从格式处理对象的句片段组中去除,获得双语句对组。可以提高双语句对组进行句对齐的精度。

步骤s320,基于预设的格式处理方式,获取原文文本的语种类型和译文文本的语种类型对应的双语词典。

其中,获取的双语词典的双语类型与原文文本的语种类型和译文文本的语种类型对应,且双语词典中的句片段也采用预设的格式处理方式进行了相同的处理。每两种语种类型的语言分别有对应双语词典,原文文本的语种类型和译文文本的语种类型对应的双语词典,如:原文文本的语种类型和译文文本的语种类型是中文和英文,则获取的双语词典为中英互译的词典,原文文本的语种类型和译文文本的语种类型是中文和韩文,则获取的双语词典为中韩互译的词典等等。

在一个实施例中,如图4所示,双语词典的构建方式包括步骤s322至步骤s332:

步骤s322,从句对齐平行语料库中获取与待训练双语词典的语种类型对应的句对齐平行语料样本,待训练双语词典的语种类型包括原文语料的语种类型和译文语料的语种类型。

其中,句对齐平行语料库是存储各双语种的句对齐平行语料的数据库,句对齐平行语料库中有各个语种组成双语种的句对齐平行语料,如:中英互译的句对齐平行语料、中日互译的句对齐平行语料、日英互译的句对齐平行语料、韩英互译的句对齐平行语料等等。待训练双语词典是需要训练的双语词典,待训练双语词典的语种类型包括原文语料的语种类型和译文语料的语种类型,待训练双语词典的语种类型可以是中文、英文、日文、韩文、西班牙文、印地文、越南文、法文、俄文、德文、阿拉伯文、意大利文、葡萄牙文、土耳其文、泰文、马来文等等语种中的任意两种。句对齐平行语料样本是用于训练待训练双语词典的句对齐平行语料,句对齐平行语料是两种互相是对方的译文的句子语料,句对齐平行语料样本的数量可以根据实际构建精度确定。句对齐平行语料是两种互相是对方的译文的句子语料。

从句对齐平行语料库中获取与待训练双语词典的语种类型对应的句对齐平行语料样本,如:当需要训练日英互译的双语词典时,从句对齐平行语料库获取中日互译的句对齐平行语料作为句对齐平行语料样本。

步骤s324,对句对齐平行语料样本进行预处理,得到句对齐平行语料对。

其中,预处理包括:清洗非法字符、去除劣质语料、全半角转换等等。对句对齐平行语料样本的原文语料和译文语料都进行清洗非法字符是控制类的字符、表情符等进行删除,可以根据unicode字符表进行对应查找,查找出非法字符进行删除。句对齐平行语料样本的原文语料和译文语料都进行去除劣质语料包括:去除掉一些数字和标点符号很多很乱、明显不符合日常使用逻辑的语料,可以用数字和标点占句子的比例来过滤;去掉语种不相符的语料,即混在a语言语料中的b语言的语料,可以使用语种识别等工具。对句对齐平行语料样本的原文语料和译文语料都进行全半角转换,即标点符号、数字等进行转换,如:中文中使用的是英文的标点符号,通过进行全半角转换,将中文中的英文的标点符号转换为中文标点符号。对句对齐平行语料样本的原文语料和译文语料进行清洗非法字符、去除劣质语料、全半角转换等处理后,即可获得句对齐平行语料对。

步骤s326,从单语分词模型组中调用与原文语料的语种类型对应的单语分词模型,对句对齐平行语料对中的原文语料进行分词处理,获得样本原文的句片段组。

其中,单语分词模型组包括中文、英文、日文、韩文、西班牙文、印地文、越南文、法文、俄文、德文、阿拉伯文、意大利文、葡萄牙文、土耳其文、泰文、马来文等语种的单语分词模型,单语分词模型是根据对应语种类型的单语数据分别训练获得对应语种类型的分词模型,其构建方式不再赘述。从单语分词模型组中调用与原文语料的语种类型对应的单语分词模型,例如:句对齐平行语料的原文语料的语种类型为中文,则从单语分词模型组中调用中文的单语分词模型。调用单语分词模型,运行单语分词模型,根据单语分词模型的分词词表对句对齐平行语料的原文语料进行分词处理,将原文语料中的字词进行切分,获得各个句片段,各个句片段组成了样本原文的句片段组。

步骤s328,从单语分词模型组中调用与译文语料的语种类型对应的单语分词模型,对句对齐平行语料对中的译文语料进行分词处理,获得样本译文的句片段组。

其中,单语分词模型组包括中文、英文、日文、韩文、西班牙文、印地文、越南文、法文、俄文、德文、阿拉伯文、意大利文、葡萄牙文、土耳其文、泰文、马来文等语种的单语分词模型,单语分词模型是根据对应语种类型的单语数据分别训练获得对应语种类型的分词模型,其构建方式不再赘述。从单语分词模型组中调用与译文语料的语种类型对应的单语分词模型,例如:句对齐平行语料对中的译文语料的语种类型为英文,则从单语分词模型组中调用英文的单语分词模型。调用单语分词模型,运行单语分词模型,根据单语分词模型的分词词表对句对齐平行语料对中的译文语料进行分词处理,将译文语料中的字词进行切分,获得各个句片段,各个句片段组成了样本译文的句片段组。

步骤s330,根据预设的格式处理方式,对样本原文的句片段组和样本译文的句片段组进行格式处理,获得双语句对样本组。

其中,双语句对样本组是进行格式处理后的样本原文的句片段组和样本译文的句片段组。通过样本原文的句片段组和样本译文的句片段组进行格式处理后,可以避免句片段组经过单语分词模型分词处理后保留"_"(该符号是unicode字符表中编号为2581的字符)用于标记文本的开头及词片段前的下划线(该下划线是单语分词模型对句片段组进行分词处理时,替换句片段组中的空格获得的),如:对于一些语种(如中文、日文等)本身通常不包含空格的语言,句首标记会使得同一个词对应两个不同的令牌,如:“我”进行分词处理后,对应“我”和“_我”,导致后续在构建双语词典时无法准确统计词对翻译条件概率,实用性低的问题。

在一个实施例中,预设的格式处理方式可以是,获取待格式处理的句片段组;检测句片段组中的下划线符,将检测到的下划线符从句片段组中去除。

其中,将样本原文的句片段组和样本译文的句片段组作为待格式处理的句片段组,分别检测样本原文的句片段组和样本译文的句片段组中的下划线符,将检测到的下划线符从句片段组中去除。对样本原文的句片段组进行下划线符检测,将检测到的下划线符从样本原文的句片段组中去除,对样本译文的句片段组进行下划线符检测,将检测到的下划线符从样本译文的句片段组中去除。可以通过查找句片段组中的下划线符,将查找到的下划线符在句片段组中进行替换或删除。通过对样本原文的句片段组和样本译文的句片段组都进行下划线符检测,将检测到的下划线符从样本原文的句片段组和样本译文的句片段组中去除,获得双语句对组。可以避免后续在构建双语词典时无法准确统计词对翻译条件概率,实用性低的问题,进一步提高基于该双语词典进行句对齐的精度。

在一个实施例中,预设的格式处理方式可以是,获取待格式处理的句片段组以及对应的语种类型;根据句片段组的语种类型,确定句片段组是否属于格式处理对象;当句片段组属于格式处理对象时,检测句片段组中的下划线符,将检测到的下划线符从句片段组中去除。

其中,分别将样本原文的句片段组和样本译文的句片段组作为待格式处理的句片段组,根据样本原文的句片段组的语种类型,确定样本原文的句片段组是否属于格式处理对象;当样本原文的句片段组属于格式处理对象时,检测样本原文的句片段组中的下划线符,将检测到的下划线符从样本原文的句片段组中去除。根据样本译文的句片段组的语种类型,确定样本译文的句片段组是否属于格式处理对象;当样本译文的句片段组属于格式处理对象时,检测样本译文的句片段组中的下划线符,将检测到的下划线符从样本译文的句片段组中去除。

其中,根据语种类型,确定是否属于格式处理对象,可以根据各语种类型是否本身通常不包含空格确定是否属于格式处理对象,语种类型本身通常不包含空格属于格式处理对象,如:中文、日文、韩文、泰文等,语种类型本身通常包含空格不属于格式处理对象,如:英文、法文等等。可以通过查找属于格式处理对象的句片段组中的下划线符,将查找到的下划线符在句片段组中进行替换或删除。通过属于格式处理对象的句片段组进行下划线符检测,将检测到的下划线符从格式处理对象的句片段组中去除,获得双语句对组。可以避免后续在构建双语词典时无法准确统计词对翻译条件概率,实用性低的问题,进一步提高采用该双语词典进行句对齐的精度。

步骤s332,通过双语词对抽取算法对双语句对样本组进行对齐,获得双语词典。

其中,双语词对抽取算法可以是fastalign算法、hundict算法等等。获得的双语词典的语种类型与句对齐平行语料样本对应,如:句对齐平行语料样本是中英互译的句对齐平行语料时,获得是中英互译的双语词典、句对齐平行语料样本是中日互译的句对齐平行语料时,获得是中日互译的双语词典等。

将双语句对样本组使用fastalign算法进行对齐,输出条件概率矩阵,即双语词典,如:具体内容是a语言的单词a翻译成b语言的单词b的概率,比如英文“i”翻译成中文“我”的概率是0.95这样的一个表。输出条件概率矩阵,还可以根据绝对阈值去除低出现概率的词对(fastalign本身使用的是相对阈值),绝对阈值可以设置为-9.0,及清洗掉不符合语种需求的词对,进一步精确双语词典。

步骤s340,调用句对齐工具,根据双语词典,对双语句对组进行句对齐处理,获得句对齐平行语料。

其中,句对齐工具可以是hunalign工具。句对齐工具基于进行过格式处理的多语种双语词典中对应双语词典,对双语句对组逐行利用句子长度、两个句子之间互为翻译的词语的数量等特征建模计算出一个分值,寻找一个具体的句对齐关系,获得分值最大的对齐结果输出。输出的对齐结果包括对齐的句对,以及对应的得分,对齐的句对即为句对齐平行语料。

上述双语语料句对齐方法,通过获取待对齐平行文本及待对齐平行文本中原文文本的语种类型和译文文本的语种类型;对待对齐平行文本进行预处理,获得待对齐平行句对;从通过sentencepiece算法训练的单语分词模型组中,调用与原文文本的语种类型对应的单语分词模型,对待对齐平行句对中的原文文本进行分词处理,获得待对齐原文的句片段组;,从单语分词模型组中调用与译文文本的语种类型对应的单语分词模型,对待对齐平行句对中的译文文本进行分词处理,获得待对齐译文的句片段组;根据预设的格式处理方式对待对齐原文的句片段组和待对齐译文的句片段组进行格式处理,获得双语句对组,可以提高句对齐工具进行句对齐精度,基于预设的格式处理方式,获取与原文文本的语种类型和译文文本的语种类型对应的双语词典;调用句对齐工具,根据双语词典,对双语句对组进行句对齐处理,获得句对齐平行语料。通过sentencepiece算法训练的各个语种的单语分词模型,进而使得一套处理流程可以同时处理所有所需语种的双语语料句对齐,大大简化了设计难度与代码的复杂性,降低了代码的耦合度与维护难度,降低了维护成本,并且通过对句片段进行格式处理,并使用进行过相同格式处理过的双语词典进行句对齐,可以提高词句对齐的精度,获得的句对齐平行语料结果更准确。

在一个实施例中,调用句对齐工具,根据双语词典,对双语句对组进行句对齐处理,获得句对齐平行语料的步骤之后,还包括:基于预设的过滤条件对句对齐平行语料进行过滤,获得过滤后的句对齐平行语料。

其中,预设的过滤条件包括:(1)分析句对齐平行语料中是否存在对空的句子,过滤句对齐平行语料中对空的句子,即没有对应句的句子。(2)根据预设值过滤句对齐平行语料中得分小于预设值的句子。根据hunalign得分去除得分较低的句子,hunalign得分反映了句子的对齐质量,这也是体现双语词典提高精度作用的地方。此处有两种处理策略:如果后续还有比较大量的过滤程序(如基于机器翻译引擎的其他过滤等),则此处可以选择比较宽松的阈值,如0.1或0.2等,此举只去除了明显对齐错误的句对,以期望为后期过滤提供尽量多的句对。因为hunalign默认两个没有对齐关系的、句子令牌数为1的语句的对齐得分为0.3,因此可以额外去除得分为0.3的句对以减少可能的误差。如果后续不存在大量的过滤程序,则此处可以选择一个比较保守的过滤阈值,如0.8等,则得以保留的句对大多都具有比较高的准确率,但句对的召回率会相应降低。(3)根据原文文本的语种类型和译文文本的语种类型,过滤掉句对齐平行语料中语种类型不符合的句子,如:待对齐平行文本中原文文本的语种类型为中文,译文文本的语种类型为英文,文本中混入了其他语种类型的语句,获得句对齐平行语料中可能会存在不是中文和英文互译的句对齐的句子,对句对齐平行语料中的句子进行语种识别,滤掉句对齐平行语料中不是中文和英文互译的句对齐的句子。(4)根据数字等特征,过滤句对齐平行语料中不符合数字等特征的句子,去掉一对句子中数字不相同的句子,进一步清洗平行句对等。

在一个实施例中,还包括:将句对齐平行语料添加至句对齐平行语料库中。

其中,根据待对齐平行文本及待对齐平行文本中原文文本的语种类型和译文文本的语种类型,进行句对齐后,获得的是与待对齐平行文本中原文文本的语种类型和译文文本的语种类型对应的句对齐平行语料,可以将句对齐平行语料添加至句对齐平行语料库中,可以作为训练双语词典的句对齐平行语料样本。进一步对双语词典进行训练,获得更为精确的双语词典。

在一个实施例中,请参阅图5,一种双语语料句对齐方法,具体应用于获取多语种不同语言对的句对齐平行语料填充句对齐平行语料库,句对齐平行语料库中的句对齐平行语料可以作为训练、验证或测试机器翻译模型所需的样本,获得机器翻译模型,实现多语种互译的产品,如翻译软件、同声传译软件、教育软件等等,包括但不限于中英日韩俄法德葡西泰印地等多语种机器翻译模型。

请参阅图6,在进行双语语料句对齐之前,通过下述单语分词模型的训练方式,训练获得包含各个语种的单语分词模型的单语分词模型组,单语分词模型的训练方式:获取与待训练单语分词模型的语种类型对应单语数据,对单语数据进行预处理,获得单语数据样本,通过sentencepiece算法基于单语数据样本进行单语分词模型训练,获得单语分词模型。

通过下述双语词典的训练方式,训练获得双语种的双语词典,双语词典的训练方式:从句对齐平行语料库中获取与待训练双语词典的语种类型对应的句对齐平行语料样本,待训练双语词典的语种类型包括原文语料的语种类型和译文语料的语种类型;对句对齐平行语料样本进行预处理,得到句对齐平行语料对;从单语分词模型组中调用与原文语料的语种类型对应的单语分词模型,对句对齐平行语料对中的原文语料进行分词处理,获得样本原文的句片段组;从单语分词模型组中调用与译文语料的语种类型对应的单语分词模型,对句对齐平行语料对中的译文语料进行分词处理,获得样本译文的句片段组;根据预设的格式处理方式,对样本原文的句片段组和样本译文的句片段组进行格式处理,获得双语句对样本组;通过fastalign算法对双语句对样本组进行对齐,获得双语词典。

在进行双语语料句对齐时,获取待对齐平行文本及待对齐平行文本中原文文本的语种类型和译文文本的语种类型;对待对齐平行文本进行预处理,获得待对齐平行句对;从单语分词模型组中调用与原文文本的语种类型对应的单语分词模型,对待对齐平行句对中的原文文本进行分词处理,获得待对齐原文的句片段组;从单语分词模型组中调用与译文文本的语种类型对应的单语分词模型,对待对齐平行句对中的译文文本进行分词处理,获得待对齐译文的句片段组;根据预设的格式处理方式对待对齐原文的句片段组和待对齐译文的句片段组进行格式处理,获得双语句对组;基于预设的格式处理方式,获取与原文文本的语种类型和译文文本的语种类型对应的双语词典;调用句对齐工具,根据双语词典,对双语句对组进行句对齐处理,获得句对齐平行语料。

通过使用sentencepiece算法各个语种的单语分词模型,基于句片段粒度通过双语词对抽取算法进行句对齐,使双语词对抽取算法进行句对齐时不再受限于各种语言间不同的分词工具,对于相关工具较少的小语种也可以通用,进而使得一套处理流程可以同时处理所有所需语言的句对齐平行语料,大大简化了系统的设计难度与代码的复杂性,降低了代码的耦合度与维护难度。在进行双语词典训练时,对句片段组进行格式处理,使其更加适应于双语词典的抽取流程,对于词对共现概率的统计及条件概率的计算更为准确,从而提高了双语词典的精度。在进行双语语料句对齐时,对句片段组进行格式处理,进一步了提高了句对齐工具在进行句对齐的对齐精度,提高了句对齐平行语料的准确性。

图2为一个实施例中双语语料句对齐方法的流程示意图。应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

请参阅图7,一种双语语料句对齐装置,包括:平行文本获取模块310、预处理模块320、第一分词处理模块330、第二分词处理模块340、格式处理模块350、双语词典获取模块360、句对齐处理模块370。

平行文本获取模块310,用于获取待对齐平行文本及待对齐平行文本中原文文本的语种类型和译文文本的语种类型。

预处理模块320,用于对待对齐平行文本进行预处理,获得待对齐平行句对。

第一分词处理模块330,用于从单语分词模型组中调用与原文文本的语种类型对应的单语分词模型,对待对齐平行句对中的原文文本进行分词处理,获得待对齐原文的句片段组。

第二分词处理模块340,用于从单语分词模型组中调用与译文文本的语种类型对应的单语分词模型,对待对齐平行句对中的译文文本进行分词处理,获得待对齐译文的句片段组。

格式处理模块350,用于根据预设的格式处理方式对待对齐原文的句片段组和待对齐译文的句片段组进行格式处理,获得双语句对组。

双语词典获取模块360,用于基于预设的格式处理方式,获取与原文文本的语种类型和所述译文文本的语种类型对应的双语词典。

句对齐处理模块370,用于调用句对齐工具,根据双语词典,对双语句对组进行句对齐处理,获得句对齐平行语料。

其中,单语分词模型的训练方式包括:

获取与待训练单语分词模型的语种类型对应单语数据;对单语数据进行预处理,获得单语数据样本;通过sentencepiece算法基于单语数据样本进行单语分词模型训练,获得单语分词模型。

请参阅图8,在一个实施例中,双语语料句对齐装置还包括双语词典训练模块380,用于从句对齐平行语料库中获取与待训练双语词典的语种类型对应的句对齐平行语料样本,待训练双语词典的语种类型包括原文语料的语种类型和译文语料的语种类型;对句对齐平行语料样本进行预处理,得到句对齐平行语料对;从单语分词模型组中调用与原文语料的语种类型对应的单语分词模型,对句对齐平行语料对中的原文语料进行分词处理,获得样本原文的句片段组;从单语分词模型组中调用与译文语料的语种类型对应的单语分词模型,对句对齐平行语料对中的译文语料进行分词处理,获得样本译文的句片段组;对样本原文的句片段组和样本译文的句片段组进行格式处理,获得双语句对样本组;通过双语词对抽取算法对双语句对样本组进行对齐,获得双语词典。

在一个实施例中,格式处理模块350还用于获取待格式处理的句片段组;检测句片段组中的下划线符,将检测到的下划线符从句片段组中去除。

在一个实施例中,格式处理模块350还用于获取待格式处理的句片段组以及对应的语种类型;根据句片段组的语种类型,确定句片段组是否属于格式处理对象;当句片段组属于格式处理对象时,检测句片段组中的下划线符,将检测到的下划线符从句片段组中去除。

在一个实施例中,双语语料句对齐装置还包括语料过滤模块390,用于基于预设的过滤条件对句对齐平行语料进行过滤,获得过滤后的句对齐平行语料。

在其中一个实施例中,语料过滤模块390,还用于分析句对齐平行语料中是否存在对空的句子,过滤句对齐平行语料中对空的句子;根据预设值过滤句对齐平行语料中得分小于预设值的句子;根据原文文本的语种类型和译文文本的语种类型,过滤掉句对齐平行语料中语种类型不符合的句子;根据数字等特征,过滤句对齐平行语料中不符合数字等特征的句子。

在其中一个实施例中,双语语料句对齐装置还包括添加模块400,用于将句对齐平行语料添加至句对齐平行语料库中。

图9示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110(或服务器120)。如图9所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现双语语料句对齐方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行双语语料句对齐方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,本申请提供的双语语料句对齐装置可以实现为一种计算机程序的形式,计算机程序可在如图9所示的计算机设备上运行。计算机设备的存储器中可存储组成该双语语料句对齐装置的各个程序模块,比如,图7所示的平行文本获取模块310、预处理模块320、第一分词处理模块330、第二分词处理模块340、格式处理模块350、双语词典获取模块360、句对齐处理模块370。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的双语语料句对齐方法中的步骤。

例如,图9所示的计算机设备可以通过如图7所示的双语语料句对齐装置中的平行文本获取模块310执行步骤s220。计算机设备可通过预处理模块320执行步骤s240。计算机设备可通过第一分词处理模块330执行步骤s260。计算机设备可通过第二分词处理模块340执行步骤s280。计算机设备可通过格式处理模块350执行步骤s300。计算机设备可通过双语词典获取模块360执行步骤s320。计算机设备可通过句对齐处理模块370执行步骤s340.

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述双语语料句对齐方法的步骤。此处双语语料句对齐方法的步骤可以是上述各个实施例的双语语料句对齐方法中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述双语语料句对齐方法的步骤。此处双语语料句对齐方法的步骤可以是上述各个实施例的双语语料句对齐方法中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1