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

文本纠错方法、装置、电子设备及存储介质与流程

2022-06-05 14:36:45 来源:中国专利 TAG:


1.本公开涉及自然语言处理技术领域和金融领域,更具体地,涉及一种文本纠错方法、装置、电子设备和存储介质。


背景技术:

2.随着企业业务的拓展,各个业务中需要涉及的文本的数量也随之增多。例如,涉及软件的项目在实现阶段需要撰写程序设计书,而程序设计书的质量在很大程度上决定了开发人员代码的质量和整个研发项目的完成度。
3.相关技术中的文本纠错工具可以实现广泛的文本文字特征的纠错,例如拼写纠错、语法纠错、标点纠错等。然而,每个企业的业务文本的用语规范、命名规范都有所区别,相关技术中的文本纠错工具无法从企业规范的维度对文本进行检测和校对。


技术实现要素:

4.有鉴于此,本公开提供了一种文本纠错方法、一种文本纠错装置、一种电子设备、一种可读存储介质和一种计算机程序产品。
5.本公开的一个方面提供了一种文本纠错方法,包括:响应于获取待处理文本,使用切词器对上述待处理文本进行切分,得到词汇集合;分别对上述词汇集合中的多个初始词汇进行预处理,以将上述词汇集合转换为第一文本矩阵;将上述第一文本矩阵输入与上述待处理文本的文本种类对应的文本纠错模型中,得到分类结果向量,其中,上述分类结果向量中的第一个元素表征上述待处理文本的分值属性,上述分类结果向量中的其他元素表征上述词汇集合中的初始词汇的错误类型;以及基于上述待处理文本的分值属性和上述词汇集合中的初始词汇的错误类型,从纠错映射表中确定至少一个可选择词汇,以便于响应于针对至少一个上述可选择词汇中目标词汇的选择操作,使用上述目标词汇替换上述初始词汇。
6.根据本公开的实施例,上述文本纠错模型包括文本处理模型、第一线性层、第二线性层和分类器;上述将上述第一文本矩阵输入与上述待处理文本的文本种类对应的文本纠错模型中,得到分类结果向量,包括:将上述第一文本矩阵输入上述文本处理模型中,得到第一输出矩阵;将上述第一输出矩阵的第一列输入到上述第一线性层中,得到上述分值属性;将上述第一输出矩阵的其他列输入到上述第二线性层中,得到第二输出矩阵;将上述第二输出矩阵输入到上述分类器中,得到输出向量;以及将上述分值属性与上述输出向量拼接,得到上述分类结果向量。
7.根据本公开的实施例,上述方法还包括:解析历史文本库中的历史文本,得到训练样本集,其中,上述历史文本的文本种类和上述待处理文本的文本种类相同,上述训练样本集中包括多个样本四元组,上述样本四元组是由样本文本、样本分值属性、样本错误位置索引和样本错误类型四个元素组成的;以及使用上述训练样本集来训练初始模型,以得到上述文本处理模型。
8.根据本公开的实施例,上述使用上述训练样本集来训练初始模型,包括:对样本文本进行预处理,以将上述样本文本转换为第二文本矩阵;将上述第二文本矩阵输入初始模型中,得到第三输出矩阵;将上述第三输出矩阵的第一列输入到上述第一线性层中,得到预测分值属性;基于上述预测分值属性和上述文本分值属性,计算得到第一损失值;将上述第三输出矩阵的其他列输入到上述第二线性层中,得到第四输出矩阵;基于上述第四输出矩阵、上述样本错误位置索引和样本错误类型,计算得到第二损失值;以及基于上述第一损失值和上述第二损失值,调整上述初始模型的模型参数。
9.根据本公开的实施例,上述方法还包括:解析上述历史文本库中的上述历史文本,以获取上述历史文本中与上述样本错误类型对应的至少一个修正词汇;根据与上述样本错误类型对应的至少一个修正词汇和上述样本错误位置索引,在上述训练样本集的基础上构建测试样本集;将上述测试样本集输入上述文本处理模型中,以确定与至少一个上述修正词汇对应的修正分值属性;以及根据至少一个上述修正词汇和上述修正分值属性,构建上述纠错映射表。
10.根据本公开的实施例,上述基于上述待处理文本的分值属性和上述词汇集合中的初始词汇的错误类型,从纠错映射表中确定至少一个可选择词汇,包括:从上述纠错映射表中确定与上述初始词汇的错误类型对应的至少一个目标修正词汇;确定与上述目标修正词汇对应的目标修正分值属性;以及在上述目标修正分值属性大于上述待处理文本的分值属性的情况下,确定与上述目标修正分值属性对应的上述目标修正词汇为上述可选择词汇。
11.根据本公开的实施例,上述分别对上述词汇集合中的多个初始词汇进行预处理,以将上述词汇集合转换为第一文本矩阵,包括:将预设编码向量转换为第一输入向量;对于上述词汇集合中的每个初始词汇,将上述初始词汇转化为第二输入向量;以及将上述第一输入向量和与多个上述初始词汇对应的多个上述第二输入向量进行拼接,以得到上述第一文本矩阵。
12.根据本公开的实施例,上述将预设编码向量转换为第一输入向量,包括:对上述预设编码向量进行位置编码,得到第一位置编码向量;以及将上述预设编码向量与上述第一位置编码向量相加,得到上述第一输入向量。
13.根据本公开的实施例,上述将上述初始词汇转化为第二输入向量,包括:将上述初始词汇映射为词汇标识;对上述词汇标识进行词嵌入处理,得到词向量;对上述词向量进行位置编码,得到第二位置编码向量;以及将上述词向量与上述第二位置编码向量相加,得到上述第二输入向量。
14.本公开的另一个方面提供了一种文本纠错装置,包括:第一处理模块,用于响应于获取待处理文本,使用切词器对上述待处理文本进行切分,得到词汇集合;预处理模块,用于分别对上述词汇集合中的多个初始词汇进行预处理,以将上述词汇集合转换为第一文本矩阵;第二处理模块,用于将上述第一文本矩阵输入与上述待处理文本的文本种类对应的文本纠错模型中,得到分类结果向量,其中,上述分类结果向量中的第一个元素表征上述待处理文本的分值属性,上述分类结果向量中的其他元素表征上述词汇集合中的初始词汇的错误类型;以及第一确定模块,用于基于上述待处理文本的分值属性和上述词汇集合中的初始词汇的错误类型,从纠错映射表中确定至少一个可选择词汇,以便于响应于针对至少一个上述可选择词汇中目标词汇的选择操作,使用上述目标词汇替换上述初始词汇。
15.本公开的另一方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个指令,其中,当上述一个或多个指令被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上所述的方法。
16.本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被执行时用于实现如上所述的方法。
17.本公开的另一方面提供了一种计算机程序产品,上述计算机程序产品包括计算机可执行指令,上述指令在被执行时用于实现如上所述的方法。
18.根据本公开的实施例,在获取待处理文本后,可以使用与该待处理文本的文本种类对应的文本纠错模型对待处理文本进行评分和错误检测,并分别生成对应于每个错误词汇的可选择词汇列表,用户可以通过选择操作从可选择词汇列表中选择目标词汇来实现词汇的替换,以实现文本的纠错。通过上述方式,可以至少部分地克服了相关技术中的文本纠错工具无法从企业规范的维度对文本进行检测和校对的技术问题,从而有效提高了文本的质量,同时也降低了文本审核的人力成本和时间成本。
附图说明
19.通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
20.图1示意性示出了根据本公开实施例的可以应用文本纠错方法和装置的示例性系统架构。
21.图2示意性示出了根据本公开实施例的文本纠错方法的流程图。
22.图3a示意性示出了根据本公开实施例的bert模型的结构示意图。
23.图3b示意性示出了根据本公开实施例的文本处理模型的训练方法的示意图。
24.图4示意性示出了根据本公开实施例的纠错映射表的构建方法的流程图。
25.图5示意性示出了根据本公开实施例的文本纠错装置的框图。
26.图6示意性示出了根据本公开实施例的适于实现文本纠错方法的电子设备的框图。
具体实施方式
27.以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
28.在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
29.在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
30.在使用类似于“a、b和c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b和c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。在使用类似于“a、b或c等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有a、b或c中至少一个的系统”应包括但不限于单独具有a、单独具有b、单独具有c、具有a和b、具有a和c、具有b和c、和/或具有a、b、c的系统等)。
31.本公开的实施例提供了一种文本纠错方法、装置、电子设备、存储介质和计算机程序产品,可以用于实现中文文本,例如程序涉及说明书等的自动理解与纠错,并提供改错检测。该方法包括:响应于获取待处理文本,使用切词器对待处理文本进行切分,得到词汇集合;分别对词汇集合中的多个初始词汇进行预处理,以将词汇集合转换为第一文本矩阵;将第一文本矩阵输入与待处理文本的文本种类对应的文本纠错模型中,得到分类结果向量;以及基于待处理文本的分值属性和词汇集合中的初始词汇的错误类型,从纠错映射表中确定至少一个可选择词汇,以便于响应于针对至少一个可选择词汇中目标词汇的选择操作,使用目标词汇替换初始词汇。
32.需要说明的是,本公开实施例确定的文本纠错方法和装置可用于自然语言处理技术领域或金融领域,例如,可以应用在手机银行移动应用程序的开发阶段,对程序设计说明书进行纠错。本公开实施例确定的文本纠错方法和装置也可用于除人工智能领域和金融领域之外的任意领域,本公开实施例确定的文本纠错方法和装置的应用领域不做限定。
33.在本公开的技术方案中,所涉及的用户个人信息的获取,存储和应用等,均符合相关法律法规的规定,采取了必要保密措施,且不违背公序良俗。
34.在本公开的技术方案中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
35.图1示意性示出了根据本公开实施例的可以应用文本纠错方法和装置的示例性系统架构。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
36.如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。
37.终端设备101、102、103可以是具有显示屏和输入装置且支持网络通信的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等。用户可以通过终端设备101、102、103的输入装置来输入文本,或者,用户也可以通过终端设备101、102、103从网络中获取文本。
38.网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线和/或无线通信链路等等。
39.服务器105可以是提供各种服务的服务器,例如,对文本纠错模型的训练和使用提供计算资源的后台服务器。
40.需要说明的是,本公开实施例所提供的文本纠错方法一般可以由服务器105执行。相应地,本公开实施例所提供的文本纠错装置一般可以设置于服务器105中。本公开实施例
所提供的文本纠错方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的文本纠错装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。或者,本公开实施例所提供的文本纠错方法也可以由终端设备101、102、或103执行,或者也可以由不同于终端设备101、102、或103的其他终端设备执行。相应地,本公开实施例所提供的文本纠错装置也可以设置于终端设备101、102、或103中,或设置于不同于终端设备101、102、或103的其他终端设备中。
41.例如,待处理文本可以是根据用户在终端设备101、102、或103中的任意一个(例如,终端设备101,但不限于此)上的输入操作获取的,或者,待处理文本也可以存储在外部存储设备上并可以导入到终端设备101中。终端设备101可以在本地执行本公开实施例所提供的文本纠错方法,或者将待处理文本发送到其他终端设备、服务器、或服务器集群,并由接收该待处理文本的其他终端设备、服务器、或服务器集群来执行本公开实施例所提供的文本纠错方法。
42.应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
43.图2示意性示出了根据本公开实施例的文本纠错方法的流程图。
44.如图2所示,该方法包括操作s201~s204。
45.需要说明的是,本公开实施例中的流程图所示的操作除非明确说明不同操作之间存在执行的先后顺序,或者不同操作在技术实现上存在执行的先后顺序,否则,多个操作之间的执行顺序可以不分先后,多个操作也可以同时执行。
46.在操作s201,响应于获取待处理文本,使用切词器对待处理文本进行切分,得到词汇集合。
47.在操作s202,分别对词汇集合中的多个初始词汇进行预处理,以将词汇集合转换为第一文本矩阵。
48.在操作s203,将第一文本矩阵输入与待处理文本的文本种类对应的文本纠错模型中,得到分类结果向量。分类结果向量中的第一个元素表征待处理文本的分值属性,分类结果向量中的其他元素表征词汇集合中的初始词汇的错误类型。
49.在操作s204,基于待处理文本的分值属性和词汇集合中的初始词汇的错误类型,从纠错映射表中确定至少一个可选择词汇,以便于响应于针对至少一个可选择词汇中目标词汇的选择操作,使用目标词汇替换初始词汇。
50.根据本公开的实施例,待处理文本可以是具体业务中使用的文本。待处理文本具有对应的文本种类,该文本种类可以是按照具体业务内容进行划分的。例如,文本种类可以包括程序设计说明书、产品需求书等。
51.根据本公开的实施例,待处理文本可以是响应于触发预设事件而获取的。预设事件可以包括任意表征用户暂停或结束文本输入的事件。例如,预设事件可以是检测到用户输入了一个句号或分号,相应地,待处理文本可以是与该句号或分号关联的一段文字。再例如,预设事件还可以是检测到用户进行了窗口切换、在文本编辑应用中发送了文本保存指令、关闭了文本编辑应用等。
52.根据本公开的实施例,切词器可以实现对中文文本的切分,切词器的来源不作限
定,例如,切词器可以是python的transformers工具包中提供的中文bert切词器。
53.根据本公开的实施例,词汇集合中的多个初始词汇可以按照待处理文本中词汇的位置顺序排列。
54.根据本公开的实施例,预处理可以包括但不限于词嵌入、词编码、词性筛选、删除标点符号等操作,在此不作限定。
55.根据本公开的实施例,每个初始词汇可以转换为一个列向量,将多个列向量按初始词汇的位置顺序拼接,可以得到第一文本矩阵。
56.根据本公开的实施例,文本纠错模型可以是在已有模型架构的基础上,使用与待处理文本同种类的历史文本训练得到。已有模型架构可以是bert(bidirectional encoder representations from transformers)等。
57.根据本公开的实施例,可以将多种错误类型按顺序进行编号,以便于使用分类结果向量中的一个元素表示对应词汇的错误类型,并设置当该元素为0或其他预设值时,与该元素对应的词汇不是错误词汇。
58.根据本公开的实施例,纠错映射表可以是用户预先设置的,也可以是根据历史文本中的修订信息,利用文本纠错模型来生成的,在此不作限定。
59.根据本公开的实施例,可选择词汇可以是基于纠错映射表确定的可用于替换初始词汇的词汇。
60.根据本公开的实施例,针对至少一个可选择词汇中目标词汇的选择操作可以是用户的鼠标点击操作、触屏输入操作、键盘输入操作等,在此不作限定。
61.根据本公开的实施例,在获取待处理文本后,可以使用与该待处理文本的文本种类对应的文本纠错模型对待处理文本进行评分和错误检测,并分别生成对应于每个错误词汇的可选择词汇列表,用户可以通过选择操作从可选择词汇列表中选择目标词汇来实现词汇的替换,以实现文本的纠错。通过上述方式,可以至少部分地克服了相关技术中的文本纠错工具无法从企业规范的维度对文本进行检测和校对的技术问题,从而有效提高了文本的质量,同时也降低了文本审核的人力成本和时间成本。
62.下面参考图3a、图3b和图4,结合具体实施例对图2所示的方法做进一步说明。
63.根据本公开的实施例,操作s202可以包括如下操作:
64.将预设编码向量转换为第一输入向量;对于词汇集合中的每个初始词汇,将初始词汇转化为第二输入向量;以及,将第一输入向量和与多个初始词汇对应的多个第二输入向量进行拼接,以得到第一文本矩阵。
65.根据本公开的实施例,预设编码向量可以是对cls符号采用任意编码方式进行编码而得到的。
66.根据本公开的实施例,第一输入向量和第二输入向量可以是维度相等的列向量。
67.根据本公开的实施例,将预设编码向量转换为第一输入向量可以包括如下操作:
68.对预设编码向量进行位置编码,得到第一位置编码向量;以及,将预设编码向量与第一位置编码向量相加,得到第一输入向量。
69.根据本公开的实施例,对预设编码向量进行位置编码时,可以采用绝对位置编码(absolute position embedding)、相对位置编码(relative position embedding)等方式,在此不作限定。
70.根据本公开的实施例,在第一位置编码向量的维度和预设编码向量的维度相等时,可以直接将预设编码向量与第一位置编码向量相加。在第一位置编码向量的维度和预设编码向量的维度不相等时,还可以对第一位置编码向量进行线性变换,以得到与预设编码向量的维度相等的位置编码向量,并将得到的位置编码向量与预设编码向量相加。
71.根据本公开的实施例,将初始词汇转化为第二输入向量可以包括如下操作:
72.将初始词汇映射为词汇标识;对词汇标识进行词嵌入处理,得到词向量;对词向量进行位置编码,得到第二位置编码向量;以及将词向量与第二位置编码向量相加,得到第二输入向量。
73.根据本公开的实施例,将初始词汇映射为词汇标识可以是通过任意汉字编码来实现的。例如,对于初始词汇中的每个字,可以根据该字在汉字国标码(gb2312-80)中的位置来确定该字的标识,并将该初始词汇中所有字的标识进行拼接或相加,以得到词汇标识。
74.根据本公开的实施例,对词汇标识进行词嵌入处理可以通过任意已有词嵌入工具包来实现,在此不作限定。例如,可以使用python的transformers工具包中提供的中文预训练词向量表对每个词汇标识进行词向量嵌入,使得每个词汇标识转换为768维的词向量。
75.根据本公开的实施例,对词向量进行位置编码时,可以采用绝对位置编码、相对位置编码等方式,在此不作限定。
76.根据本公开的实施例,文本纠错模型可以包括文本处理模型、第一线性层、第二线性层和分类器。
77.根据本公开的实施例,操作s203可以包括如下操作:
78.将第一文本矩阵输入文本处理模型中,得到第一输出矩阵;将第一输出矩阵的第一列输入到第一线性层中,得到分值属性;将第一输出矩阵的其他列输入到第二线性层中,得到第二输出矩阵;将第二输出矩阵输入到分类器中,得到输出向量;以及将分值属性与输出向量拼接,得到分类结果向量。
79.根据本公开的实施例,第一线性层和第二线性层可以对输入的向量或矩阵进行线性变换,以改变输入的向量或矩阵的维度。例如,第一线性层可以将输入的向量映射成一个数字,该数字即表征为分值属性;第二线性层可以将输入的向量映射为m维的向量,m表示错误类型的数量。
80.根据本公开的实施例,分类器可以是softmax分类器。分类器可以将输入的向量映射为一个数字,该数字表征为输入向量对应的词汇的错误类型。例如,第二线性层输出的向量为(0.1,0.8,0.1),则将该向量输入到分类器中,输出的数值为2,即表示与该向量对应的词汇属于第2种错误类型。
81.根据本公开的实施例,初始模型可以是transformers、bert等已有模型。训练初始模型时使用的训练样本集可以通过解析历史文本库中的历史文本而得到。历史文本的文本种类可以和待处理文本的文本种类相同。训练样本集中可以包括多个样本四元组,每个历史文本可以解析为一个样本四元组,样本四元组可以是由样本文本、样本分值属性、样本错误位置索引和样本错误类型四个元素组成的。
82.以下实施例中以初始模型为bert模型为例,对文本处理模型的训练方法进行描述。
83.图3a示意性示出了根据本公开实施例的bert模型的结构示意图。
84.如图3a所示,bert模型可以由多个堆叠的trm块(transformer块)组成,e1,e2,..,en表示输入向量,t1,t2,..,tn表示输出向量。其中,e1表示由cls编码,即预设编码向量转换的第一输入向量,e2,

