数学应用题解答模型的处理方法、系统和存储介质

文档序号:634315 发布日期:2021-05-11 浏览:9次 >En<

阅读说明:本技术 数学应用题解答模型的处理方法、系统和存储介质 (Method, system and storage medium for processing mathematic application problem solution model ) 是由 肖菁 樊纬江 陈寅 曹阳 于 2021-01-29 设计创作,主要内容包括:本发明公开了一种数学应用题解答模型的处理方法、系统和存储介质,方法包括以下步骤:获取若干个原始数学应用题;对所述原始数学应用题的名称进行回译操作,得到第一数据集;判断所述第一数据集内的文本是否为问句,若是,则将所述文本添加于正常序列;反之,则将所述文本添加于非正常序列;对正常序列和非正常序列依次进行扩充和分词;将分词后的序列和原始数学应用题作为训练集对数学应用题解答模型进行训练,并在训练完成后,更新神经网络模型的参数。本发明可降低回译导致语句缺失带来的影响,提高数学应用题解答模型的训练精度,以提高应用了数学应用题解答模型的题型搜索软件的泛化能力和准确度。本发明可广泛应用于模型训练技术领域。(The invention discloses a processing method, a system and a storage medium of a mathematical application question answering model, wherein the method comprises the following steps: acquiring a plurality of original mathematic application questions; performing a back translation operation on the name of the original mathematic application question to obtain a first data set; judging whether the text in the first data set is a question or not, and if so, adding the text to a normal sequence; otherwise, adding the text to the abnormal sequence; sequentially expanding and segmenting the normal sequence and the abnormal sequence; and training the mathematical application question solution model by taking the sequence after word segmentation and the original mathematical application question as a training set, and updating the parameters of the neural network model after the training is finished. The invention can reduce the influence caused by sentence deletion caused by the translation, and improve the training precision of the mathematic application question answering model so as to improve the generalization ability and the accuracy of the question type searching software applying the mathematic application question answering model. The invention can be widely applied to the technical field of model training.)

数学应用题解答模型的处理方法、系统和存储介质

技术领域

本发明涉及模型训练技术领域,尤其是一种数学应用题解答模型的处理方法、系统和存储介质。

背景技术

随着信息教育的发展,题型搜索软件也应运而生。目前的题型搜索软件,由于中文数学题目的特殊性与标注的复杂性导致当前数据集十分稀少,神经网络模型容易出现过拟合而使得泛化能力不强,且容易受到陌生扰动影响而导致准确度不高。数据增强可以为有限的数据集进行一定程度的扩充,但是,自然语言的复杂性与对语义逻辑的保护,回译可能会导致语句缺失的问题,实体词汇替换也需要面对不同的问题进行针对性的替换,而当前对于数学题目数据集进行有针对性的数据增强几乎没有。综上,目前的题型搜索软件的泛化能力不强且准确度不高。

发明内容

本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种数学应用题解答模型的处理方法、系统和存储介质,能够有效提高题型搜索软件的泛化能力和准确度。

根据本发明的第一方面实施例的一种数学应用题解答模型的处理方法,包括以下步骤:

获取若干个原始数学应用题;

对所述原始数学应用题的名称进行回译操作,得到第一数据集;

判断所述第一数据集内的文本是否为问句,若是,则将所述文本添加于正常序列;反之,则将所述文本添加于非正常序列;

对正常序列和非正常序列依次进行扩充和分词;

将分词后的序列和原始数学应用题作为训练集对数学应用题解答模型进行训练,并在训练完成后,更新神经网络模型的参数。

根据本发明实施例的一种数学应用题解答模型的处理方法,至少具有如下有益效果:本实施例通过在对原始数学应用题的名称进行回译操作后,判断第一数据集内的文本是否为问句,并将问句文本添加于正常序列,将非问句文本添加于非正常序列,接着对正常序列和非正常序列依次进行扩充和分词,并通过分词后的序列和原始数学应用题作为训练集对数学应用题解答模型进行训练,并在训练完成后,更新神经网络模型的参数,从而降低回译导致语句缺失带来的影响,提高数学应用题解答模型的训练精度,以提高应用了数学应用题解答模型的题型搜索软件的泛化能力和准确度。

