中文文本的纠错方法、装置和计算机设备
文献发布时间:2023-06-19 09:58:59
技术领域
本申请涉及人工智能领域的语义解析,特别是涉及到中文文本的纠错方法、装置和计算机设备。
背景技术
自然语言处理大多面对的对象为文本,几乎所有的文本中都存在着或多或少的词语或语法的错误,进行文本转写的任务中这个缺陷尤为突出。自然语言处理需要先识别用户的声音,然后转写为文本数据完成文本转写,大量的下游任务依赖着自然语言处理的文本转写,文本转写质量的好坏很大程度影响到下游任务的执行效果。但由于用户发音不准、语音通话信号不好或自然语言处理收音效果不佳等问题,导致转写出的文本质量不能满足实际应用需求。
业界通常通过增加自然语言处理模型的训练文本量,增加自然语言处理模型输出的准确率,这种方式成本较大,需要大量的人工标注,而且可能产生误纠错。另一种方式是通过文本编辑距离、常用词频率过滤以及特定规则等进行文本纠错,但上述方式均费时或费力、维护难度大,且不能灵活地适用于各种场景。
发明内容
本申请的主要目的为提供中文文本的纠错,旨在解决现有自然语言处理不能灵活地适用于各种场景的技术问题。
本申请提出一种中文文本的纠错方法,包括:
判断当前任务领域的词库中的词汇量是否达到预设条件;
若是,则在所述当前任务领域的词库中,构建预训练模型的语料训练集,训练所述当前任务领域的中文文本的纠错模型进行文本纠错,其中,所述纠错模型包括词嵌入层,探测层、编码层以及输出层;
若否,则通过文本语句中的拼音编辑距离、左右熵以及频数,进行文本纠错。
优选地,所述在所述当前任务领域的词库中,构建预训练模型的语料训练集,训练所述当前任务领域的中文文本的纠错模型进行文本纠错的步骤,包括:
在所述当前任务领域的词库中,构建预训练模型的语料训练集;
将指定语料对输入所述预训练模型的词嵌入层,得到所述指定语料对对应的第一矩阵,其中,所述指定语料对为所述语料训练集中的任意语料对;
将所述第一矩阵输入至探测层得到第一输出,将所述第一矩阵输入至编码层得到第二输出;
将所述第一输出和所述第二输出组成损失函数;
通过梯度下降在所述语料训练集上最小化所述损失函数;
判断所述损失函数是否达到最小值;
若是,则判定得到所述当前任务领域的中文文本的纠错模型;
将待分析中文语句输入所述中文文本的纠错模型,输出所述待分析中文语句经过纠错分析的纠正后语句。
优选地,所述在所述当前任务领域的词库中,构建预训练模型的语料训练集的步骤,包括:
统计指定语句中所有二元语法词的频数;
判断是否存在频数小于所述当前任务领域的词库的二元语法词阈值;
若否,则判定所述指定语句为正确语句的文本,否则删除所述指定语句;
构建所述指定语句对应的错误语句的文本;
将所述指定语句与所述指定语句对应的错误语句的文本组成语料对,存储于所述语料训练集中。
优选地,所述探测层包括依次连接的双向LSTM层、第一全连接层、拟合修正层和第一输出层,所述将所述第一矩阵输入至探测层得到第一输出的步骤,包括:
将所述第一矩阵输入所述双向LSTM层,得到所述指定语料对的探测量;
将所述探测量输入所述第一全连接层进行全连接,得到全连接量;
将所述全连接量输入所述拟合修正层,得到拟合修正矩阵;
将所述拟合修正矩阵输入所述第一输出层得到第一词向量矩阵,其中,所述第一词向量矩阵包括字符修改概率;
将所述第一词向量矩阵作为所述第一输出。
优选地,所述编码层包括多层编码,以及连接于多层编码之后的第二全连接层、第三全连接层和残差结构,所述将所述第一矩阵输入至编码层得到第二输出的步骤,包括:
将所述第一矩阵输入所述多层编码,得到编码结果;
将所述编码结果输入所述第二全连接层得到第一结果,将所述编码结果输入所述残差结构得到第二结果;
将所述第一结果和第二结果相加,输入至所述第三全连接层得到第二词向量矩阵,其中,所述第二词向量矩阵包括预测字符位置与字符对应的概率;
将所述第二词向量矩阵作为所述第二输出。
优选地,所述将所述第一输出和所述第二输出组成损失函数的步骤,包括:
根据计算公式L
优选地,所述通过文本语句中的拼音编辑距离、左右熵以及频数,进行文本纠错的步骤,包括:
获取文本语句中指定词与固定词典中的种子词之间的拼音编辑距离,获取所述指定词与位于所述指定词左右的相邻词之间的左右熵,获取所述指定词对应的出现频数;
将所述指定词对应的拼音编辑距离、左右熵以及出现频数,按照预设权重计算输出数值;
判断所述输出数值是否大于预设阈值;
若否,则判定所述指定词为需要修改的错误词,否则所述指定词为正确词;
根据所述指定词对应的拼音编辑距离,纠正所述指定词与所述固定词典中的种子词一致;
根据所述指定词的纠正方式,纠正所述文本语句中的所有错误词。
本申请还提供了一种中文文本的纠错装置,包括:
判断模块,用于判断当前任务领域的词库中的词汇量是否达到预设条件;
第一纠错模块,用于若达到预设条件,则在所述当前任务领域的词库中,构建预训练模型的语料训练集,训练所述当前任务领域的中文文本的纠错模型进行文本纠错,其中,所述纠错模型包括词嵌入层,探测层、编码层以及输出层;
第二纠错模块,用于若未达到预设条件,则通过文本语句中的拼音编辑距离、左右熵以及频数,进行文本纠错。
本申请还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法的步骤。
本申请通过在系统中同时设计两种纠错方式,当任务场景内的词汇量达到预训练模型的需求时,通过搭建包含词嵌入层,探测层、编码层以及输出层的预训练模型架构,通过优化的损失函数以及构建的训练语料进行了模型训练,使模型具有较好的中文文本判错、纠错的功能;当任务场景内的词汇量未达到预训练模型的需求时,通过文本语句中的拼音编辑距离、左右熵以及频数,进行文本纠错,系统易于维护,且灵活地适用于各种任务场景。
附图说明
图1本申请一实施例的中文文本的纠错方法流程示意图;
图2本申请一实施例中错误语句S2到修正后的正确语句S1之间的流程示意图;
图3本申请一实施例的中文文本的纠错系统流程示意图;
图4本申请一实施例的计算机设备内部结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
参照图1,本申请一实施例的中文文本的纠错方法,包括:
S1:判断当前任务领域的词库中的词汇量是否达到预设条件;
S2:若是,则在所述当前任务领域的词库中,构建预训练模型的语料训练集,训练所述当前任务领域的中文文本的纠错模型进行文本纠错,其中,所述纠错模型包括词嵌入层,探测层、编码层以及输出层;
S3:若否,则通过文本语句中的拼音编辑距离、左右熵以及频数,进行文本纠错。
本申请实施例中,上述任务领域包括但不限于电销场景领域,上述预设条件指词汇量达到预训练模型的训练需求,包括电销场景领域的词汇量达到万级词汇及以上。本申请的预训练模型为中文文本纠错模型,包括词嵌入层,探测层、编码层以及输出层。词嵌入层和编码层通过拆解BERT模型,从BERT模型中抽出,并增设了探测层,且在探测层中通过构建了双向LSTM层,以探测输入的文字中某个字符是否为真实,或者是否为修改过的字符。
对于词汇量未达到预训练模型训练要求的新场景领域,通过拼音编辑距离判断与词典中种子词的中文拼音的近似度,通过词语的左右熵以及其词语出现频数,预判词语的正确概率,通过上述三个因素综合评价词语的正确或错误,并进行文本纠正,在累积一定数据后进行预训练模型的训练。
本申请通过在纠错系统中同时设计两种纠错方式,当任务场景内的词汇量达到预训练模型的需求时,通过搭建包含词嵌入层,探测层、编码层以及输出层的预训练模型架构,通过优化的损失函数以及构建的训练语料进行了模型训练,使模型具有较好的中文文本判错、纠错的功能;当任务场景内的词汇量未达到预训练模型的需求时,通过文本语句中的拼音编辑距离、左右熵以及频数,进行文本纠错,系统易于维护,且灵活地适用于各种任务场景。
进一步地,所述在所述当前任务领域的词库中,构建预训练模型的语料训练集,训练所述当前任务领域的中文文本的纠错模型进行文本纠错的步骤S2,包括:
S20:在所述当前任务领域的词库中,构建预训练模型的语料训练集;
S21:将指定语料对输入所述预训练模型的词嵌入层,得到所述指定语料对对应的第一矩阵,其中,所述指定语料对为所述语料训练集中的任意语料对;
S22:将所述第一矩阵输入至探测层得到第一输出,将所述第一矩阵输入至编码层得到第二输出;
S23:将所述第一输出和所述第二输出组成损失函数;
S24:通过梯度下降在所述语料训练集上最小化所述损失函数;
S25:判断所述损失函数是否达到最小值;
S26:若是,则判定得到所述当前任务领域的中文文本的纠错模型;
S27:将待分析中文语句输入所述中文文本的纠错模型,输出所述待分析中文语句经过纠错分析的纠正后语句。
本申请实施例,通过确定正确语句,并通过随机替换正确语句中的某个词,构造正确语句对应的错误语句,形成正确语句、正确语句对应的错误语句组成的语料对,并进一步构建预训练模型的语料训练集。上述当前任务领域的词库,通过在通用字库中筛选与当前任务领域中的种子词有相近拼音或相近五笔的字形成。
在纠错模型训练过程中,首先将语料对输入词嵌入层形成语料对对应的矩阵。本申请词嵌入层的权重是一个大小为21128x768的矩阵E,表示通用中文语料中的21128个词,每个词为一个长度为768的向量。比如文本语句“我爱你中国”中,上述五个字符在语料中的顺序为3、66、10222、1324、7889,那么就会从矩阵E中分别抽出第3、66、10222、1324、7889行的向量,则上面文本语句就对应一个大小为5x768的矩阵。
本申请中,经过词嵌入层之后得到的第一矩阵,复制为相同的两份数据,分别进入探测层和编码层,得到两个输出,并通过两个输出组成损失函数,在训练集上最小化该损失函数,以达到调整纠错模型的各个参量,训练纠错模型的效果。
进一步地,在所述当前任务领域的词库中,构建预训练模型的语料训练集的步骤S20,包括:
S201:统计指定语句中所有二元语法词的频数;
S202:判断是否存在频数小于所述当前任务领域的词库的二元语法词阈值;
S203:若否,则判定所述指定语句为正确语句的文本,否则删除所述指定语句;
S204:构建所述指定语句对应的错误语句的文本;
S205:将所述指定语句与所述指定语句对应的错误语句的文本组成语料对,存储于所述语料训练集中。
本申请实施例建立了新的无人工标注的训练语料的形成方式,通过在大量无标注的预训练模型转出的文本语句中,统计每个文本语句中的二元语法词的出现频数,使用二元语法词的出现频数的平均数作为二元语法词阈值,确定正确语句。因为在大量的文本语句中,一个词正确表述的出现频数大大大于错误表述的出现频数,例如坐席正确表述“投保“的频数会大大大于对”投报“的表述,所以当二元语法词的频数小于语料中二元语法词的平均频数时,则认为是错误表述,从而丢弃包含错误表述二元语法词的文本语句。当文本句话中每个二元语法词的出现频数均大于该阈值时,则该文本句话为正确语句的文本。然后对正确语句的文本随机替换若干字,构造错误语句的文本,随机替换的词也需要满足大于语料中词出现频数的平均数要求,以保证替换词是个经常出现的词。本申请实施例的训练语料无需人工构建大量的训练文本对,训练预训练模型得到的纠错模型即可取得较好的纠错效果,减少了人力成本。如果配合少量的人工打标数据,纠错模型则可以取得更好的纠错效果。
上述二元语法词指相邻两个字的组合,比如“我爱你中国”中,每个二元语法词的出现频数均大于所有二元语法词的平均出现频数,说明该文本语句是正确语句的文本,一个错误语句和一个正确语句组成语料对,众多语料对形成训练数据,所以对正确语句的文本中随机选取20%左右的词,用语料库中其他词进行替换,进行构建语料对。例如“我爱你中国”中有4个二元语法词,分别为“我爱”、“爱你”、“你中”和“中国”,随机替换其中一个词,则4乘0.2向上取整为1,比如“你中”更换为“不是”,则构建的错误语句的文本为“我爱不是国”和上面的“我爱你中国”构建为一个语料对。
本申请的预训练模型是在海量的互联网文本上训练过的,包含了大量的语言文本知识,这可以省却人工打标的过程,减少了人力成本。且在电销特定垂直场景,保留电销场景的语料文本的拼音近似和五笔近似的字,大大缩减了纠错模型的预测空间,减少了输出层的参数量,从而提高了纠错模型在电销场景的准确率以及预测速度。
进一步地,所述探测层包括依次连接的双向LSTM层、第一全连接层、拟合修正层和第一输出层,所述将所述第一矩阵输入至探测层得到第一输出的步骤S22,包括:
S221:将所述第一矩阵输入所述双向LSTM层,得到所述指定语料对的探测量;
S222:将所述探测量输入所述第一全连接层进行全连接,得到全连接量;
S223:将所述全连接量输入所述拟合修正层,得到拟合修正矩阵;
S224:将所述拟合修正矩阵输入所述第一输出层得到第一词向量矩阵,其中,所述第一词向量矩阵包括字符修改概率;
S225:将所述第一词向量矩阵作为所述第一输出。
本申请实施例的探测层中增加拟合修正层,上述拟合修正层即为Layernormalization层,可防止训练过拟合,提升纠错模型在使用过程中的效果接近于训练后的效果。
本申请实施例中将文本语句“我爱你中国”定义为正确语句S1,通过上述构建语料对的方法,构建出修改后的错误语句“我爱不是国”,并定义为S2,S2通过纠错模型的词嵌入层后其会转换为一个5行768列的矩阵,再通过双向LSTM层和后面的第一全连接层以及Layernormalization层,将5行768列的矩阵转换为5行1列的矩阵,然后经输出层输出表示为O
进一步地,所述编码层包括多层编码,以及连接于多层编码之后的第二全连接层、第三全连接层和残差结构,所述将所述第一矩阵输入至编码层得到第二输出的步骤S22,包括:
S2201:将所述第一矩阵输入所述多层编码,得到编码结果;
S2202:将所述编码结果输入所述第二全连接层得到第一结果,将所述编码结果输入所述残差结构得到第二结果;
S2203:将所述第一结果和第二结果相加,输入至所述第三全连接层得到第二词向量矩阵,其中,所述第二词向量矩阵包括预测字符位置与字符对应的概率;
S2204:将所述第二词向量矩阵作为所述第二输出。
本申请的编码层由15个权重一致的层结构组成,提高预测精准度以及预测效率。本申请实施例经过词嵌入层和编码层处理后的文本语句,会复制为两份,第一份流入第二全连接层,然后得到的输出结果和第二份文本语句依据原文本语句的词排列次序依次相加组合,形成残差结构,预测出每个字符位置为某个字符的概率。本申请实施例通过残差结构配合全连接层可以很好的保留原文本语句的语义信息,提高预测精准度。
进一步地,将所述第一输出和所述第二输出组成损失函数的步骤S23,包括:
S231:根据计算公式L
本申请通过优化损失函数训练预训练模型,通过梯度下降法在训练集上最小化上述损失函数即可得到训练后的纠错模型。上述损失函数分为两个部分,第一部分为探测层和输入的交叉熵L
进一步地,通过文本语句中的拼音编辑距离、左右熵以及频数,进行文本纠错的步骤S3,包括:
S31:获取文本语句中指定词与固定词典中的种子词之间的拼音编辑距离,获取所述指定词与位于所述指定词左右的相邻词之间的左右熵,获取所述指定词对应的出现频数;
S32:将所述指定词对应的拼音编辑距离、左右熵以及出现频数,按照预设权重计算输出数值;
S33:判断所述输出数值是否大于预设阈值;
S34:若否,则判定所述指定词为需要修改的错误词,否则所述指定词为正确词;
S35:根据所述指定词对应的拼音编辑距离,纠正所述指定词与所述固定词典中的种子词一致;
S36:根据所述指定词的纠正方式,纠正所述文本语句中的所有错误词。
本申请实施例对于新业务场景,由于没有该业务场景对应的积累数据,从而无法及时通过上述方法构建训练集,本申请实施例通过待预测词语与种子词之间的中文拼音近似度、待预测词语在文本语句中的左右熵以及其出现频数,进行文本语句中的词语纠错,在累积一定数据后再构建进行预训练模型训练的训练集。
上述种子词通过固定容易出错的领域内的词语得到,例如”投保”常常被打成“投报”,则固定种子词“投保”。由于“保”和“报”拼音近似,所以可以根据拼音的编辑距离进行纠正。上述左右熵:指待预测二元语法词在文本语句中的左熵和右熵,因为熵越大说明待预测二元语法词周边词汇越丰富,熵代表了不稳定性,其左右熵越高说明词语越可能是一个正确词,因为错误词可搭配的种类很少。本申请通过计算左右熵的最小值,如果最小值低于阈值,则说明该待预测二元语法词不能组成词语。上述出现频数:就是正确词的出现频率远远大于低频率的错误词的出现频率。检测出错误词后通过上面的拼音编辑距离进行修改。
上述拼音编辑距离指一个拼音中通过增、删、改等方式变为另外一个拼音需要的次数。例如“保”和“报”的拼音都是bao,那么拼音编辑距离为0;比如“发”和“方”的拼音分别为“fa”和“fang”,拼音编辑距离为2,即增加了n和g。本申请实施例的电销业务场景,只修改距离种子词的拼音编辑距离小于等于2的候选词。
本申请实施例中,由于为拼音编辑距离越小越好,左右熵和频数越大越好,通过拼音编辑距离的倒数、左右熵以及频数,匹配不同的权重组成计算公式,计算输出数值。上述拼音编辑距离的倒数权重优选0.6、左右熵的权重优选0.2以及频数的权重优选0.2。当拼音编辑距离为0的时候,说明该词语就是词库里面的种子词。本申请中拼音编辑距离大于零。当输出数值大于设置的预设阈值时,则认为是正确词,否则为需要修改的错误词。上述预设阈值可以根据测试语料先随机设置一个,再根据预设预测精准度逐步修正。
本申请的中文文本的纠错系统部署于区块链,纠错过程数据存储于区块链。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
区块链底层平台可以包括用户管理、基础服务、智能合约以及运营监控等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营监控模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监控网络情况、监控节点设备健康状态等。
参照图3,本申请一实施例的中文文本的纠错装置,包括:
判断模块1,用于判断当前任务领域的词库中的词汇量是否达到预设条件;
第一纠错模块2,用于若达到预设条件,则在所述当前任务领域的词库中,构建预训练模型的语料训练集,训练所述当前任务领域的中文文本的纠错模型进行文本纠错,其中,所述纠错模型包括词嵌入层,探测层、编码层以及输出层;
第二纠错模块3,用于若未达到预设条件,则通过文本语句中的拼音编辑距离、左右熵以及频数,进行文本纠错。
本申请中装置部分的实施例解释,与方法部分的实施例解释一致,可对应参照使用,不赘述。
进一步地,第一纠错模块2,包括:
构建单元,用于在所述当前任务领域的词库中,构建预训练模型的语料训练集;
第一输入单元,用于将指定语料对输入所述预训练模型的词嵌入层,得到所述指定语料对对应的第一矩阵,其中,所述指定语料对为所述语料训练集中的任意语料对;
第二输入单元,用于将所述第一矩阵输入至探测层得到第一输出,将所述第一矩阵输入至编码层得到第二输出;
组成单元,用于将所述第一输出和所述第二输出组成损失函数;
最小化单元,用于通过梯度下降在所述语料训练集上最小化所述损失函数;
第一判断单元,用于判断所述损失函数是否达到最小值;
第一判定单元,用于若达到最小值,则判定得到所述当前任务领域的中文文本的纠错模型;
第三输入单元,用于将待分析中文语句输入所述中文文本的纠错模型,输出所述待分析中文语句经过纠错分析的纠正后语句。
进一步地,构建单元包括:
统计子单元,用于统计指定语句中所有二元语法词的频数;
判断子单元,用于判断是否存在频数小于所述当前任务领域的词库的二元语法词阈值;
判定子单元,用于若不小于所述当前任务领域的词库的二元语法词阈值,则判定所述指定语句为正确语句的文本,否则删除所述指定语句;
构建子单元,用于构建所述指定语句对应的错误语句的文本;
存储子单元,用于将所述指定语句与所述指定语句对应的错误语句的文本组成语料对,存储于所述语料训练集中。
进一步地,所述探测层包括依次连接的双向LSTM层、第一全连接层、拟合修正层和第一输出层,第二输入单元包括:
第一输入子单元,用于将所述第一矩阵输入所述双向LSTM层,得到所述指定语料对的探测量;
第二输入子单元,用于将所述探测量输入所述第一全连接层进行全连接,得到全连接量;
第三输入子单元,用于将所述全连接量输入所述拟合修正层,得到拟合修正矩阵;
第四输入子单元,用于将所述拟合修正矩阵输入所述第一输出层得到第一词向量矩阵,其中,所述第一词向量矩阵包括字符修改概率;
第一作为子单元,用于将所述第一词向量矩阵作为所述第一输出。
进一步地,所述编码层包括多层编码,以及连接于多层编码之后的第二全连接层、第三全连接层和残差结构,第二输入单元包括:
第五输入子单元,用于将所述第一矩阵输入所述多层编码,得到编码结果;
第六输入子单元,用于将所述编码结果输入所述第二全连接层得到第一结果,将所述编码结果输入所述残差结构得到第二结果;
第七输入子单元,用于将所述第一结果和第二结果相加,输入至所述第三全连接层得到第二词向量矩阵,其中,所述第二词向量矩阵包括预测字符位置与字符对应的概率;
第二作为子单元,用于将所述第二词向量矩阵作为所述第二输出。
进一步地,组成单元包括:
得到子单元,用于根据计算公式L
进一步地,第二纠错模块3,包括:
获取单元,用于获取文本语句中指定词与固定词典中的种子词之间的拼音编辑距离,获取所述指定词与位于所述指定词左右的相邻词之间的左右熵,获取所述指定词对应的出现频数;
计算单元,用于将所述指定词对应的拼音编辑距离、左右熵以及出现频数,按照预设权重计算输出数值;
第一判断单元,用于判断所述输出数值是否大于预设阈值;
第二判定单元,用于若不大于预设阈值,则判定所述指定词为需要修改的错误词,否则所述指定词为正确词;
第一纠正单元,用于根据所述指定词对应的拼音编辑距离,纠正所述指定词与所述固定词典中的种子词一致;
第二纠正单元,用于根据所述指定词的纠正方式,纠正所述文本语句中的所有错误词。
参照图4,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储中文文本的纠错过程需要的所有数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现中文文本的纠错方法。
上述处理器执行上述中文文本的纠错方法,包括:判断当前任务领域的词库中的词汇量是否达到预设条件;若是,则在所述当前任务领域的词库中,构建预训练模型的语料训练集,训练所述当前任务领域的中文文本的纠错模型进行文本纠错,其中,所述纠错模型包括词嵌入层,探测层、编码层以及输出层;若否,则通过文本语句中的拼音编辑距离、左右熵以及频数,进行文本纠错。
上述计算机设备,通过在系统中同时设计两种纠错方式,当任务场景内的词汇量达到预训练模型的需求时,通过搭建包含词嵌入层,探测层、编码层以及输出层的预训练模型架构,通过优化的损失函数以及构建的训练语料进行了模型训练,使模型具有较好的中文文本判错、纠错的功能;当任务场景内的词汇量未达到预训练模型的需求时,通过文本语句中的拼音编辑距离、左右熵以及频数,进行文本纠错,系统易于维护,且灵活地适用于各种任务场景。
在一个实施例中,上述处理器在所述当前任务领域的词库中,构建预训练模型的语料训练集,训练所述当前任务领域的中文文本的纠错模型进行文本纠错的步骤,包括:在所述当前任务领域的词库中,构建预训练模型的语料训练集;将指定语料对输入所述预训练模型的词嵌入层,得到所述指定语料对对应的第一矩阵,其中,所述指定语料对为所述语料训练集中的任意语料对;将所述第一矩阵输入至探测层得到第一输出,将所述第一矩阵输入至编码层得到第二输出;将所述第一输出和所述第二输出组成损失函数;通过梯度下降在所述语料训练集上最小化所述损失函数;判断所述损失函数是否达到最小值;若是,则判定得到所述当前任务领域的中文文本的纠错模型;将待分析中文语句输入所述中文文本的纠错模型,输出所述待分析中文语句经过纠错分析的纠正后语句。
在一个实施例中,上述处理器在所述当前任务领域的词库中,构建预训练模型的语料训练集的步骤,包括:统计指定语句中所有二元语法词的频数;判断是否存在频数小于所述当前任务领域的词库的二元语法词阈值;若否,则判定所述指定语句为正确语句的文本,否则删除所述指定语句;构建所述指定语句对应的错误语句的文本;将所述指定语句与所述指定语句对应的错误语句的文本组成语料对,存储于所述语料训练集中。
在一个实施例中,所述探测层包括依次连接的双向LSTM层、第一全连接层、拟合修正层和第一输出层,上述处理器将所述第一矩阵输入至探测层得到第一输出的步骤,包括:将所述第一矩阵输入所述双向LSTM层,得到所述指定语料对的探测量;将所述探测量输入所述第一全连接层进行全连接,得到全连接量;将所述全连接量输入所述拟合修正层,得到拟合修正矩阵;将所述拟合修正矩阵输入所述第一输出层得到第一词向量矩阵,其中,所述第一词向量矩阵包括字符修改概率;将所述第一词向量矩阵作为所述第一输出。
在一个实施例中,所述编码层包括多层编码,以及连接于多层编码之后的第二全连接层、第三全连接层和残差结构,上述处理器将所述第一矩阵输入至编码层得到第二输出的步骤,包括:将所述第一矩阵输入所述多层编码,得到编码结果;将所述编码结果输入所述第二全连接层得到第一结果,将所述编码结果输入所述残差结构得到第二结果;将所述第一结果和第二结果相加,输入至所述第三全连接层得到第二词向量矩阵,其中,所述第二词向量矩阵包括预测字符位置与字符对应的概率;将所述第二词向量矩阵作为所述第二输出。
在一个实施例中,上述处理器将所述第一输出和所述第二输出组成损失函数的步骤,包括:根据计算公式L
在一个实施例中,上述处理器通过文本语句中的拼音编辑距离、左右熵以及频数,进行文本纠错的步骤,包括:获取文本语句中指定词与固定词典中的种子词之间的拼音编辑距离,获取所述指定词与位于所述指定词左右的相邻词之间的左右熵,获取所述指定词对应的出现频数;将所述指定词对应的拼音编辑距离、左右熵以及出现频数,按照预设权重计算输出数值;判断所述输出数值是否大于预设阈值;若否,则判定所述指定词为需要修改的错误词,否则所述指定词为正确词;根据所述指定词对应的拼音编辑距离,纠正所述指定词与所述固定词典中的种子词一致;根据所述指定词的纠正方式,纠正所述文本语句中的所有错误词。
本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现中文文本的纠错方法,包括:判断当前任务领域的词库中的词汇量是否达到预设条件;若是,则在所述当前任务领域的词库中,构建预训练模型的语料训练集,训练所述当前任务领域的中文文本的纠错模型进行文本纠错,其中,所述纠错模型包括词嵌入层,探测层、编码层以及输出层;若否,则通过文本语句中的拼音编辑距离、左右熵以及频数,进行文本纠错。
上述计算机可读存储介质,通过在系统中同时设计两种纠错方式,当任务场景内的词汇量达到预训练模型的需求时,通过搭建包含词嵌入层,探测层、编码层以及输出层的预训练模型架构,通过优化的损失函数以及构建的训练语料进行了模型训练,使模型具有较好的中文文本判错、纠错的功能;当任务场景内的词汇量未达到预训练模型的需求时,通过文本语句中的拼音编辑距离、左右熵以及频数,进行文本纠错,系统易于维护,且灵活地适用于各种任务场景。
在一个实施例中,上述处理器在所述当前任务领域的词库中,构建预训练模型的语料训练集,训练所述当前任务领域的中文文本的纠错模型进行文本纠错的步骤,包括:在所述当前任务领域的词库中,构建预训练模型的语料训练集;将指定语料对输入所述预训练模型的词嵌入层,得到所述指定语料对对应的第一矩阵,其中,所述指定语料对为所述语料训练集中的任意语料对;将所述第一矩阵输入至探测层得到第一输出,将所述第一矩阵输入至编码层得到第二输出;将所述第一输出和所述第二输出组成损失函数;通过梯度下降在所述语料训练集上最小化所述损失函数;判断所述损失函数是否达到最小值;若是,则判定得到所述当前任务领域的中文文本的纠错模型;将待分析中文语句输入所述中文文本的纠错模型,输出所述待分析中文语句经过纠错分析的纠正后语句。
在一个实施例中,上述处理器在所述当前任务领域的词库中,构建预训练模型的语料训练集的步骤,包括:统计指定语句中所有二元语法词的频数;判断是否存在频数小于所述当前任务领域的词库的二元语法词阈值;若否,则判定所述指定语句为正确语句的文本,否则删除所述指定语句;构建所述指定语句对应的错误语句的文本;将所述指定语句与所述指定语句对应的错误语句的文本组成语料对,存储于所述语料训练集中。
在一个实施例中,所述探测层包括依次连接的双向LSTM层、第一全连接层、拟合修正层和第一输出层,上述处理器将所述第一矩阵输入至探测层得到第一输出的步骤,包括:将所述第一矩阵输入所述双向LSTM层,得到所述指定语料对的探测量;将所述探测量输入所述第一全连接层进行全连接,得到全连接量;将所述全连接量输入所述拟合修正层,得到拟合修正矩阵;将所述拟合修正矩阵输入所述第一输出层得到第一词向量矩阵,其中,所述第一词向量矩阵包括字符修改概率;将所述第一词向量矩阵作为所述第一输出。
在一个实施例中,所述编码层包括多层编码,以及连接于多层编码之后的第二全连接层、第三全连接层和残差结构,上述处理器将所述第一矩阵输入至编码层得到第二输出的步骤,包括:将所述第一矩阵输入所述多层编码,得到编码结果;将所述编码结果输入所述第二全连接层得到第一结果,将所述编码结果输入所述残差结构得到第二结果;将所述第一结果和第二结果相加,输入至所述第三全连接层得到第二词向量矩阵,其中,所述第二词向量矩阵包括预测字符位置与字符对应的概率;将所述第二词向量矩阵作为所述第二输出。
在一个实施例中,上述处理器将所述第一输出和所述第二输出组成损失函数的步骤,包括:根据计算公式L
在一个实施例中,上述处理器通过文本语句中的拼音编辑距离、左右熵以及频数,进行文本纠错的步骤,包括:获取文本语句中指定词与固定词典中的种子词之间的拼音编辑距离,获取所述指定词与位于所述指定词左右的相邻词之间的左右熵,获取所述指定词对应的出现频数;将所述指定词对应的拼音编辑距离、左右熵以及出现频数,按照预设权重计算输出数值;判断所述输出数值是否大于预设阈值;若否,则判定所述指定词为需要修改的错误词,否则所述指定词为正确词;根据所述指定词对应的拼音编辑距离,纠正所述指定词与所述固定词典中的种子词一致;根据所述指定词的纠正方式,纠正所述文本语句中的所有错误词。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双速据率SDRAM(SSRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
- 中文文本的纠错方法、装置和计算机设备
- 中文文本纠错系统、方法、装置及计算机可读存储介质