,en表示各个初始词汇通过编码、词嵌入等方式转换得到的第二输入向量;t1表示cls输出,即分值属性,t2,

,tn表示表示各个词向量的输出。
85.图3b示意性示出了根据本公开实施例的文本处理模型的训练方法的示意图。
86.如图3b所示,该方法包括操作s301~s311。
87.在操作s301,获取训练样本集和训练参数。
88.在操作s302,根据训练参数中的批容量,从训练样本集中选择训练样本。
89.在操作s303,对训练样本中的样本文本进行预处理,得到第二文本矩阵。
90.在操作s304,将第二文本矩阵输入初始模型中,得到第三输出矩阵。
91.在操作s305,将第三输出矩阵的第一列输入到第一线性层中,得到预测分值属性。
92.在操作s306,基于预测分值属性和训练样本中的文本分值属性,计算得到第一损失值。
93.在操作s307,将第三输出矩阵的其他列输入到第二线性层中,得到第四输出矩阵。
94.在操作s308,基于第四输出矩阵、训练样本中样本错误位置索引和样本错误类型,计算得到第二损失值。
95.在操作s309,基于第一损失值、第二损失值和训练参数中的学习率,调整初始模型的模型参数。
96.在操作s310,判断是否完成训练。在确定完成训练的情况下,执行操作s311;在确定未完成训练的情况下,返回执行操作s302。
97.在操作s311,得到文本处理模型。
98.根据本公开的实施例,训练参数可以包括学习率、批容量(batchsize)、迭代次数(epoch)、批数量(iterations)等。例如,训练样本集中可以包括n个样本,批容量可以设置为k,即每一轮训练使用k个样本;批数量可以设置为n,即在每完成n轮训练后进行一次模型参数的调整。
99.根据本公开的实施例,可以根据批容量所表示的大小,从训练样本集中随机选择对应数量的训练样本。
100.根据本公开的实施例,对训练样本中的样本文本进行预处理可以采取与操作s201~s202中对待处理文本进行切分和预处理时相同或相似的方法,在此不再赘述。
101.根据本公开的实施例,计算第一损失值时采用的损失函数可以是均方误差损失函数,如公式(1)所示:
[0102][0103]
在式中,loss1表示第一损失值;n表示训练样本的数量;t1i表示第i个训练样本的预测分值属性;yi表示第i个训练样本的文本分值属性。
[0104]
根据本公开的实施例,计算第二损失值时采用的损失函数可以是交叉熵损失函数,如公式(2)所示:
[0105][0106]
在式中,loss2表示第二损失值;n表示训练样本的数量;m表示错误类型的数量;c
ij
为错误标签知识函数,表示是否是第j个错误,如果是,则c
ij
=1,如果否,在c
ij
=0;p
ij
表示为第四输出矩阵中的第i列、第j行的元素。
[0107]
根据本公开的实施例,用于训练该初始模型的总损失值可以如公式(3)所示:
[0108][0109]
在式中,k表示训练参数中批数量的值,loss1i和loss2i分别表示第i批训练样本中计算得到的第一损失值和第二损失值。
[0110]
根据本公开的实施例,在训练初始模型时可以采用sgd(stochasticgradientdescent,随机梯度下降法)、nag(nestrov accelerated gradient,nesterov加速梯度下降法)、adam(adaptive moment estimation)等方法,在此不作限定。
[0111]
根据本公开的实施例,可以根据训练迭代次数是否达到训练参数中设置的迭代次数、多个训练周期内基于总损失值求得的梯度是否小于阈值等来判断是否完成训练。
[0112]
图4示意性示出了根据本公开实施例的纠错映射表的构建方法的流程图。
[0113]
如图4所示,该方法包括操作s401~s404。
[0114]
在操作s401,解析历史文本库中的历史文本,以获取历史文本中与样本错误类型对应的至少一个修正词汇。
[0115]
在操作s402,根据与样本错误类型对应的至少一个修正词汇和样本错误位置索引,在训练样本集的基础上构建测试样本集。
[0116]
在操作s403,将测试样本集输入文本处理模型中,以确定与至少一个修正词汇对应的修正分值属性。
[0117]
在操作s404,根据至少一个修正词汇和修正分值属性,构建纠错映射表。
[0118]
根据本公开的实施例,可以根据历史文本的修订信息来获取修正词汇。在一些实施例中,还可以对获取的词汇按出现的频次进行筛选,只选择出现的频次大于阈值的词汇作为修正词汇。
[0119]
根据本公开的实施例,测试样本集中的每个测试样本的文本可以是通过将训练样本的文本中的一处错误词汇使用修正词汇进行替换而得到的。例如,一个训练样本的文本经切词后可以表示为“abcd”,其中,b为确定的一处错误词汇;根据统计分析,与b的错误类型对应的修正词汇包括b1、b2和b3,则该训练样本可以构建文本分别为“ablcd”、“ab2cd”和“ab3cd”的三个测试样本。
[0120]
根据本公开的实施例,可以将使用了同一修正词汇进行替换的多个测试样本的测试分值属性的平均值来确定该修正词汇的修正分值属性。
[0121]
根据本公开的实施例,操作s203可以包括如下操作:
[0122]
从纠错映射表中确定与初始词汇的错误类型对应的至少一个目标修正词汇;确定与目标修正词汇对应的目标修正分值属性;以及在目标修正分值属性大于待处理文本的分
值属性的情况下,确定与目标修正分值属性对应的目标修正词汇为可选择词汇。
[0123]
图5示意性示出了根据本公开实施例的文本纠错装置的框图。
[0124]
如图5所示,文本纠错装置500包括第一处理模块510、预处理模块520、第二处理模块530和第一确定模块540。
[0125]
第一处理模块510,用于响应于获取待处理文本,使用切词器对待处理文本进行切分,得到词汇集合。
[0126]
预处理模块520,用于分别对词汇集合中的多个初始词汇进行预处理,以将词汇集合转换为第一文本矩阵。
[0127]
第二处理模块530,用于将第一文本矩阵输入与待处理文本的文本种类对应的文本纠错模型中,得到分类结果向量,其中,分类结果向量中的第一个元素表征待处理文本的分值属性,分类结果向量中的其他元素表征词汇集合中的初始词汇的错误类型。
[0128]
第一确定模块540,用于基于待处理文本的分值属性和词汇集合中的初始词汇的错误类型,从纠错映射表中确定至少一个可选择词汇,以便于响应于针对至少一个可选择词汇中目标词汇的选择操作,使用目标词汇替换初始词汇。
[0129]
根据本公开的实施例,在获取待处理文本后,可以使用与该待处理文本的文本种类对应的文本纠错模型对待处理文本进行评分和错误检测,并分别生成对应于每个错误词汇的可选择词汇列表,用户可以通过选择操作从可选择词汇列表中选择目标词汇来实现词汇的替换,以实现文本的纠错。通过上述方式,可以至少部分地克服了相关技术中的文本纠错工具无法从企业规范的维度对文本进行检测和校对的技术问题,从而有效提高了文本的质量,同时也降低了文本审核的人力成本和时间成本。
[0130]
根据本公开的实施例,文本纠错模型包括文本处理模型、第一线性层、第二线性层和分类器。
[0131]
根据本公开的实施例,第二处理模块530包括第一处理单元、第二处理单元、第三处理单元、第四处理单元和第五处理单元。
[0132]
第一处理单元,用于将第一文本矩阵输入文本处理模型中,得到第一输出矩阵。
[0133]
第二处理单元,用于将第一输出矩阵的第一列输入到第一线性层中,得到分值属性。
[0134]
第三处理单元,用于将第一输出矩阵的其他列输入到第二线性层中,得到第二输出矩阵。
[0135]
第四处理单元,用于将第二输出矩阵输入到分类器中,得到输出向量。
[0136]
第五处理单元,用于将分值属性与输出向量拼接,得到分类结果向量。
[0137]
根据本公开的实施例,文本纠错装置500还包括第一解析模块和训练模块。
[0138]
第一解析模块,用于解析历史文本库中的历史文本,得到训练样本集,其中,历史文本的文本种类和待处理文本的文本种类相同,训练样本集中包括多个样本四元组,样本四元组是由样本文本、样本分值属性、样本错误位置索引和样本错误类型四个元素组成的。
[0139]
训练模块,用于使用训练样本集来训练初始模型,以得到文本处理模型。
[0140]
根据本公开的实施例,训练模块包括第一训练单元、第二训练单元、第三训练单元、第四训练单元、第五训练单元、第六训练单元和第七训练单元。
[0141]
第一训练单元,用于对样本文本进行预处理,以将样本文本转换为第二文本矩阵。
[0142]
第二训练单元,用于将第二文本矩阵输入初始模型中,得到第三输出矩阵。
[0143]
第三训练单元,用于将第三输出矩阵的第一列输入到第一线性层中,得到预测分值属性。
[0144]
第四训练单元,用于基于预测分值属性和文本分值属性,计算得到第一损失值。
[0145]
第五训练单元,用于将第三输出矩阵的其他列输入到第二线性层中,得到第四输出矩阵。
[0146]
第六训练单元,用于基于第四输出矩阵、样本错误位置索引和样本错误类型,计算得到第二损失值。
[0147]
第七训练单元,用于基于第一损失值和第二损失值,调整初始模型的模型参数。
[0148]
根据本公开的实施例,文本纠错装置500还包括第二解析模块、第一构建模块、第二确定模块和第二构建模块。
[0149]
第二解析模块,用于解析历史文本库中的历史文本,以获取历史文本中与样本错误类型对应的至少一个修正词汇。
[0150]
第一构建模块,用于根据与样本错误类型对应的至少一个修正词汇和样本错误位置索引,在训练样本集的基础上构建测试样本集。
[0151]
第二确定模块,用于将测试样本集输入文本处理模型中,以确定与至少一个修正词汇对应的修正分值属性。
[0152]
第二构建模块,用于根据至少一个修正词汇和修正分值属性,构建纠错映射表。
[0153]
根据本公开的实施例,第一确定模块540包括第一确定单元、第二确定单元和第三确定单元。
[0154]
第一确定单元,用于从纠错映射表中确定与初始词汇的错误类型对应的至少一个目标修正词汇。
[0155]
第二确定单元,用于确定与目标修正词汇对应的目标修正分值属性。
[0156]
第三确定单元,用于在目标修正分值属性大于待处理文本的分值属性的情况下,确定与目标修正分值属性对应的目标修正词汇为可选择词汇。
[0157]
根据本公开的实施例,预处理模块520包括第一预处理单元、第二预处理单元和第三预处理单元。
[0158]
第一预处理单元,用于将预设编码向量转换为第一输入向量。
[0159]
第二预处理单元,用于对于词汇集合中的每个初始词汇,将初始词汇转化为第二输入向量。
[0160]
第三预处理单元,用于将第一输入向量和与多个初始词汇对应的多个第二输入向量进行拼接,以得到第一文本矩阵。
[0161]
根据本公开的实施例,第一预处理单元包括第一预处理子单元和第二预处理子单元。
[0162]
第一预处理子单元,用于对预设编码向量进行位置编码,得到第一位置编码向量。
[0163]
第二预处理子单元,用于将预设编码向量与第一位置编码向量相加,得到第一输入向量。
[0164]
根据本公开的实施例,第二预处理单元包括第三预处理子单元、第四预处理子单元、第五预处理子单元和第六预处理子单元。
[0165]
第三预处理子单元,用于将初始词汇映射为词汇标识。
[0166]
第四预处理子单元,用于对词汇标识进行词嵌入处理,得到词向量。
[0167]
第五预处理子单元,用于对词向量进行位置编码,得到第二位置编码向量。
[0168]
第六预处理子单元,用于将词向量与第二位置编码向量相加,得到第二输入向量。
[0169]
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0170]
例如,第一处理模块510、预处理模块520、第二处理模块530和第一确定模块540中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,第一处理模块510、预处理模块520、第二处理模块530和第一确定模块540中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一处理模块510、预处理模块520、第二处理模块530和第一确定模块540中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
[0171]
需要说明的是,本公开的实施例中文本纠错装置部分与本公开的实施例中文本纠错方法部分是相对应的,文本纠错装置部分的描述具体参考文本纠错方法部分,在此不再赘述。
[0172]
图6示意性示出了根据本公开实施例的适于实现文本纠错方法的电子设备的框图。图6示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0173]
如图6所示,根据本公开实施例的计算机电子设备600包括处理器601,其可以根据存储在只读存储器(rom)602中的程序或者从存储部分608加载到随机访问存储器(ram)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
[0174]
在ram 603中,存储有电子设备600操作所需的各种程序和数据。处理器601、rom 602以及ram 603通过总线604彼此相连。处理器601通过执行rom 602和/或ram 603中的程
序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除rom 602和ram 603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
[0175]
根据本公开的实施例,电子设备600还可以包括输入/输出(i/o)接口605,输入/输出(i/o)接口605也连接至总线604。电子设备600还可以包括连接至i/o接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至i/o接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
[0176]
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
[0177]
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
[0178]
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0179]
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的rom 602和/或ram 603和/或rom 602和ram 603以外的一个或多个存储器。
[0180]
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行本公开实施例所提供的方法的程序代码,当计算机程序产品在电子设备上运行时,该程序代码用于使电子设备实现本公开实施例所提供的文本纠错方法。
[0181]
在该计算机程序被处理器601执行时,执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
[0182]
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分609被下载和安装,和/或从可拆卸介质611被安装。该计算机程序包含
的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0183]
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如java,c ,python,“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
[0184]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
[0185]
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
再多了解一些

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

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

相关文献