根据本发明的一些实施例,在所述获取若干个原始数学应用题这一步骤后,还包括以下步骤:

将所述若干个原始数学应用题转换为预设交换格式对应的第一文本序列。

根据本发明的一些实施例,所述对所述原始数学应用题的名称进行回译操作,得到第一数据集,包括:

将所述原始数学应用题的名称转换为字符串类型;

将类型转换后的原始数学应用题的名称翻译为若干类预设语言的第一文本信息;

将所述预设语言的第一文本信息回译为所述原始数学应用题对应的语言的第二文本信息;

将所述第二文本信息作为第一数据集。

根据本发明的一些实施例,所述对正常序列和非正常序列依次进行扩充和分词,包括:

对正常序列的数学问题的非关键字进行同义词替换;

对非正常序列对应的原始数学应用题进行预设层级的数据增强;

对替换后的正常序列和数据增强后的非正常序列进行分词。

根据本发明的一些实施例,还包括以下步骤:

将分词后的序列转换为所述预设交换格式对应的第二文本序列。

根据本发明的一些实施例,所述将分词后的序列和原始数学应用题作为训练集对数学应用题解答模型进行训练,并在训练完成后,更新神经网络模型的参数,包括:

将第一文本序列和第二文本序列作为训练集输入数学应用题解答模型内的神经网络模型,并计算损失函数;

根据损失函数计算词向量损失梯度;

对预设大小的词向量损失梯度对应的词向量添加扰动;

计算添加扰动后的神经网络模型的损失函数和词向量损失梯度;

将添加扰动后的词向量损失梯度与添加扰动前的词向量损失梯度进行累加,作为目标词向量损失梯度;

当训练完成后,根据目标词向量损失梯度更新数学应用题解答模型的参数。

根据本发明的一些实施例,所述对预设大小的词向量损失梯度对应的词向量添加扰动,其具体为:

对预设大小的词向量损失梯度对应的词向量分步添加扰动,并设定扰动半径大小为预设值。

根据本发明的第二方面实施例的一种数学应用题解答模型的处理系统,包括:

获取模块,用于获取若干个原始数学应用题;

回译操作模块,用于对所述原始数学应用题的名称进行回译操作,得到第一数据集;

判断模块,用于判断所述第一数据集内的文本是否为问句,若是,则将所述文本添加于正常序列;反之,则将所述文本添加于非正常序列;

扩充和分词模块,用于对正常序列和非正常序列依次进行扩充和分词;

训练和更新模块,用于将分词后的序列和原始数学应用题作为训练集对数学应用题解答模型进行训练,并在训练完成后,更新神经网络模型的参数。

根据本发明的第三方面实施例的一种数学应用题解答模型的处理系统,包括:

至少一个存储器,用于存储程序;

至少一个处理器,用于加载所述程序以执行第一方面实施例所述的数学应用题解答模型的处理方法。

根据本发明的第四方面实施例的一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行第一方面实施例所述的数学应用题解答模型的处理方法。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

下面结合附图和实施例对本发明做进一步的说明,其中:

图1为本发明实施例的一种数学应用题解答模型的处理方法的流程图;

图2为一种实施例的文本分类示例图;

图3为一种实施例的简单变换示意图;

图4为一种实施例的某个字符序列的影响因子折线图;

图5为一种实施例的扰动添加流程图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,若干的含义是一个以上,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。

本发明的描述中,除非另有明确的限定,设置等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。

本发明的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

参照图1,本发明实施例提供了一种数学应用题解答模型的处理方法,本实施例可应用于服务器、或者各类题型搜索软件的后台控制器。

