CN114841176A - 一种神经机器翻译鲁棒性增强方法、设备及存储介质 - Google Patents
一种神经机器翻译鲁棒性增强方法、设备及存储介质 Download PDFInfo
- Publication number
- CN114841176A CN114841176A CN202210527147.0A CN202210527147A CN114841176A CN 114841176 A CN114841176 A CN 114841176A CN 202210527147 A CN202210527147 A CN 202210527147A CN 114841176 A CN114841176 A CN 114841176A
- Authority
- CN
- China
- Prior art keywords
- batch
- machine translation
- clean
- noisy
- training samples
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/40—Processing or translation of natural language
- G06F40/58—Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/232—Orthographic correction, e.g. spell checking or vowelisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Machine Translation (AREA)
Abstract
本发明公开了一种神经机器翻译鲁棒性增强方法,构建基于子词的神经机器翻译模型,在神经机器翻译模型中设有用于检测噪声子词位置的错误位置探测模块;在对神经机器翻译模型训练时,由干净的批训练样本生成带噪声的批训练样本;将干净的批训练样本与带噪声的批训练样本交互对神经机器翻译模型进行训练,并计算损失函数;损失函数包括两部分,一部分是错误位置检测损失函数,一部分是机器翻译损失函数;采用启发式的算法,将带噪声的词修复成干净的词。本发明将干净的批训练样本与带噪声的批训练样本交互对神经网络机器翻译模型进行训练,在计算损失的时候,进行了交互,有助于提升模型的泛化能力。
Description
技术领域
本发明涉及神经机器翻译领域,特别涉及一种神经机器翻译鲁棒性增强方法。
背景技术
目前,近年来,神经机器翻译(Neural Machine Translation,缩写NMT)取得了巨大成功,并被广泛应用于人们的日常生活当中。例如出国旅游、拍照翻译、语音翻译、同声传译等。
虽然神经机器翻译的翻译质量有了巨大提升,但是它也存在着很严重的问题。其中之一,就是鲁棒性问题。具体表现是,对于输入的微小变化,神经网络模型的输出会发生巨大的变化。这对于用户体验非常糟糕。因为理论上来说,输入的微小变化,基本上没有改变文本原来的意思,所以翻译结果应该是几乎不变的。
当前神经机器翻译鲁棒性问题,没有彻底的解决方案,只能缓解。通常用的方法有:
(1)对抗训练(Adversarial Training):决定神经网络模型鲁棒性的因素主要有模型结构、训练数据、正则化方法等。因为在训练神经网络机器翻译的时候,一般输入的是“干净”数据,即无扰动数据,那么模型学习到的知识也是“干净”的,它只能应对正确的输入,并得到正确的翻译。无论模型的能力是强还是弱,当输入是不“干净”数据,即带有扰动的数据时,模型很可能会得到错误的结果,与正确输入句子的翻译结果相比,翻译效果下降,同时翻译结果变动比较大。所以从模型的角度来改善模型的鲁棒性是很困难的。从训练样本的角度出发,在训练的过程中,就加入扰动样本,让模型能够适应这种扰动,从而在遇到被干扰过的输入时,能够得到正确的翻译结果。这个方法就是对抗训练。在对抗训练中,如何产生扰动样本是一个比较难的任务。扰动样本也称对抗样本(AdversarialExamples),它的定义是,对输入句子进行扰动,但是要维持与原句的语义一致,同时要使得翻译结果出现重大变化或者错误的样本。
(2)生成对抗网络(Generative Adversarial Networks,缩写GANs),基于GANs,将原始的样本输入映射到一个潜在分布空间中,并在其中搜索出服从相同分布的文本嵌入表示,该表示在语义上,与原先的样本非常接近,从而生成对抗样本,进行对抗训练。这种方法引入的模型参数比较多。
(3)NMT+GEC联合训练。GEC(Grammatical Error Correction)是语法纠错的统称。该方法,在训练过程中,对训练样本增加随机扰动(不一定是对抗样本),在解码器端,增加一个解码网络,用于产生被扰动位置的正确词。训练过程中,同时训练了NMT,也训练了GEC,其中GEC的目的是,将被扰动样本的表示,能够尽可能的接近原始干净样本的表示。虽然该方法取得了一定的效果,但也存在如下问题:第一,目前的GEC模型,最佳效果也就80%左右,而且一般是基于预训练模型BERT及其变种。而在NMT+GEC训练中,训练没有基于预训练模型,所以它的纠错效果,很难保证取得好的效果,进而影响鲁棒性的效果。第二,在NMT+GEC联合训练框架中,需要新增加一个解码网络,增加了大量模型参数。模型规模进一步增大。第三,噪声数据和干净数据,在训练过程中同等对待,彼此之间没有交互。
发明内容
本发明为解决公知技术中存在的技术问题而提供一种神经机器翻译鲁棒性增强方法。
本发明为解决公知技术中存在的技术问题所采取的技术方案是:一种神经机器翻译鲁棒性增强方法,构建基于子词的神经机器翻译模型,在神经机器翻译模型中设有用于检测噪声子词位置的错误位置探测模块;在对神经机器翻译模型训练时,由干净的批训练样本生成带噪声的批训练样本;将干净的批训练样本与带噪声的批训练样本交互对神经机器翻译模型进行训练,并计算损失函数;损失函数包括两部分,一部分是错误位置检测损失函数,一部分是机器翻译损失函数;采用启发式的算法,将带噪声的词修复成干净的词。
进一步地,由干净的批训练样本生成带噪声的批训练样本的方法包括将干净的批训练样本中的词进行如下一种或几种方法的处理:随机插入一个字符到词中;随机删除词中的一个字符;随机替换词中的一个字符;随机交换词中的相邻或者不相邻的字符。
进一步地,随机替换词中的一个字符的方法为:根据键盘的字母位置,将某个字符替换成键盘上附近的字符。
进一步地,错误位置探测模块基于二分类神经网络模型构建。
进一步地,由干净的批训练样本生成带噪声的批训练样本时,对带噪声的批训练样本按如下方法进行标记:对带噪声的批训练样本进行分词处理时,如果带噪声的词被切分成多个子词,只把切分后的首个子词标记成1,其它标记为0;其它未被干扰的词被切分后,每个部分的子词都标为0。
进一步地,错误位置检测损失函数为:
式中:
yi表示样本i的标签,正确位置为0,错误位置为1;
pi表示样本i预测为错误位置的概率;
Lerror-position-detect表示错误位置检测损失;
N为样本数量。
进一步地,将干净的批训练样本与带噪声的批训练样本交互对神经网络机器翻译模型进行训练,损失函数为:
Lnmt=Lclean-batch+λ*Lnoisy-batch;
式中:
Lnmt表示机器翻译损失;
Lclean-batch表示干净的批训练样本的机器翻译损失;
Lnoisy-batcj表示带噪声的批训练样本的机器翻译损失;
λ表示Lnoisy-batch在整体损失中的权重占比;取值范围为0~1之间。
进一步地,对于带噪声的批训练样本,训练时设置如下约束:
约束一:当P(y|xclean;θmt)>P(y|xnoisy;θmt)时,需要继续优化,让噪声向着干净数据的概率靠近;
约束二:当P(y|xclean;θmt)<P(y|xnoisy;θmt)时,不需要继续优化;
则带噪声的批训练样本的机器翻译损失函数为:
Dgap=logP(y|xclean;θmt)-logP(y|xnoisy;θmt);
式中:
Dgap表示当前干净样本和噪声样本在当前模型参数θmt的损失差值;
xclean表示干净样本;
xnoisy表示噪声样本;
y表示标准参考译文;
θmt表示机器翻译模型参数;
N表示样本数量;
P(y|xclean;θmt)表示干净样本翻译成标准参考译文的概率;
P(y|xnoisy;θmt)表示噪声样本翻译成标准参考译文的概率。
本发明还提供了一种神经机器翻译鲁棒性增强设备,包括存储器和处理器,所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现上述的神经机器翻译鲁棒性增强方法步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时,实现上述的神经机器翻译鲁棒性增强方法步骤。
本发明具有的优点和积极效果是:相对现有的神经网络翻译模型+语法纠错模型所构建的机器翻译模型,具有如下优点:(1)取消语法纠错模型,而是引入了用于检测噪声子词位置的错误位置探测模块,错误位置探测模块基于二分类神经网络模型构建,其本身相当于实现一个2类标签的序列标注任务,相比语法纠错模型任务简单,同时引入的模型参数也非常少,可以忽略不计。(2)将干净的批训练样本与带噪声的批训练样本交互对神经网络机器翻译模型进行训练,在计算损失的时候,进行了交互,有助于提升模型的泛化能力。(3)对于错误位置的词,采用启发式的算法,将带噪声的词修复成干净的词,该恢复方法既简单又高效。
附图说明
图1是本发明的一种神经网络机器翻译模型结构示意图。
图2是本发明的一种神经网络机器翻译模型工作流程示意图。
Lclean-batch表示干净的批训练样本的机器翻译损失。
Lnoisy-batch表示带噪声的批训练样本的机器翻译损失。
Lerror-position-detect表示错误位置检测损失。
具体实施方式
为能进一步了解本发明的发明内容、特点及功效,兹列举以下实施例,并配合附图详细说明如下:
本发明中的如下英文单词、短语及英文缩写的中文释义如下:
NMT:是Neural Machine Translation的缩写,中文释义为:神经机器翻译。
MTNT:是a Testbed of Machine Translation of Noisy Text的缩写,中文释义为:一个带噪声的测试集。
GEC:Grammatical Error Correction,中文释义为:语法纠错。
DetTransNet:本发明的一种带有错误位置探测模块的神经机器翻译模型。
WMT18:Conference on Machine Translation。是国际机器翻译竞赛的简称。数字代表年份。WMT18就代表2018年国际机器翻译竞赛。
WMT18-testset:WMT18的测试集。
WMT19:2019年国际机器翻译竞赛。
WMT19-testset:WMT19的测试集。
europarl-v7:是WMT公布的开源数据。这个表示第7版的欧洲议会数据。
WMT14 en-de dataset:WMT14英德方向数据集。
WMT17-devset:WMT17开发集,主要在训练模型时候用。
WMT20 en-zh dataset:WMT20英中方向数据集。
newstest2014:WMT14新闻领域测试集。
newstestdev2014:WMT14新闻领域开发集。
newsdiscusstest2015:WMT15新闻评论领域测试集。
newsdiscussdev2015:WTM15新闻评论领域开发集。
news-commentary-v10:WMT公开的一个数据集。
Transformer:一个经典端到端神经机器机器翻译模型。
transformer-base:采用经典模型参数的transformer模型。
Adam优化器:一种深度学习优化器。
fairseq开源工具:facebook开源的一种深度学习训练工具。
Enfr:表示英法方向。
Ende:表示英德方向。
Enzh:表示英中方向。
Delete:表示删除类噪声,例如good->god。
Insert:表示插入类噪声,例如machine->maechine。
Swap:表示交换类噪声:例如hello->holle。
Keyboard:表示替换类噪声,考虑键盘的位置,即替换字符的时候,用该字符附近的字符替换。
All:表示4种噪声合在一起准确率/召回率。
Avg:表示4种噪声的平均准确率/召回率。
Batch:批次,在模型训练过程,不可能一次性把所有数据都加载到机器内存中,而是一批一批的进行训练。
batch size:每批次加载句子的数量。
Checkpoint:检查点。在模型训练过程中,根据设定,达到一定的判断准则,就保存一个模型。
Patience:模型训练时的停止条件参数设置,是一个整数值,当连续多少个模型在开发集上没有改进里,中止模型训练。比如patience 30,表示在模型训练过程中,如果在开发集上,连续30个模型(checkpoint)没有性能提升,那就中止训练。
seed:种子初值值。用于模型训练时候的初始化。
Epoch:每轮训练。Epoch=1就表示训练数据过了一遍,epoch=2,就代表训练数据过了2遍,以此类推。
Piece:是spm_encode可执行程序的一个参数。
Sentencepiece,分词:机器翻译预处理过程的一种方法,该方法比一般的分词方法更好,能够缓解未登录词的问题。
Error-position Loss:错误位置上的损失。
GoldenRef:参考译文。
spm_encode:是sentencepiece算法编译出来的一个可执行程序。
max_epoch:训练时候最多的训练轮数。
output_format:spm_encode可执行程序的一个参数。
spm_train:是sentencepiece算法编译出来的一个可执行程序。
mask-whole-words:整词掩码。
spm(sentencepiece model):sentencepiece模型。
vocab_size:在机器翻译模型中,指定的翻译词典大小。
raw text:原始数据。
MOS分:机器翻译的人工评价指标,5分制。5分表示准确翻译。
BLEU:机器翻译的自动评价指标。
Clean:干净数据。
Noise:噪声数据。
Model:模型。
Update:更新参数。
请参见图1至图2,一种神经机器翻译鲁棒性增强方法,构建基于子词的神经机器翻译模型,在神经机器翻译模型中设有用于检测噪声子词位置的错误位置探测模块;在对神经机器翻译模型训练时,由干净的批训练样本生成带噪声的批训练样本;将干净的批训练样本与带噪声的批训练样本交互对神经机器翻译模型进行训练,并计算损失函数;损失函数包括两部分,一部分是错误位置检测损失函数,一部分是机器翻译损失函数;采用启发式的算法,将带噪声的词修复成干净的词。
本文中的干净的词是指没有错误的词;干净句子是指没有错误词的句子。
干净的批训练样本是指:是指在训练模型的过程中,每次加载到内存的没有错误词的句子数,例如1028个句子。如果一次性把所有句子加载到内存,内存放不下就会出错,导致不能训练。而如果一次只加载一个句子,那么训练过程太慢。目前采用的办法就是批训练。
带噪声的批训练样本是指:是指在训练模型的过程中,每次加载到内存的含有错误词的句子数。
神经机器翻译模型可采用现有技术中的适用神经网络构建;错误位置探测模块可采用现有技术中的适用的分类神经网络构建。
字符级噪声(insert、swap、delete、keyboard),都是在原词的基础上,进行字符级的加噪,所以一旦定位到噪声位置了,通过一些启发式的算法,就有可能恢复成正确的词。启发式的算法可采用现有技术中的适用启发式的算法。
优选地,由干净的批训练样本生成带噪声的批训练样本的方法可包括将干净的批训练样本中的词进行如下一种或几种方法的处理:可随机插入一个字符到词中;可随机删除词中的一个字符;可随机替换词中的一个字符;可随机交换词中的相邻或者不相邻的字符。
优选地,随机替换词中的一个字符的方法可为:可根据键盘的字母位置,将某个字符替换成键盘上附近的字符。
优选地,错误位置探测模块可基于二分类神经网络模型构建。
优选地,由干净的批训练样本生成带噪声的批训练样本时,可对带噪声的批训练样本按如下方法进行标记:对带噪声的批训练样本进行分词处理时,如果带噪声的词被切分成多个子词,可只把切分后的首个子词标记成1,其它标记为0;其它未被干扰的词被切分后,每个部分的子词都标为0。
假设源语言句子为Sorig,其包括n个token,设Sorig={s1,s2,s3,,…,sn};Sorig经sentencepiece处理后的句子用Sc表示,Sc由m个子词组成,设Sc={s1,s2,s3,,…,sm};Sorig经过扰动及sentencepiece处理后的句子用Sn表示,Sn由h个子词组成,Sn={s1,s2,s3,,…,sh};目标语言句子经sentencepiece处理后的句子用Tc表示,由r个token组成,Tc={t1,t2,t3,,…,tr};
假设Sorig中,第i个词si经过噪声干扰,那么si对应的经过sentencepiece处理后的序列为s[j,k]:
s[j,k]={sj,…,sk}sj,…,sk∈Sc||Sn
用0表示该位置子词正确,用1表示该位置子词存在噪声;训练神经网络机器翻译模型时,输入的文本是[Sc,Tc]和[Sn,Tc];噪声词在进行sentencepiece处理时,如果被sentencepiece切分成多个子词,只把切分后的首个子词标记成1,其它标记为0;其它未被干扰的词被切分后,每个部分的子词,都标为0。
优选地,错误位置检测损失函数可为:
式中:
yi表示样本i的标签,正确位置为0,错误位置为1;
pi表示样本i预测为错误位置的概率;
Lerror-position-detect表示错误位置检测损失;
N为样本数量。
优选地,将干净的批训练样本与带噪声的批训练样本交互对神经网络机器翻译模型进行训练,损失函数可为:
Lnmt=Lclean-batch+λ*Lnoisy-batch;
式中:
Lnmt表示机器翻译损失;
Lclean-batch表示干净的批训练样本的机器翻译损失;
Lnoisy-batch表示带噪声的批训练样本的机器翻译损失;
λ表示权重,用于调节Lnoisy-batch在整体损失中的权重占比;是个经验值,取值范围为0~1之间。
优选地,对于干净的批训练样本,机器翻译损失函数可为:
式中:
x表示输入样本。
y表示输出样本。
Z表示已经翻译产生的部分结果。
h表示隐藏层表示。
θmt表示机器翻译模型参数。
yj表示解码产生的第j个词。
j表示表示当前解码要产生第j个词。
J表示参考译文的长度。
N表示样本数量。
P(y|x;θmt)表示将输入样本x,通过模型参数θmt解码产生y的概率。
优选地,对于带噪声的批训练样本,训练时可设置如下约束:
约束一:当P(y|xclean;θmt)>P(y|xnoisy;θmt)时,需要继续优化,让噪声向着干净数据的概率靠近;
约束二:当P(y|xclean;θmt)<P(y|xnoisy;θmt)时,不需要继续优化;
则带噪声的批训练样本的机器翻译损失函数可为:
Dgap=logP(y|xclean;θmt)-logP(y|xnoisy;θmt);
式中:
Dgap表示当前干净样本和噪声样本在当前模型参数θmt的损失差值。
xclean表示干净样本。
xnoisy表示噪声样本。
y表示标准参考译文。
θmt表示机器翻译模型参数。
N表示样本数量。
P(y|xclean;θmt)表示干净样本翻译成标准参考译文的概率。
P(y|xnoisy;θmt)表示噪声样本翻译成标准参考译文的概率。
在当前训练参数θmt下,只要保证在目标端每个位置的noisy(噪音)概率值都向着clean概率靠近,就能让P(y|xnoisy;θmt)趋近于P(y|xclean;θmt),我们只对Dgap部分进行优化即可。
本发明还提供了一种神经机器翻译鲁棒性增强设备,包括存储器和处理器,所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现上述的神经机器翻译鲁棒性增强方法步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时,实现上述的神经机器翻译鲁棒性增强方法步骤。
下面以本发明的一个优选实施例来进一步说明本发明的工作流程及工作原理:
构建基于子词的神经机器翻译模型,在神经机器翻译模型中设有用于检测噪声子词位置的错误位置探测模块;以下将本发明的这种带有错误位置探测模块的神经机器翻译模型称为DetTransNet。
在对神经机器翻译模型训练时,由干净的批训练样本生成带噪声的批训练样本;噪声样本生成过程如下:
在DetTransNet中,在训练过程中,需要对于每个干净batch,生成相对应的带噪声的batch,在本发明的优选实施例中,我们主要针对的是字符级的噪声:
1、字符级的噪声生成:
(1)insert噪声:good->goood,随机插入一个字符
(2)delete噪声:machine->mchine,随机删除一个字符
(3)keyboard噪声:kill->lill,根据键盘的字母位置,将某个字符替换成键盘上附近的字符。
(4)swap噪声:hello->helol,随机交换相邻或者不相邻的字符。
2、标注数据生成
在DetTransNet中,文本基础建模单元是子词(子词),这里的子词实现方式,我们采用的是sentencepiece(字词切分算法),因为它能够识别词的开始,有利于整词干扰。为简化符号表示,下文假设源语言句子为Sorig,其包括n个token(标记、符号)(仅通过空格切分)。设Sorig={s1,s2,s3,,…,sn};Sorig经sentencepiece处理后的句子用Sc表示,Sc由m个子词组成,一般情况m>n,设Sc={s1,s2,s3,,…,sm};Sorig经过扰动及sentencepiece处理后的句子用Sn表示,Sn由h个子词组成,一般情况h>n,Sn={s1,s2,s3,,…,sh};目标语言句子经sentencepiece处理后的句子用Tc表示,由r个token组成,Tc={t1,t2,t3,,…,tr};
例如:干扰源语句中的born为botn
Sorig=I have an elder brother who was born in China.
Sc=▁I▁have▁an▁elder▁brother▁who▁was▁born▁in▁China▁.
Sn=▁I▁have▁an▁elder▁brother▁who▁was▁bot n▁in▁China▁.
Tc={▁我▁的▁哥哥▁是▁在▁中国▁出生▁的}
假设Sorig中,第i个词si经过噪声干扰,那么si对应的经过sentencepiece处理后的序列为s[j,k]:
s[j,k]={sj,…,sk}sj,…,sk∈Sc||Sn;
错误位置探测模块基于二分类神经网络模型构建,解决2分类问题,那么我们使用0,1来表示两个类别,其中0表示正确位置,1表示错误位置(噪声词位置)。在我们的网络中,输入的文本是[Sc,Tc]和[Sn,Tc]。噪声词(被干扰位置的词)在进行sentencepiece处理时,如果被sentencepiece切分成多个子词了,我们只把切分后的首个子词标记成1(如果某个词被干扰了,而sentencepiece模型,是在正常干净数据上训练的,遇到噪声词时,大概率会它切分开,而sentencepiece模型,本身可以根据切分结果识别词开始位置,以及结束位置的,所以只要首个子词被标记成1,也就可以定位到噪声词了),其它标记为0。其它没有被干扰的词,被切分后,每个部分的子词,都标为0。
例如,标记样例:
Sc=▁I▁have▁an▁elder▁brother▁who▁was▁born▁in▁China▁.
Lc=0 0 0 0 0 0 0 0 0 0 0
Sn=▁I▁have▁an▁elder▁brother▁who▁was▁bot n▁in▁China▁.
Ln=0 0 0 0 0 0 0 1 0 0 0 0
3、计算训练损失
损失函数包括两部分,一部分是错误位置检测损失,一部分是机器翻译损失。
错误位置检测损失Error-position Loss:
Lerror-position-detect是错误位置检测损失,因为每个子词对应位置的标记只有2种,所以本质上这是一个分类任务,使用经典交叉熵来定义:
式中:
yi表示样本i的标签,正确位置为0,错误位置为1;
pi表示样本i预测为错误位置的概率;
Lerror-position-detect表示错误位置检测损失;
N为样本数量。
因为噪声词有可能被sentencepiece切分开,而我们标注的时候,只把切分后首个子词标记为1,后面部分标记为0,这个0所对应的损失(因为根据首个子词,我们就可以找到该词的整体,那么损失我们也只算一个整体即可,不需要全部计算),在训练过程中需要忽略。
机器翻译损失:
因为在训练过程中,有2个batch,一个是干净数据的batch,一个是与之对应的噪声batch,对于干净数据batch的损失,我们沿用经典的NMT损失:
z表示已经翻译产生的部分结果。
j表示表示当前解码要产生第j个词。
J表示参考译文的长度。
噪声batch的损失定义:虽然我们期望噪声数据的对应翻译也是Goldenref,但是毕竟噪声数据相比干净数据,在语义上存在着差别,理论上来说,如果我们说<xclean,y>是完全互译的平行句对,那么<xnoisy,y>应该是不完全互译的句对。非完全互译的句对的概率,实际上小于完全互译的句对概率。但是我们希望它非常接近于平行句对的概率。所以定义如下:
约束<1>:当P(y|xclean;θmt)>P(y|xnoisy;θmt)时,需要继续优化,让噪声向着干净数据的概率靠近。
约束<2>:当P(y|xclean;θmt)<P(y|xnoisy;θmt)时,不需要继续优化。
Dgap=logP(y|xclean;θmt)-logP(y|xnoisy;θmt);
Lnmt=Lclean-batch+λ*Lnoisy-batch;
在当前训练参数θmt下,只要保证在目标端每个位置的noisy(噪音)概率值都向着clean概率靠近,就能让P(y|xnoisy;θmt)趋近于P(y|xclean;θmt),我们只对Dgap部分进行优化即可。
(1)DetTransNet损失:
LDetTransNet=Lerror-position-detect+Lnmt。
4、启发式纠错
字符级噪声(insert、swap、delete、keyboard),都是在原词的基础上,进行字符级的加噪,所以一旦定位到噪声位置了,通过一些启发式的算法,就有可能恢复成正确的词。
可采用现有技术中的启发式纠错方法将带有噪声的词恢复为干净的词。
可采用如下的恢复算法将带有噪声的词恢复为干净的词:
输入句子由n个词组成,假设用S表示,S=[w0 w1 w2…,wn-1],探错网络在解码时,给的标记是Tag=[0 1 0 0 1…,0],表示输入中w1和w4有错误,所以要恢复成干净的词,就要对错误位置的词[w1 w4]进行遍历。先对第一个词w1进行纠错。以w1为标准,找到与它编辑距离(对一个词进行插入、删除、替换等操作,让它变成另外一个词)最小(假设为1,就是只操作1次,它变成一个干净的词)的候选单词列表。假设候选列表为C=[wc0,wc1,wc2,…,wcn,w1](注:在最后加了w1,是避免误检错),然后用BERT(一个效果非常好的开源模型,可以根据上下文,猜测某个位置词的概率)对这个候选列表排序,得到Csorted=[wc3,wc0,wc2,…,wcn,w1],最后选取top1的wc3来替换w1。依次操作,直到将所有位置的错误词纠正完毕。
举例:
S=[my namyispgaohui]。
Tag=[0 1 1 0]。
C=[amy name namy]。
Csorted=[name namyamy]。
输入句子为:my namyispgaohui,探错网络在解码时,给的标记是0 1 1 0,表示输入中namy和isp有错误,所以要恢复成干净的词,那么对错误位置进行遍历。先对第一个词进行纠错。以namy为标准,找与它编辑距离为近的单词。得到一个列表[amy,name等],然后用BERT对这个候选列表排序,得到[name,amy],最后选取top1的name。BERT是一个常用的算法,BERT的全称为Bidirectional Encoder Representation from Transformers,是一个预训练的语言表征模型。它可以根据上下文,来猜测当前位置的词,也就是候选列表中,哪个词在该位置的概率最大。
采用fairseq开源工具,并在其基础上,实现了DetTransNet网络,Transformer(基线系统)和DetTransNet的参数,采用默认的transformer-base设置。
文本预处理:我们采用sentencepiece对原始文本(raw text)进行处理。在训练spm(sentencepiece model)时,spm_train的vocab_size参数设置为16000,在使用spm_encode的时候,output_format设置为piece;ende方向,NMT为单独词表,vocab_size设置分别为45220,41716。Enfr方向,NMT为共享词表,vocab_size设置为33220;enzh方向,NMT为单独词表,vocab_size分别设置为16716,22772。
seed=1,patience=30&max_epoch=200;连续30个checkpoint未有改善或者最多200epoch就训练中止;mask-whole-words为整词干扰参数。
λ的设定:
方向 | λ |
enfr | 1.0 |
nde | 1.0 |
enzh | 0.5 |
优化器选择Adam优化器,初始学习率设置为0.0005,权重衰减率设置为0.0001。整个训练过程在4块V100卡上进行。
enfr大概训练时间28小时,ende大概训练时间是26小时,enzh大概训练时间是54小时。
测试集产生噪声的词,长度需要>3;因为一般是比较长的词中容易写错,而简单词中,写错的概率比较低。
为了验证本发明提出的DetTransNet具有更好的鲁棒性,我们在公开数据集上进行了多种实验。并和基本模型进行了实验对比,以此表明我们提出的DetTransNet有效的提升了机器翻译模型的鲁棒性。
一、实验所使用的数据集:
(1)En-fr数据集:
训练集:MTNT的en-fr训练集,主要包含europarl-v7和news-commentary-v10,总共2164140个平行样本。
开发集:newsdiscussdev2015。
干净测试集:newstest2014,newsdiscusstest2015,MTNT(包含一定的自然噪声)。
噪声测试集:在newstest2014上添加噪声。
(2)En-de数据集:
训练集:WMT14 en-de dataset,大约450万个平行样本。
开发集:newstestdev2014。
干净测试集:newstest2014。
噪声测试集:在newstest2014上添加噪声。
(3)En-zh数据集:
训练集:WMT20 en-zh dataset,大约508万个平行样本。
开发集:wmt17-devset。
干净测试集:wmt18-testset,wmt19-testset。
噪声测试集:在干净测试集上添加噪声。
二、实验设置:
我们与基准系统进行对比,来验证所设计的方法的有效性。对比的时候,不仅测试在干净测试集上的效果,同时也测试噪声数据上的效果。
(1)基准实验:也就是transformer实验,模型训练时,仅使用干净数据。
(2)DetTransNet实验:也就是本发明提出的方法,它在transformer的基础上,添加了检错网络。
三、标准实验结果
(1)在干净测试集上的效果:
表1:英法在干净测试集上的自动评价
Model(enfr) | Newstest2014 | Newsdiscusstest2015 | MTNT |
transformer | 37.5 | 36.2 | 25.1 |
DetTransNet | 39.1 | 36.7 | 26.7 |
表2:英中在干净测试集上的自动评价
Model(enzh) | WMT18 | WMT19 |
Transformer | 32.0 | 29.1 |
DetTransNet | 32.4 | 29.2 |
表3:英德在干净测试集上的自动评价
Model(ende) | Newstest2014 |
transformer | 32.2 |
DetTransNet | 32.6 |
(2)在噪声测试集上的效果:
噪声数据:n表示测试句子中,噪声的个数。n=0表示不添加噪声,n=1表示一个测试句子中,有一个噪声,其它类推。用a,b,c分别代表不同的模型。
a模型:为transformer-base模型;b模型:为使用DetTransNet训练,测试解码的时候不进行错误恢复的模型;c模型:为使用DetTransNet训练,测试解码的时候进行错误恢复的模型。
噪声位置检错效果和纠错效果如表4和表5所示。
表4:不同数量噪声时的检错率(召回率/准确率)
表5:不同噪声数量时的纠错准确率(检错准确纠错准确/检错错误纠错正确)
从表4中,可以看出,随着句子中错误个数n的增加,错误位置的召回率(DetTransNet模型检测出来并且确实是错误位置的数量/测试集中所有噪声位置数量)从82.6%->48.2%在逐渐下降。这个也是很正常的。因为n增加了,有可能多个噪声词(<=n)会出现有连续的位置,这样就没有足够的上下文信息,来帮助模型识别错误位置,从而导致召回率降低。在召回率下降的同时,准确率(DetTransNet模型检测出来并且确实是错误位置的数量/DetTransNet模型检测出来的错误位置)在上升,当n>=2的时候,准确率超过90%,说明错误位置检测可信度很高(只要DetTransNet检测出来的,90%+的概率是正确的)。从表6-9可以看到,b模型相比基线transformer来说,也具有很强的鲁棒性。所以在检错网络中,相比于召回率,我们更注重准确率。
从表5中,当在真实错误位置上进行纠错的时候,平均有88.0%的纠正准确率(把噪声词纠正成正确的词),同时,在误检(不是噪声的位置,误识别成噪声位置)的情况下,在纠正该位置词为正确的词的时候,平均55.5%的概率可以恢复成原来的词。结合表格表8,可以计算位置检错错误(把不是噪声的位置识别成噪声位置)并且纠错错误(纠错后的词不是原来的词)的概率是(1-93%)*(1-55.3%)=3.1%。所以整体的错误情况还是比较低的。
翻译鲁棒性效果请参见表6至表9:
表6:英法在噪声数据集上的BLEU
表7:英中在噪声数据集(WMT18)上的BLEU
表8:英中在噪声数据集(WMT19)上的BLEU
表9:英德在噪声数据集上的BLEU
从表4-10中,可以看到,本方案提出的DetTransNet,对于transformer模型,在干净数据上,效果不仅没有降低,反而有所提升,说明提出的新的网络结构,没有影响基础transformer的性能。
在噪声数据上,DetTransNet相比transformer,在不同噪声数量数据集上,鲁棒性均有增强。相比于没有启用错误纠正的模型b,采用启发式错误纠正的模型c,鲁棒性有进一步的性能提升。
从实验中,也可以看到,当n=1的时候,模型c和模型b的效果差异不大,说明DetTransNet对于句子中,单一的词错误,已经有很高的鲁棒性了,并不会因为把部分错误位置的词纠正过来,而性能大幅度提升。
当n>1的时候,模型c要比模型b普遍要高0.3~1.0BLEU,但是并不是n越大,模型c比模型b好的程度更大(理论上来讲,随着n的增大,模型c应该比模型b好的程度在逐渐拉大,因为句子中的噪声词,如果都被正确纠正过来,那么它的翻译结果应该趋近于或者等于干净数据的得分,也就是n=0时的分数)。这是因为随着n的增大,检错召回率下降导致的。
我们同时进行了人工评测。从en-zh和en-fr噪声数据中,分别随机抽取200条,2个标注员进行背对背评测,表10是人工评价的MOS分。
在噪声数据集上,DetTransNet(b、c)模型,确实得分要远超基线模型a(transformer-base)模型。同时,加了纠错功能的c模型,要比不进行纠错的b模型,人工评价质量要更好一些。
表10:人工评价MOS分
参数对比效果请参见表11。
表11:参数量对比
方向 | transformer | DetTransNet |
en-zh | 64360448 | 64361986 |
表11可以看出,参数规模仅增加了1538个,增长度为0.002%,几乎是零增长。其它en-fr,en-de方向也类似。
解码时间对比效果请参见表12。
表12:en-de解码时间
en-de方向测试集为newstest2014,包括3003句,batch size=80。在不进行纠错的情况下,DetTransNet和transformer-base是一样的,都是30s。干净测试集在DetTransNet并且纠错的情况下,时间有所上升,为37s,时间增长了23.3%,主要原因是有误检,或者是干净测试集中,本身也有包含一些错误。
在干净测试集中,混入5%比例的噪声,解码时间为39s,时间增长30%。当在干净测试集每句上,随机加入不同比例的噪声(n=1,2,3等),解码时间为50s,时间增长了66.7%。在正常的场景中,输入句子的基本不可能是全部带噪声的,带很小一部分噪声的情况下,时间增长应该是30%左右,最大不超过66.7%。纠错功能,虽然带来一定的解码效率降低,但是它在自动评价和人工评价上,能够获得更好的效果。
四、案例分析
从这些案例中,可以看到,单纯的transformer模型,在对噪声数据进行翻译时,就会出现明显的翻译错误。而DetTransNet翻译的结果,相对transformer来说,明显具有更好的鲁棒性,翻译错误较少。而在DetTransNet上加入纠错功能后,翻译基本接近于Goldenref。进一步说明我们的方案的有效性。
以上所述的实施例仅用于说明本发明的技术思想及特点,其目的在于使本领域内的技术人员能够理解本发明的内容并据以实施,不能仅以本实施例来限定本发明的发明范围,即凡本发明所揭示的精神所作的同等变化或修饰,仍落在本发明的发明范围内。
Claims (10)
1.一种神经机器翻译鲁棒性增强方法,其特征在于,构建基于子词的神经机器翻译模型,在神经机器翻译模型中设有用于检测噪声子词位置的错误位置探测模块;在对神经机器翻译模型训练时,由干净的批训练样本生成带噪声的批训练样本;将干净的批训练样本与带噪声的批训练样本交互对神经机器翻译模型进行训练,并计算损失函数;损失函数包括两部分,一部分是错误位置检测损失函数,一部分是机器翻译损失函数;采用启发式的算法,将带噪声的词修复成干净的词。
2.根据权利要求1所述的神经机器翻译鲁棒性增强方法,其特征在于,由干净的批训练样本生成带噪声的批训练样本的方法包括将干净的批训练样本中的词进行如下一种或几种方法的处理:随机插入一个字符到词中;随机删除词中的一个字符;随机替换词中的一个字符;随机交换词中的相邻或者不相邻的字符。
3.根据权利要求2所述的神经机器翻译鲁棒性增强方法,其特征在于,随机替换词中的一个字符的方法为:根据键盘的字母位置,将某个字符替换成键盘上附近的字符。
4.根据权利要求1所述的神经机器翻译鲁棒性增强方法,其特征在于,错误位置探测模块基于二分类神经网络模型构建。
5.根据权利要求1所述的神经机器翻译鲁棒性增强方法,其特征在于,由干净的批训练样本生成带噪声的批训练样本时,对带噪声的批训练样本按如下方法进行标记:对带噪声的批训练样本进行分词处理时,如果带噪声的词被切分成多个子词,只把切分后的首个子词标记成1,其它标记为0;其它未被干扰的词被切分后,每个部分的子词都标为0。
7.根据权利要求1所述的神经机器翻译鲁棒性增强方法,其特征在于,将干净的批训练样本与带噪声的批训练样本交互对神经网络机器翻译模型进行训练,损失函数为:
Lnmt=Lclean-batch+λ*Lnoisy-batch;
式中:
Lnmt表示机器翻译损失;
Lclean-batch表示干净的批训练样本的机器翻译损失;
Lnoisy-batch表示带噪声的批训练样本的机器翻译损失;
λ表示Lnoisy-batch在整体损失中的权重占比;取值范围为0~1之间。
8.根据权利要求7所述的神经机器翻译鲁棒性增强方法,其特征在于,对于带噪声的批训练样本,训练时设置如下约束:
约束一:当P(y|xclean;θmt)>P(y|xnoisy;θmt)时,需要继续优化,让噪声向着干净数据的概率靠近;
约束二:当P(y|xclean;θmt)<P(y|xnoisy;θmt)时,不需要继续优化;
则带噪声的批训练样本的机器翻译损失函数为:
Dgap=logP(y|xclean;θmt)-logP(y|xnoisy;θmt);
式中:
Dgap表示当前干净样本和噪声样本在当前模型参数θmt的损失差值;
xclean表示干净样本;
xnoisy表示噪声样本;
y表示标准参考译文;
θmt表示机器翻译模型参数;
N表示样本数量;
P(y|xclean;θmt)表示干净样本翻译成标准参考译文的概率;
P(y|xnoisy;θmt)表示噪声样本翻译成标准参考译文的概率。
9.一种神经机器翻译鲁棒性增强设备,包括存储器和处理器,其特征在于,所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时实现如权利要求1至8中任一项所述的神经机器翻译鲁棒性增强方法步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于:该计算机程序被处理器执行时,实现如权利要求1至8中任一项所述的神经机器翻译鲁棒性增强方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210527147.0A CN114841176B (zh) | 2022-05-16 | 2022-05-16 | 一种神经机器翻译鲁棒性增强方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210527147.0A CN114841176B (zh) | 2022-05-16 | 2022-05-16 | 一种神经机器翻译鲁棒性增强方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114841176A true CN114841176A (zh) | 2022-08-02 |
CN114841176B CN114841176B (zh) | 2023-09-01 |
Family
ID=82569232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210527147.0A Active CN114841176B (zh) | 2022-05-16 | 2022-05-16 | 一种神经机器翻译鲁棒性增强方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114841176B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115437511A (zh) * | 2022-11-07 | 2022-12-06 | 北京澜舟科技有限公司 | 一种拼音汉字转换方法、转换模型训练方法及存储介质 |
CN116187304A (zh) * | 2023-04-26 | 2023-05-30 | 中国传媒大学 | 一种基于改进bert的自动文本纠错算法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108829685A (zh) * | 2018-05-07 | 2018-11-16 | 内蒙古工业大学 | 一种基于单语语料库训练的蒙汉互译方法 |
US10878201B1 (en) * | 2017-07-27 | 2020-12-29 | Lilt, Inc. | Apparatus and method for an adaptive neural machine translation system |
CN113297841A (zh) * | 2021-05-24 | 2021-08-24 | 哈尔滨工业大学 | 基于预训练双语词向量的神经机器翻译方法 |
CN113569582A (zh) * | 2021-07-02 | 2021-10-29 | 中译语通科技股份有限公司 | 一种提升多语言神经机器翻译模型零样本翻译能力的方法 |
US20210374553A1 (en) * | 2020-06-02 | 2021-12-02 | Salesforce.Com, Inc. | Systems and methods for noise-robust contrastive learning |
CN114154520A (zh) * | 2021-11-22 | 2022-03-08 | 北京交通大学 | 机器翻译模型的训练方法、机器翻译方法、装置及设备 |
-
2022
- 2022-05-16 CN CN202210527147.0A patent/CN114841176B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10878201B1 (en) * | 2017-07-27 | 2020-12-29 | Lilt, Inc. | Apparatus and method for an adaptive neural machine translation system |
CN108829685A (zh) * | 2018-05-07 | 2018-11-16 | 内蒙古工业大学 | 一种基于单语语料库训练的蒙汉互译方法 |
US20210374553A1 (en) * | 2020-06-02 | 2021-12-02 | Salesforce.Com, Inc. | Systems and methods for noise-robust contrastive learning |
CN113297841A (zh) * | 2021-05-24 | 2021-08-24 | 哈尔滨工业大学 | 基于预训练双语词向量的神经机器翻译方法 |
CN113569582A (zh) * | 2021-07-02 | 2021-10-29 | 中译语通科技股份有限公司 | 一种提升多语言神经机器翻译模型零样本翻译能力的方法 |
CN114154520A (zh) * | 2021-11-22 | 2022-03-08 | 北京交通大学 | 机器翻译模型的训练方法、机器翻译方法、装置及设备 |
Non-Patent Citations (2)
Title |
---|
熊德意等: "神经机器翻译综述", 《计算机学报》, vol. 41, no. 12, pages 2734 - 2755 * |
薛征山等: "改进机器翻译中的句子切分模型", 《中文信息学报》, vol. 31, no. 4, pages 50 - 56 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115437511A (zh) * | 2022-11-07 | 2022-12-06 | 北京澜舟科技有限公司 | 一种拼音汉字转换方法、转换模型训练方法及存储介质 |
CN116187304A (zh) * | 2023-04-26 | 2023-05-30 | 中国传媒大学 | 一种基于改进bert的自动文本纠错算法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114841176B (zh) | 2023-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101730898B (zh) | 采用神经网络的手写识别 | |
Breuel | The OCRopus open source OCR system | |
CN110135414B (zh) | 语料库更新方法、装置、存储介质及终端 | |
Singh | Optical character recognition techniques: a survey | |
CN114841176A (zh) | 一种神经机器翻译鲁棒性增强方法、设备及存储介质 | |
Fischer et al. | Automatic transcription of handwritten medieval documents | |
Natarajan et al. | Multi-lingual offline handwriting recognition using hidden Markov models: A script-independent approach | |
Duong et al. | An unsupervised method for OCR post-correction and spelling normalisation for Finnish | |
CN103049458A (zh) | 一种修正用户词库的方法和系统 | |
Lee et al. | Improving book ocr by adaptive language and image models | |
CN116127952A (zh) | 一种多粒度中文文本纠错方法和装置 | |
Jemni et al. | Out of vocabulary word detection and recovery in Arabic handwritten text recognition | |
Vidal et al. | A probabilistic framework for lexicon-based keyword spotting in handwritten text images | |
Serrano et al. | Interactive handwriting recognition with limited user effort | |
Poncelas et al. | A tool for facilitating ocr postediting in historical documents | |
Jiang et al. | Impact of OCR quality on BERT embeddings in the domain classification of book excerpts | |
CN114781651A (zh) | 基于对比学习的小样本学习鲁棒性提升方法 | |
Nguyen et al. | OCR error correction for unconstrained Vietnamese handwritten text | |
Chen et al. | Integrating natural language processing with image document analysis: what we learned from two real-world applications | |
Sankaran et al. | Error detection in highly inflectional languages | |
Tensmeyer et al. | Language model supervision for handwriting recognition model adaptation | |
Mohapatra et al. | Spell checker for OCR | |
Vidal et al. | Probabilistic indexing and search for hyphenated words | |
Mostafa et al. | An end-to-end ocr framework for robust arabic-handwriting recognition using a novel transformers-based model and an innovative 270 million-words multi-font corpus of classical arabic with diacritics | |
Andrés et al. | Search for Hyphenated Words in Probabilistic Indices: A Machine Learning Approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |