一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

文本纠错方法、装置、计算机设备和存储介质与流程

2022-06-29 14:46:28 来源:中国专利 TAG:


1.本技术涉及自然语言理解技术领域,特别是涉及一种文本纠错方法、装置、计算机设备和存储介质。


背景技术:

2.文本纠错,是指出文本中的文字错误,包括错别字或不符合语法规则的病句。传统的文本纠错使用端到端的神经网络模型(seq2seq模型),对于输入的有误的英文文本,模型可以解码输出正确的文本。
3.端到端的神经网络模型通常应用于机器翻译,而文本纠错与机器翻译不同。文本纠错的错误句子与正确句子一般有大量的重合,若采用端到端的神经网络模型对文本进行纠错,将错误句子作为输入,一步步解码生成正确句子中的字符,非常耗时,并且可能造成错误累积。即端到端(seq2seq)的纠错模型存在纠错效果差的问题。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种能够提高纠错效果的文本纠错方法、装置、计算机设备和存储介质。
5.一种文本纠错方法,所述方法包括:
6.获取待纠错文本;
7.通过训练好的纠错模型,输出所述待纠错文本中各字符的纠错操作信息,所述纠错操作信息包括纠错操作类别;所述纠错操作类别包括拷贝,删除、插入和替换;若所述纠错操作类别为替换和插入,所述纠错操作信息还包括纠正的新单词信息;
8.根据所述纠错操作信息对所述待纠错文本执行纠正操作,显示纠正操作结果。
9.一种文本纠错装置,所述装置包括:
10.文本获取模块,用于获取待纠错文本;
11.预测模块,用于通过训练好的纠错模型,输出所述待纠错文本中各字符的纠错操作信息,所述纠错操作信息包括纠错操作类别;所述纠错操作类别包括拷贝,删除、插入和替换;若所述纠错操作类别为替换和插入,所述纠错操作信息还包括纠正的新单词信息;
12.纠错处理模块,用于根据所述纠错操作信息对所述待纠错文本执行纠正操作,显示纠正操作结果。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
14.获取待纠错文本;
15.通过训练好的纠错模型,输出所述待纠错文本中各字符的纠错操作信息,所述纠错操作信息包括纠错操作类别;所述纠错操作类别包括拷贝,删除、插入和替换;若所述纠错操作类别为替换和插入,所述纠错操作信息还包括纠正的新单词信息;
16.根据所述纠错操作信息对所述待纠错文本执行纠正操作,显示纠正操作结果。
17.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
18.获取待纠错文本;
19.通过训练好的纠错模型,输出所述待纠错文本中各字符的纠错操作信息,所述纠错操作信息包括纠错操作类别;所述纠错操作类别包括拷贝,删除、插入和替换;若所述纠错操作类别为替换和插入,所述纠错操作信息还包括纠正的新单词信息;
20.根据所述纠错操作信息对所述待纠错文本执行纠正操作,显示纠正操作结果。
21.上述文本纠错方法、装置、计算机设备和存储介质,对于待纠错文本,利用纠错模型输出每个字符的纠错操作信息,纠正操作信息包括了纠错操作类别,纠错操作类别包括拷贝,删除、插入和替换,纠错操作信息还包括纠错操作类别为替换和插入时的单词信息,由于纠正模型输入的是对字符的明确的纠正操作,如删除操作、插入操作和替换操作,因此,能够实现纠错模型仅对错误字符本身进行纠正操作,不会对非错误字符进行操作,因而能够避免纠错过程中对全部字符翻译导致的速度慢的问题,减小正确字符被改错的概率,提高了纠错效果。
附图说明
22.图1为一个实施例中文本纠错方法的应用环境图;
23.图2为一个实施例中文本纠错方法的流程示意图;
24.图3为一个实施例中文本纠错模型的结构示意图;
25.图4为一个实施例中通过训练好的纠错模型,输出待纠错文本中错误字符的纠错操作信息的步骤的流程示意图;
26.图5为一个实施例中训练纠错模型的方法的流程示意图;
27.图6为一个实施例中获取训练样本集的步骤的流程示意图;
28.图7为一个实施例中文本纠错装置的结构框图;
29.图8为一个实施例中计算机设备的内部结构图。
具体实施方式
30.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
31.本技术提供的文本纠错方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104通过网络进行通信。用户通过终端102输入待纠错文本,终端102将待纠错文本发送至服务器104,由服务器104对待纠错文本进行纠错,向终端返回纠错操作信息,由终端显示纠错操作信息。可选地,还可由终端执行文本纠错方法,对待文本纠错进行纠错,得到纠错操作信息,并显示。用户通过输入待纠错文本,终端显示纠错操作信息,用户对文本的纠错能力得到了训练。本技术的文本纠错方法可应用于语言学习的应用场景,如各种语言的语法学习,单词学习等。
32.具体地,终端或服务器获取待纠错文本;通过训练好的纠错模型,输出待纠错文本中各字符的纠错操作信息,纠错操作信息包括纠错操作类别;纠错操作类别包括拷贝,删
除、插入和替换;若纠错操作类别为替换和插入,纠错操作信息还包括纠正的新单词信息;根据纠错操作信息对待纠错文本执行纠正操作,显示纠正操作结果。
33.其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
34.在一个实施例中,如图2所示,提供了一种文本纠错方法,以该方法应用于图1中的终端或服务器为例进行说明,包括以下步骤:
35.步骤202,获取待纠错文本。
36.其中,可以是用户在终端输入待纠错文本,终端获得待纠错文本。也可以是终端将待纠错文本发送至服务器,服务器获取待纠错文本。可以理解的是,是文本纠错方法的执行主体获取待纠错文本。其中,待纠错文本的语言形式可以是任何一种语言,包括但不限于英文、中文等。
37.步骤204,通过训练好的纠错模型,输出待纠错文本中各字符的纠错操作信息,纠错操作信息包括纠错操作类别;纠错操作类别包括拷贝,删除、插入和替换;若纠错操作类别为替换和插入,纠错操作信息还包括纠正的新单词信息。
38.其中,纠错模型是预先训练好的,包括以transformers为框架的双向编码表征模型,如bert模型。bert模型具体可以参考文献:devlin,jacob,et al."bert:pre-training of deep bidirectional transformers for language understanding."arxiv preprint arxiv:1810.04805(2018)。
39.纠错操作信息是指对于待纠错文本中变为正确语句,对每个位置的字符所要进行的纠错操作。纠错操作信息包括纠错操作类别,纠错操作类别包括拷贝,删除、插入和替换。对于拼音文字(如英语等),纠错操作类别还包括变形。纠错操作类别为替换和插入时,纠错操作信息还包括纠正的新单词信息。纠正的新单词信息是指为实现相应的纠正操作,在原单词基础上纠正处理的新单词信息,如插入的新单词,替换的新单词等。
40.其中,拷贝可以理解为无变化,即待纠错文本转变为正确语句,对于其中正确的字符,其操作类别为复制。删除是指删除待纠错文本中的字符。插入是指在待纠错文本的开始、结束或两个字符之间插入字符。替换是将待纠错文本中的字符替换为其它字符。变形是指根据语法对单词的形态进行变形,如单数变复数,单词的时态变形,单词主动语态变被动语态等。
41.步骤206,根据纠错操作信息对待纠错文本执行纠正操作,显示纠正操作结果。
42.具体地,根据纠错操作信息中的操作类别,确定需要执行纠正操作的字符位置,对相应位置的字符执行纠正操作。
43.具体地,对于待纠错文本每个位置的字符,若该位置的字符正确,不存在错误,则纠错模型预测的纠错操作类别为拷贝。对于这种情况,在实际纠错过程中,并不需要对该位置的字符进行纠正处理。即,可获取待纠错文本中非拷贝操作类别的字符位置,对相应位置的字符,根据纠错操作信息执行纠正操作。
44.执行纠正操作具体的可以是根据纠错操作信息,对待纠错文本中的字符执行删除、插入、替换或变形操作。其中,若纠正操作类型为插入或替换,还将纠正的新单词插入到待纠错文本中的相应位置。
45.一个实施例中,显示的纠正结果以待纠错文本为基础,在待纠错文本的基础上显示错误字符,对错误字符的纠错操作。即对于待纠错文本,只关注文本的错误字符,以及对错误字符的修正。例如,以修订格式显示纠错操作信息。如,删除符显示删除的字符,插入符显示插入的字符。
46.一个实施例中,显示的纠正结果为正确的替换句子,即不显示修订的过程,直接显示纠正操作后正解的文本。如一个待纠错文本为“she see tom is catched by policeman in park at last night.”,纠正操作后,显示的纠正操作结果为正确的句子“she saw tom caught by a policeman in the park last night.”47.上述的文本纠错方法,对于待纠错文本,利用纠错模型输出每个字符的纠错操作信息,纠正操作信息包括了纠错操作类别,纠错操作类别包括拷贝,删除、插入和替换,纠错操作信息还包括纠错操作类别为替换和插入时的单词信息,由于纠正模型输入的是对字符的明确的纠正操作,如删除操作、插入操作和替换操作,因此,能够实现纠错模型仅对错误字符本身进行纠正操作,不会对非错误字符进行操作,因而能够避免纠错过程中对全部字符翻译导致的速度慢的问题,减小正确字符被改错的概率,提高了纠错效果。
48.具体地,纠错模型的结构如图3所示,包括三个bert(bidirectional encoder representations from transformers)结构。如图4所示,通过训练好的纠错模型,输出待纠错文本中各字符的纠错操作信息,包括:
49.s402,将待纠错文本各字符的位置向量以及掩码向量,输入到第一bert结构,对除当前位置以外的字符进行注意,得到各位置字符的替换信息向量。
50.具体地,纠错模型的输入层如图3所示,纠错模型的输入包括待纠错文本中的字符x、位置向量p、掩码向量m、相邻位置向量avgi,其中i表示字符位置。其中,在待纠错文本首字符前和末字符后分别添加开始符[cls]和结束符[sep],加上开始符使得在第一个单词之前进行插入操作和其他位置单词保持一致。掩码向量m是bert中自带的[mask]。位置向量p对应字符在待纠错文本中的位置,是字符对应位置的位置向量。相邻位置向量avgi是相邻的位置向量求平均,如下所示:
[0051][0052][0053][0054]
其中,三个bert结构的参数不共享,图3仅示出了bert结构的两层结构,实际应用中,bert结构包括更多的层数,如12层。其中,每一层的输出作为下一层的输入。
[0055]
如图3所示,将待纠错文本各字符的位置向量p1,p2,p3,以及掩码向量输入到第一个bert结构。第一个bert结构根据各字符的位置向量以及掩码向量,对除当前位置以外字符进行注意,计算替换信息向量r。替换信息向量是指替换该字符的替换信息对应的向量。在计算替换信息向量r的过程中,不会引入当前位置的信息,只对除当前位置以外字符进行注意。例如,请结合图3,计算第一个位置字符的替换信息向量计算只会对除当前位置以外字符x2,x3进行注意(attention)而不使用第一个位置的字符信息x1。在bert预训练中,掩
码[mask]位置的词会被预测,这里利用了这一信息,结合掩码[[mask]和当前位置的位置向量一起作为输入,计算替换信息向量r。
[0056]
s404,将待纠错文本各字符和各字符的位置向量,输入到第二bert结构,对其它所有字符进行注意,得到各位置字符的词向量。
[0057]
具体地,第二bert结构是标准的bert模型,将待纠错文本各字符xi和各字符的位置向量pi输入到第二bert结构,对其它所有字符进行注意,计算每个位置对应的词向量hi。
[0058]
s406,将待纠错文本各位置的掩码向量和相邻位置向量的均值,输入到第三bert结构,对其他所有字符进行注意,得到插入信息向量。
[0059]
具体地,第三个bert结构,用于计算插入信息向量a。插入信息向量是指待纠错文本各位置要插入的信息的向量。在计算插入信息向量a的过程中,同时会使用x1,x2,x3,对其他所有字符进行注意,并且输入的位置向量是向量相邻两个位置向量的均值,[mask]也作为输入。
[0060]
s408,根据各位置字符的词向量、替换信息向量和插入信息向量,计算各位置字符的纠错操作属于不同操作类别的概率,以及操作类别为替换、插入和变形时的单词信息。
[0061]
其中,纠错操作类别包括拷贝、插入、替换、删除和变形。具体地,通过纠错模型第一分类器的softmax层输出,利用各位置字符的词向量、替换信息向量和插入信息向量,输出各位置字符的纠正操作属于不同操作类别的概率以及操作类别为替换、插入和变形时纠正的新单词信息。
[0062]
具体地,根据各位置字符的词向量、替换信息向量和插入信息向量,计算各位置字符的纠错操作属于不同操作类别的概率,以及操作类别为替换、插入和变形时的单词信息,包括:
[0063]
保留原词信息,根据当前位置的词向量计算操作类别为拷贝的概率;保留原词信息,根据插入信息向量引入新词信息,根据当前位置的词向量、原词信息以及新词信息,计算操作类别为插入的概率及插入的新单词信息;不保留原词信息,根据替换信息向量引入新词信息,根据当前位置的词向量以及新词信息,计算操作类别为替换的概率及替换的新单词信息;不保留原词信息,根据当前位置的词向量计算操作类别为删除的概率;保留原词信息,根据当前位置的词向量以及原词信息计算操作类别属于各设定变形种类的概率及对应的变形后的新单词信息。
[0064]
具体地,第一分类器的softmax层的公式如下:
[0065]
pr(ei|x)=softmax(logit(ei|x))
[0066]
where
[0067][0068]
其中,x表示输入的句子中的单词信息,ei表示操作类别,c表示拷贝类别,d表示删除类别,r(w)表示替换类别,tk表示变形类别,a(w)表示插入类别,hi表示第i个字符的词向
量,ai表示第i个字符的插入信息向量,ri表示第i个字符的替换信息向量。
[0069]
logit(ei|x)包含三项:第一项利用各位置字符的词向量hi计算每个位置的字符的纠错操作属于不同操作类别的概率。第二项代表是否保留原词信息,例如对于删除类d,第二项为0,表示无需保留原来的单词信息;对于替换单词w,r(w)替换类,第二项也为0;对于变形tk类,虽然单词形式发生了变化,但是语义没变,所以保留原来的单词的信息。第三项代表是否引入新词信息,对于删除类d,则第三项为0,无需引入新词信息,对于替换单词w,r(w)替换类,第三项使用替换信息向量来引入新词信息。
[0070]
具体地,在计算各字符的纠正操作为不同操作类别的概率时,针对操作类别为拷贝,无需引入新词信息,保留原词信息,根据当前字符的词向量计算操作类别为拷贝的概率。
[0071]
针对操作类别为插入,根据当前字符的词向量获得保留原词信息,根据插入信息向量引入新词信息。其中,拷贝和删除分别对应一个类别,插入操作类别根据插入文字的不同,对应多个插入类别。即,插入操作类别是一个大类,插入词w不同,对应多个插入类别a(w)。本实施例中,具体计算操作类别为各插入类别的概率,并且,根据插入类别对应的插入词,即可得到插入的单词信息。训练时统计了1000个常见的1-gram和2-gram词,作为插入词,每个插入词分别对应一个插入类别。保留原词信息,根据插入信息向量引入新词信息,根据当前位置的词向量、原词信息以及新词信息,具体是根据插入信息向量引入新词信息,根据当前位置的词向量、原词信息以及新词信息计算为各设定插入类别的概率,根据插入类别得到插入的单词信息。
[0072]
针对操作类别为替换,无需保留原词信息,根据替换向量,计算新词信息。替换操作类别根据替换文字的不同,对应多个替换类别,即,替换操作类别是一个大类,替换词w不同,对应多个替换类别r(w)。本实施例中,具体计算操作类别为各替换类别的概率,并且,根据替换类别对应的替换词,即可得到替换的单词信息。训练时统计了1000个常见的1-gram和2-gram词,作为替换词,每个替换词分别对应一个替换类别。不保留原词信息,根据替换信息向量引入新词信息,根据当前位置的词向量以及新词信息,具体是根据当前位置的词向量以及新词信息,计算操作类别属于各设定替换类别的概率,根据替换类别得到替换的单词信息。针对操作类别为删除,无需保留原词信息原词,无需引入新词信息新词。
[0073]
针对操作类别为变形,根据当前字符的词向量获得保留原词的信息,无需引入新词信息,根据当前位置的词向量计算操作类别属于各设定变形种类的概率及对应的变形后的新词信息。也就是说,变形操作类别是一个大类,根据变形形式,对应多个变形类别,其中,设定变形种类就是对应一个变形形式,即是一种变形类别。例如,单数变复数的变形形式中, s是一种变形种类, es是一种变形种类。训练时定义58个变形类。保留原词信息,根据当前位置的词向量以及原词信息计算操作类别属于各设定变形种类的概率及对应的变形后的单词信息,具体是根据当前位置的词向量以及原词信息计算操作类别属于各设定变形种类的概率,根据各变形种类得到变形后的单词信息。
[0074]
s410,根据各位置字符概率最高的操作类别确定该位置字符的纠错操作类别,并获取当纠错操作类别为替换、插入和变形时的单词信息,得到纠错操作信息。
[0075]
具体地,根据概率最高的操作类别确定纠错操作类别。例如,一个字符对应的操作类别中概率最高的操作类别为替换(w),则确定该字符的纠错操作类别为替换,根据得到单
词信息w,替换替换类别和单词信息,得到纠错操作信息。
[0076]
本实施例中,使用三个bert结构,根据每个模型计算的向量,预测每一个输入位置对应的操作类别,即可进行纠错。
[0077]
在另一个实施例中,文本纠错方法还包括:根据各位置字符的纠错操作类别,计算待纠错文本整句是否有错误,得到整句的分类结果。
[0078]
具体地,请结合图3,第二分类器在开始符[cls]输出位置,加上句子是否有错误的第二分类器f。[cls]可以看作整个输入文本的表示,因此可以用作整句分类输入。如果整个句子都没有错,模型其他位置预测的类应该都是拷贝类c。两个任务可以互相促进。
[0079]
p(y|x)=softmax(logit(w
th[cls]
))
[0080][0081]
本实施例中,通过增加整句是否错误的第二分类器,一定程度上避免了正确句子被纠正,提高了纠错效果。
[0082]
在一个实施例中,如图5所示,训练纠错模型的方法,包括:
[0083]
s502,获取训练样本集,训练样本集包括源语句,以及从源语句变到目标语句第一纠错操作信息。
[0084]
根据第一纠错操作信息对源语句进行纠正操作能够得到目标语句。
[0085]
具体地,训练样本集中的源语句中存在可能有错的语句,也存在正确的语句。目标语句是指对错误的源语句进行纠错后,得到的正确语句。训练模型的目标是训练完成后,能够输出纠错操作信息,即从源语句到目标语句,对源语句中的每个字符所要进行的纠正操作。因此,在准备训练样本集中,将源语句变到目标语句的第一纠错操作信息,作为源语句的标注数据。
[0086]
具体地,如图6所示,获取训练样本集的步骤,包括:
[0087]
s602,获取初始样本集,初始样本集包括源语句和源语句对应的目标语句。
[0088]
其中,初始样本集可以为网上公开的数据集,也可以是重新标注的数据集。数据集中的每条样本包括源语句(可能有错),目标语句(正确)。错误类型既可能包括语法错误,又可能包括拼写错误,样本形式如下:
[0089]
表1纠错语料样例
[0090][0091]
如表1所示,源语句的文本中下划线所示的字符存在错误,且还存在语法错误,需要插入新词,如policeman为单数,需要插入量词a。目标语句中下划线所示为修改,如将see替换为saw,插入量词a,插入定冠词the。
[0092]
s604,计算源语句变为目标语句要进行的编辑操作。
[0093]
编辑操作是指源语句变为目标语句所要进行的操作。具体是利用特定算法计算的编辑操作。其中,可利用编辑语句算法计算得到,如利用编辑距离算法levenshtein-dist,
计算源语句变为目标语句要进行的编辑操作。编辑距离算法levenshtein-dist可以参考文献:awasthi a,sarawagi s,goyal r,et al.parallel iterative edit models for local sequence transduction[j].arxiv preprint arxiv:1910.02893,2019。
[0094]
s606,根据编辑操作得到第一纠错操作信息,第一纠错操作信息包括操作类别。
[0095]
第一纠正操作信息是指为了消除目标语句和源语句的差异,按照编辑操作,对源语句变为目标语句所要进行的具体操作类别。如,操作包括拷贝、删除和插入。对于拼音文字(如英语等),纠错操作还可包括变形。
[0096]
拷贝是指不变,源语句和目标语句中同一位置的单词不变,说明源句中该位置的单词无误,对该单词进行拷贝操作即可得到目标语句中的单词。
[0097]
插入是指在源语句的开始、结束或两个字符之间插入字符。
[0098]
删除是删除原语句中的某个单词。
[0099]
变形是指根据语法对单词的形态进行变换,如单数变复数,单词的时态变形,单词主动语态变被动语态等。变形也可称为变换。
[0100]
以表2所示的语料转换进行说明。
[0101]
表2语料转换示例
[0102][0103]
如表2所示,针对源语句“fowler fed dog.”和目标语句“fowler fed the dog.”,首先利用编辑距离算法从源语句变成目标语句要进行的操作,-代表删除, 代表插入,空格代表不变。再根据编辑操作得到操作类别信息。
[0104]
操作类别信息包括copy(拷贝),delete(删除),replace(替换),append(插入),transformer(变形)。如表2所示,变形包括首字母大写,以及其他多种变形,例如 s, es, ing,-s,-es等。其中,拷贝和删除分别对应一个类别,但是替换,插入和变形对应于多个类别。以替换为例,替换不同词,对应于不同得类别。变形中的某一种变形,就归属为一类,例如 s就归属为一类。具体地,统计了1000个常见的1-gram和2-gram词,作为插入词和替换词,并且定义58个变形类。所以编辑的类别空间共1000*2 2 58=2060个。
[0105]
在实际应用中,如果待修正得单词对应的正确词不在插入词和替换词之中,就一直无法修正,但这也一定程度上避免了将一些正确词改成生僻词的错误,同时减少了计算参数,加快了速度。
[0106]
s608,根据初始样本集的源语句以及对应的操作信息,得到训练样本集。
[0107]
具体地,将操作信息作为源语句的标注,得到训练样本集。即,训练样本集中是将平行语料(源语句和目标语句)转化为源语句以及第一纠错操作信息的形式,这样纠错模型
训练可不使用端到端(seq2seq模型),只需要使用序列标注模型,预测每一个输入位置对应的纠正操作信息,即可进行纠错。
[0108]
在步骤s502之后,还包括利用训练样本对待训练的纠错模型进行训练的步骤,即步骤504。具体地,利用训练样本对待训练的纠错模型进行训练的步骤,包括:
[0109]
s5041,将训练样本集中的源语句输入待训练的纠错模型,生成预测的源语句的第二纠错操作信息。
[0110]
具体地,将待训练样本集中的源语句输入待训练的纠错模型,得到纠错模型预测的源语句的第二纠错操作信息。
[0111]
具体地,将源语句各字符的位置向量以及掩码向量,输入到第一bert结构,对除当前位置以外字符进行注意相邻字符进行注意,得到各位置字符的替换信息向量;将源语句各字符和各字符的位置向量,输入到第二bert结构,对其它所有字符进行注意,得到当各位置字符的词向量;将源语句各位置的掩码和相邻位置向量的均值,输入到第三bert结构,根据各位置字符的词向量、替换信息向量和插入信息向量,计算各位置字符的纠错操作属于不同操作类别的概率,以及操作类别为替换、插入和变形时的单词信息;根据各位置字符概率最高的操作类别确定该位置字符的纠错操作类别,并获取当纠错操作类别为替换、插入和变形时的单词信息,得到纠错操作信息。
[0112]
其中,根据各位置字符的词向量、替换信息向量和插入信息向量,计算各位置字符的纠错操作属于不同操作类别的概率,以及操作类别为替换、插入和变形时的单词信息,包括:保留原词信息,根据当前位置的词向量计算操作类别为拷贝的概率;保留原词信息,根据插入信息向量引入新词信息,根据当前位置的词向量、原词信息以及新词信息,计算操作类别为插入的概率及插入的新单词信息;不保留原词信息,根据替换信息向量引入新词信息,根据当前位置的词向量以及新词信息,计算操作类别为替换的概率及替换的新单词信息;不保留原词信息,根据当前位置的词向量计算操作类别为删除的概率;保留原词信息,根据当前位置的词向量以及原词信息计算操作类别属于各设定变形种类的概率及对应的变形后的新单词信息。
[0113]
也就是说,第二纠正操作信息通过操作类别,及其对应的是否保留原词信息,是否引入新词信息来进行预测。
[0114]
s5042,根据第一纠错信息和第二纠错信息之间的差异,调整待训练的纠错模型。
[0115]
具体地,根据标的源语句的第一纠错操作信息,与模型训练过程中预测的源语句的第二纠错操作的差异,进行反向传播,调整纠错模型的参数。
[0116]
s506,满足训练结束条件时,获得训练好的纠错模型。
[0117]
具体地,若未满足训练结束条件,则迭代执行利用训练样本对待训练的纠错模型进行训练的,直到满足训练结束条件,得到训练好的纠错模型。结束条件包括迭代次数达到最大迭代次数,或是模型输出精度达到要求。
[0118]
进一步地,纠错模型的损失函数对拷贝类别和删除类别进行惩罚。
[0119]
传统的文本编辑的模型没有考虑句子整体分类。除此之外,由于操作类别空间中,c类(拷贝类)和d类(删除类),对应的样本相比于其他类型的样本要多很多。因此需要对损失函数进行惩罚,避免纠错模型对这两种类别大规模的训练。对应每个训练样本源语句及其操作类别(x,ei),改进后的损失函数如下所示,其中,x为源句的单词信息,ei为操作类别,
λc,λd,λ都是超参数,λc∈(0,1),λd∈(0,1),λ∈(5,10):
[0120][0121]
在训练过程中,设置λc=0.4,λd=0.6,λ=10,bath-size=32,lr=2e-5;最小化上面的损失函数的值,训练模型,保存在验证集上最好的模型。
[0122]
本实施例中,训练得到纠错模型。对于输入文本,可以获得相应的纠错操作信息,根据源句和纠错操作信息,可以得到修正后的文本。以句子she see tom is catched by policeman in park at last night.为例,输入训练好的纠错模型,纠错过程表3所示:
[0123]
表3具体处理样例
[0124][0125]
首先,将句子she see tom is catched by policeman in park at last night.输入到纠错模型,纠错模型输出各位置字符的纠错操作信息,纠错操作信息包括操作类别,对特定类别,还包括新词信息,如copy表示复制(代表无误),replace(saw)表示替换为saw,delete(is)表示删除is,replace(caught)表示替换为caught,append(a)表示插入a,append(the)表示插入the,delete(at)表示插入at。
[0126]
针对纠错模型的输出,对于其它的复制类别,表示不需要操作,对于非复制类别,需要进行操作,则可模型输出得到需要做的修正包括replace(saw),delete(is),replace(caught),append(a),append(the),delete(at)。
[0127]
进而,根据纠错操作信息,对相应位置的字符进行处理,得到正确句子“she saw tom caught by a policeman in the park last night.”[0128]
应该理解的是,虽然图2、4-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、4-6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进
行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0129]
在一个实施例中,如图7所示,提供了一种文本纠错装置,包括:
[0130]
文本获取模块702,用于获取待纠错文本。
[0131]
预测模块704,用于通过训练好的纠错模型,输出待纠错文本中各字符的纠错操作信息,纠错操作信息包括纠错操作类别;纠错操作类别包括拷贝,删除、插入和替换;若纠错操作类别为替换和插入,纠错操作信息还包括纠正的新单词信息。
[0132]
纠错处理模块706,用于根据纠错操作信息对待纠错文本执行纠正操作,显示纠正操作结果。
[0133]
上述的文本纠错装置,对待纠错文本,利用纠错模型输出各字符的纠错操作信息,纠正操作信息包括了纠错操作类别,纠错操作类别包括拷贝,删除、插入和替换,以及变形,由于纠正模型输入的是对字符的明确的纠正操作,如删除操作、插入操作和替换操作,因此,能够实现纠错模型仅对错误字符本身进行纠正操作,因而能够避免纠错过程中对全部字符翻译导致的速度慢的问题,减小正确字符被改错的概率,提高了纠错效果。
[0134]
在另一个实施例中,预测模块,包括:
[0135]
第一结构,将待纠错文本各字符的位置向量以及掩码向量,输入到第一bert结构,对除当前位置以外的字符进行注意,得到各位置字符的替换信息向量;
[0136]
第二结构,用于将待纠错文本各字符和各字符的位置向量,输入到第二bert结构,对其他所有字符进行注意,得到各位置字符的词向量;
[0137]
第三结构,用于将待纠错文本各位置的掩码向量和相邻位置向量的均值,输入到第三bert结构,对其他所有字符进行注意,得到插入信息向量;
[0138]
分类器,用于根据各位置字符的词向量、替换信息向量和插入信息向量,计算各位置字符的纠错操作属于不同操作类别的概率,以及操作类别为替换、插入和变形时的纠正的新单词信息;
[0139]
纠正操作信息获取模块,用于根据各位置字符概率最高的操作类别确定该位置字符的纠错操作类别,并获取当纠错操作类别为替换、插入和变形时纠正的新单词信息,得到纠错操作信息。
[0140]
在另一个实施例中,分类器,用于保留原词信息,根据当前位置的词向量计算操作类别为拷贝的概率;保留原词信息,根据插入信息向量引入新词信息,根据当前位置的词向量、原词信息以及新词信息,计算操作类别为插入的概率及插入的新单词信息;不保留原词信息,根据替换信息向量引入新词信息,根据当前位置的词向量以及新词信息,计算操作类别为替换的概率及替换的新单词信息;不保留原词信息,根据当前位置的词向量计算操作类别为删除的概率;保留原词信息,根据当前位置的词向量以及原词信息计算操作类别属于各设定变形种类的概率及对应的变形后的新单词信息。
[0141]
在另一个实施例中,分类器还用于根据各位置字符的纠错操作类别,计算待纠错文本整句是否有错误,得到整句的分类结果。
[0142]
在另一个实施例中,文本分类装置还包括:
[0143]
训练集获取模块,用于获取训练样本集,训练样本集包括源语句,以及从源语句变到目标语句第一纠错操作信息;
[0144]
训练模块,用于将训练样本集中的源语句输入待训练的纠错模型,生成预测的源语句的第二纠错操作信息;根据第一纠错信息和第二纠错信息之间的差异,调整待训练的纠错模型。
[0145]
迭代控制模块,用于重复利用训练模块进行训练,直到满足训练结束条件,获得训练好的纠错模型。
[0146]
在另一个实施例中,训练集获取模块,包括:
[0147]
样本获取模块,用于获取初始样本集,初始样本集包括源语句和源语句对应的目标语句;
[0148]
编辑计算模块,用于计算源语句变为目标语句要进行的编辑操作;
[0149]
操作信息获取模块,用于根据编辑操作得到第一纠错操作信息,第一纠错操作信息包括操作类别;
[0150]
训练集处理模块,用于根据初始样本集的源语句以及对应的第一纠错操作信息,得到训练样本集。
[0151]
在另一个实施例中,纠错模型的损失函数对拷贝类别和删除类别进行惩罚。
[0152]
关于文本纠错装置的具体限定可以参见上文中对于文本纠错方法的限定,在此不再赘述。上述文本纠错装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0153]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、运营商网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种文本纠错方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0154]
本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0155]
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
[0156]
获取待纠错文本;
[0157]
通过训练好的纠错模型,输出待纠错文本中各字符的纠错操作信息,纠错操作信息包括纠错操作类别;纠错操作类别包括拷贝,删除、插入和替换;若纠错操作类别为替换和插入,纠错操作信息还包括纠正的新单词信息;
[0158]
根据纠错操作信息对待纠错文本执行纠正操作,显示纠正操作结果。
[0159]
在其中一个实施例中,纠错模型包括三个bert结构;通过训练好的纠错模型,输出
待纠错文本中各字符的纠错操作信息,包括:
[0160]
将待纠错文本各字符的位置向量以及掩码向量,输入到第一bert结构,对除当前位置以外的字符进行注意,得到各位置字符的替换信息向量;
[0161]
将待纠错文本各字符和各字符的位置向量,输入到第二bert结构,对其他所有字符进行注意,得到各位置字符的词向量;
[0162]
将待纠错文本各位置的掩码向量和相邻位置向量的均值,输入到第三bert结构,对其他所有字符进行注意,得到插入信息向量;
[0163]
根据各位置字符的词向量、替换信息向量和插入信息向量,计算各位置字符的纠错操作属于不同操作类别的概率,以及操作类别为替换、插入和变形时的纠正的新单词信息;
[0164]
根据各位置字符概率最高的操作类别确定该位置字符的纠错操作类别,并获取当纠错操作类别为替换、插入和变形时纠正的新单词信息,得到纠错操作信息。
[0165]
在其中一个实施例中,
[0166]
操作类别还包括变形,根据各位置字符的词向量、替换信息向量和插入信息向量,计算各位置字符的纠错操作属于不同操作类别的概率以及不同操作类别的单词信息,包括:
[0167]
根据当前位置的词向量,计算操作类别为拷贝或变形的概率,保留原词信息得到单词信息根据当前位置的词向量以及插入信息向量,计算操作类别为插入的概率,保留原词信息并根据插入信息向量引入新词信息,得到单词信息;
[0168]
根据当前位置的词向量以及替换信息向量,计算操作类别为替换的概率,不需要保留原词信息并根据替换信息向量引入新词信息,得到单词信息。
[0169]
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据各位置字符的纠错操作类别,计算待纠错文本整句是否有错误,得到整句的分类结果。
[0170]
在其中一个实施例中,训练纠错模型的方法,包括:
[0171]
获取训练样本集,训练样本集包括源语句,以及从源语句变到目标语句第一纠错操作信息;
[0172]
利用训练样本对待训练的纠错模型进行训练的步骤,包括:将训练样本集中的源语句输入待训练的纠错模型,生成预测的源语句的第二纠错操作信息;根据第一纠错信息和第二纠错信息之间的差异,调整待训练的纠错模型;
[0173]
重复利用训练样本对待训练的纠错模型进行训练的步骤,直到满足训练结束条件,获得训练好的纠错模型。
[0174]
在其中一个实施例中,获取训练样本集,包括:
[0175]
获取初始样本集,初始样本集包括源语句和源语句对应的目标语句;
[0176]
计算源语句变为目标语句要进行的编辑操作;
[0177]
根据编辑操作得到第一纠错操作信息,第一纠错操作信息包括操作类别;
[0178]
根据初始样本集的源语句以及对应的第一纠错操作信息,得到训练样本集。
[0179]
在其中一个实施例中,纠错模型的损失函数对拷贝类别和删除类别进行惩罚。
[0180]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
[0181]
获取待纠错文本;
[0182]
通过训练好的纠错模型,输出待纠错文本中各字符的纠错操作信息,纠错操作信息包括纠错操作类别;纠错操作类别包括拷贝,删除、插入和替换;若纠错操作类别为替换和插入,纠错操作信息还包括纠正的新单词信息;
[0183]
根据纠错操作信息对待纠错文本执行纠正操作,显示纠正操作结果。
[0184]
在其中一个实施例中,纠错模型包括三个bert结构;通过训练好的纠错模型,输出待纠错文本中各字符的纠错操作信息,包括:
[0185]
将待纠错文本各字符的位置向量以及掩码向量,输入到第一bert结构,对除当前位置以外的字符进行注意,得到各位置字符的替换信息向量;
[0186]
将待纠错文本各字符和各字符的位置向量,输入到第二bert结构,对其他所有字符进行注意,得到各位置字符的词向量;
[0187]
将待纠错文本各位置的掩码向量和相邻位置向量的均值,输入到第三bert结构,对其他所有字符进行注意,得到插入信息向量;
[0188]
根据各位置字符的词向量、替换信息向量和插入信息向量,计算各位置字符的纠错操作属于不同操作类别的概率,以及操作类别为替换、插入和变形时的纠正的新单词信息;
[0189]
根据各位置字符概率最高的操作类别确定该位置字符的纠错操作类别,并获取当纠错操作类别为替换、插入和变形时纠正的新单词信息,得到纠错操作信息。
[0190]
在其中一个实施例中,
[0191]
操作类别还包括变形,根据各位置字符的词向量、替换信息向量和插入信息向量,计算各位置字符的纠错操作属于不同操作类别的概率以及不同操作类别的单词信息,包括:
[0192]
根据当前位置的词向量,计算操作类别为拷贝或变形的概率,保留原词信息得到单词信息根据当前位置的词向量以及插入信息向量,计算操作类别为插入的概率,保留原词信息并根据插入信息向量引入新词信息,得到单词信息;
[0193]
根据当前位置的词向量以及替换信息向量,计算操作类别为替换的概率,不需要保留原词信息并根据替换信息向量引入新词信息,得到单词信息。
[0194]
在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据各位置字符的纠错操作类别,计算待纠错文本整句是否有错误,得到整句的分类结果。
[0195]
在其中一个实施例中,训练纠错模型的方法,包括:
[0196]
获取训练样本集,训练样本集包括源语句,以及从源语句变到目标语句第一纠错操作信息;
[0197]
利用训练样本对待训练的纠错模型进行训练的步骤,包括:将训练样本集中的源语句输入待训练的纠错模型,生成预测的源语句的第二纠错操作信息;根据第一纠错信息和第二纠错信息之间的差异,调整待训练的纠错模型;
[0198]
重复利用训练样本对待训练的纠错模型进行训练的步骤,直到满足训练结束条件,获得训练好的纠错模型。
[0199]
在其中一个实施例中,获取训练样本集,包括:
[0200]
获取初始样本集,初始样本集包括源语句和源语句对应的目标语句;
[0201]
计算源语句变为目标语句要进行的编辑操作;
[0202]
根据编辑操作得到第一纠错操作信息,第一纠错操作信息包括操作类别;
[0203]
根据初始样本集的源语句以及对应的第一纠错操作信息,得到训练样本集。
[0204]
在其中一个实施例中,纠错模型的损失函数对拷贝类别和删除类别进行惩罚。
[0205]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
[0206]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0207]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献