在应用过程中,本实施例包括以下步骤:

S11、获取若干个原始数学应用题。在获取到原始数学应用题后,将若干个原始数学应用题转换为预设交换格式对应的第一文本序列,然后进行存储。其中,预设交换格式可以为JSON格式,JSON格式为轻量级数据交换格式。第一文本序列分别包括“题目名称”、“题目序号”、“分词序列”、“答案方程”和“结果”。

S12、对原始数学应用题的名称进行回译操作,得到第一数据集。

在一些实施例中,步骤S12可通过以下方式实现:

将原始数学应用题的名称转换为字符串类型。接着将类型转换后的原始数学应用题的名称翻译为若干类预设语言的第一文本信息;若干类预设语言可以为全球通用语言使用率较高的语言。翻译过程可以采用现有的翻译软件进行翻译。然后将预设语言的第一文本信息回译为原始数学应用题对应的语言的第二文本信息,最后将第二文本信息作为第一数据集。在本步骤中,通过回译的手段,在保证不改变语义的情况下,令语法、词法都得到了一定的变换,从而在保证质量的前提下使数据集得到扩充。

由于部分数学题目长度问题,在进行回译后会出现问句缺失的情况,因此需要对回译后的序列进行处理,避免缺失后的语句会令模型造成损坏。

S13、判断第一数据集内的文本是否为问句,若是,则将文本添加于正常序列;反之,则将文本添加于非正常序列。在本步骤中,可通过构建一个经过自然语言题目语料数据集训练后的长短期记忆网络进行判断。

S14、对正常序列和非正常序列依次进行扩充和分词。

在一些实施例中,步骤S14可通过以下方式实现:

对正常序列的数学问题的非关键字进行同义词替换;对非正常序列对应的原始数学应用题进行预设层级的数据增强;然后对替换后的正常序列和数据增强后的非正常序列进行分词。

具体地,对于正常序列,可通过送入信息检索和数据挖掘的常用加权技术的词频统计器中进行数学问题关键词统计,然后对非关键词,例如,飞机、汽车、树等与题目核心求解无关的实体名词,通过查询同义词库对非关键词进行替换。对于非正常序列,可根据原序号找回原始数学应用题,然后对该原始数学应用题进行低层级的数据增强,例如,少量同义词替换、随机词汇插入、交换与删除等,由于变换较少,因此,并不影响后续训练得到的模型对语义的识别,反而可以作为噪声引入,以达到泛化性增强的效果。

接着采用中文分词模型,例如如jieba对处理后的正常序列与非正常序列进行分词,并将分词后的序列转换为预设交换格式对应的第二文本序列,即以原始数学应用题的数据格式对分词后的序列进行整理。

S15、将分词后的序列和原始数学应用题作为训练集对数学应用题解答模型进行训练,并在训练完成后,更新神经网络模型的参数。

具体地,对抗样本作为一种攻击方式,可使被训练模型在面对陌生输入时,防御性增强,其在图像领域已经得到大规模的应用,同样地在自然语言处理方面也得到一定的应用,并被证实了由于扰动的加入使得自然语言模型抗噪能力与泛化能力增强,提高了模型分类或检测的鲁棒性与准确度。

在一些实施例中,所述步骤S15,可通过以下方式实现:

将第一文本序列和第二文本序列作为训练集输入数学应用题解答模型内的神经网络模型,并计算前向损失函数以及梯度反向传播,本步骤中,在有监督训练中,通常是以交叉熵作为损失。

接着根据损失函数Loss值计算词向量损失embeding矩阵梯度,并对预设大小的词向量损失梯度对应的词向量分布添加扰动,并设定扰动半径大小为预设值。具体地,由于在数学应用题中,梯度下降最快的位置往往是对题目解答相关联的词汇序列,如“差多少”等,本实施将梯度下降的绝对值设为其影响因子,并为了使模型更为鲁棒,向增大损失的方向,即与题目解答相关联的词汇序列的embeding层添加连续的扰动。

为了使扰动不过大,更接近约束中的最优,我们将扰动的添加分为k步,通常将k设为3,设定扰动半径,分步走,若超出半径则返回。其中扰动的约束空间如公式1所示:

S=r∈Rd:||r||2≤ε 公式1。

ε为预设扰动半径;||r||2≤ε为扰动的约束空间;||||2为L2范数计算,指向量各元素的平方和然后求平方根;S为扰动空间;Rd代表D维向量。

若k非最终步,添加扰动后计算Loss得到梯度;若k为最终步,恢复原梯度值并将最后的梯度累加其中作为目标词向量损失梯度;根将embeding层恢复为最初值,并根据上一步的梯度进行回传对数学应用题解答模型参数进行更新。

重复训练,直到训练结束。

在本实施例中,将数学应用题问题中较小的数据集利用一定的算法扩充至原来的规模的数倍,并引入对抗训练提升模型的鲁棒性与泛化性。以数据集中的某道题为例,将其作为绝大部分数据流中的流动个例进行具体实例的阐述:

步骤1:对数学题目数据集进行数据增强,其具体可分为以下几个步骤:

步骤1.1:将原始数学应用题题目序列以JSON格式储存,如:

步骤1.2:使用预设翻译软件的API接口,将"original_text"翻译为英语与日语,语种选择可根据具体情况进行选择,再将该语言回译至中文,如

"镇海雅乐学校二年级的小朋友到一条小路的一边植树.小朋友们每隔2米种一棵树(马路两头都种了树),最后发现一共种了11棵,这条小路长多少米."翻译至"ZhenhaiYale School sophomores go to one side of a path to plant trees.The childrenplant a tree every 2meters(trees are planted at both ends of the road).Finally,they find that a total of 11trees have been planted.How long is thepath",再回译为“镇海耶鲁学校大二学生去路边植树。孩子们每两米种一棵树(在路的两端种一棵树)。最后,他们发现一共种了11棵树。这条路有多长”,从中可见,语义信息保留,但表达方式与词汇发生了变化。

步骤1.3:设计LSTM神经网络用于进行问句检测的文本分类,其中数据集来自于开源的问句检测比赛,内容包括各类考试的问句与陈述句形式的答案,用label来表示是否为问句,其具体如图2所示。

步骤1.4:对于回译后识别为缺失问句的较长问题,如:"按有关规定,进口某种货物需交纳货物价值12%的税.某公司进口了一批这种货物,交税6万元,这批货物价值多少万元."翻译为"根据有关规定,进口某种货物必须缴纳12%的税金。",然后将这类问题作为非正常序列送入简单词汇替换模块中,进行少量同义词替换,随机插入、删除等,选择同义词词林扩展版作为同义词库,将随机词汇变换种子设为3,也就是每句话中的简单变换不大于3,其变换结果如图3所示。

步骤1.5:对于正常序列,我们送入基于TFIDF词频统计器进行数学问题关键词统计,其中TFIDF计算公式如公式2所示:

其中TFIDF可代表每个词在数学题目中的关键程度,TF为词频,指在某一类中词条i出现的次数除以文件j中所有的词条数目;IDF为逆向文件频率,N为语料库的文档总数,dfi为包含词语i的文件数目。

再将关键程度低的词汇如实体名词如飞机(0.000012)与土(0.000028)利用近义词库进行近义词替换,替换种子同样设为3,表示每句话变换不超过3,再将变换后的句子作为扩充样本扩充至原数据集中。

步骤1.6:汇总两种序列,并利用中文分词库jieba对扩充样本进行分词,然后按照原数据集格式扩充至其中。

步骤2:在神经网络中引入数学应用题导向的对抗训练

步骤2.1:采用步骤1得到的数据集对于神经网络模型的第一次训练时,正常计算前向Loss函数与梯度反向传播。其中以交叉熵作为损失函数计算损失。

步骤2.2:根据Loss值得到embeding矩阵的梯度,并根据embeding映射回原序列中的词句,同时根据梯度下降最快的位置,来找到某数学题中对于答案结果影响最大的词,向这种词汇序列的embeding层添加连续的扰动,如图4为根据梯度而绘制的某题字符序列的影响因子折线图,可见在“第一个月”、“第一批”等得到了较大的影响因子,代表其在题目解答中有着更大的影响,对这些较大影响词汇的向量中添加一定的扰动。

步骤2.3:添加扰动的流程如上一节中所述类似,对于每一次模型的train,所添加扰动如图5所示:

步骤2.3.1:对于神经网络模型的第一次训练时,正常计算前向Loss函数与梯度反向传播,以交叉熵作为损失函数。

步骤2.3.2:根据Loss值得到embeding矩阵的梯度,对影响因子较大的字符在embeding层添加连续的扰动。

步骤2.3.3:将扰动步长k设为3,设定扰动半径如公式1所示:

S=γ∈Rd:||r||2≤ε 公式1。

ε为预设扰动半径;||r||2≤ε为扰动的约束空间;||||2为L2范数计算,指向量各元素的平方和然后求平方根;S为扰动空间;Rd代表D维向量。

步骤2.3.4:若k非最终步,添加扰动后计算Loss得到梯度;若k为最终步,恢复原梯度值并将最后的梯度累加其中。

步骤2.3.5:将embeding层恢复为最初值,并根据上一步的梯度进行回传对模型参数进行更新。

步骤2.4:继续进行拟合训练,直到训练结束。

具体地,使用Math23K作为实验用数据集,数据集大小为23163个数学问题,在数据增强部分共进行了两种语言的回译(英语与日语),使用TFIDF词频统计器进行近义词替换的语句序列大约占75%,使用简单替换的序列则约为25%,增强后数据集共有82618扩充问题;在深度学习训练阶段,本实施例使用带贪心搜索的Seq2Seq模型作为基准,分别展示如表1所示的两种泛化性提升算法在Math23K数据集上五折交叉验证的结果。

表1算法效果

综上可知,本实施例能降低回译导致语句缺失带来的影响,提高数学应用题解答模型的训练精度,从而提高应用了数学应用题解答模型的题型搜索软件的泛化能力和准确度。

本发明实施例提供了一种数学应用题解答模型的处理系统,包括:

获取模块,用于获取若干个原始数学应用题;

回译操作模块,用于对所述原始数学应用题的名称进行回译操作,得到第一数据集;

判断模块,用于判断所述第一数据集内的文本是否为问句,若是,则将所述文本添加于正常序列;反之,则将所述文本添加于非正常序列;

扩充和分词模块,用于对正常序列和非正常序列依次进行扩充和分词;

训练和更新模块,用于将分词后的序列和原始数学应用题作为训练集对数学应用题解答模型进行训练,并在训练完成后,更新神经网络模型的参数。

本发明方法实施例的内容均适用于本系统实施例,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法达到的有益效果也相同。

本发明实施例提供了一种数学应用题解答模型的处理系统,包括:

至少一个存储器,用于存储程序;

至少一个处理器,用于加载所述程序以执行图1所示的数学应用题解答模型的处理方法。

本发明方法实施例的内容均适用于本系统实施例,本系统实施例所具体实现的功能与上述方法实施例相同,并且达到的有益效果与上述方法达到的有益效果也相同。

本发明实施例提供了一种存储介质,其中存储有处理器可执行的程序,所述处理器可执行的程序在由处理器执行时用于执行图1所示的数学应用题解答模型的处理方法。

本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存介质中。计算机设备的处理器可以从计算机可读存介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图1所示的方法。

上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。此外,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:电子文档中段落顺序的处理方法、装置、存储介质和设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!