【技术实现步骤摘要】
一种算数应用题智能解题方法及系统
本专利技术属于自然语言处理领域,具体涉及一种算数应用题智能解题方法及系统。
技术介绍
随着深度学习在自然语言处理领域的不断尝试与应用,一些端到端模型已经在一些机器算数应用题自动计算任务上表现出了非常不错的效果。这些模型不需要依赖于传统方法所使用的复杂的人工设计的特征,并且性能比传统方法要好得多。在基于深度学习的机器算数应用题自动计算模型上,Wang等人提出了Match-LSTM+PointerNetwork模型,其是基于SQuAD数据集的首个神经网络模型,模型的整体结构是将match-LSTM和PointerNetwork进行结合,match-LSTM用于获取感知问题的应用题一直条件表示,而PointerNetwork用来从输入文本中提取并构造一个应用题答案。Seo等人提出Bi-DirectionalAttentionFlow,该模型采用不同级别的粒度作为输入,包括字符级别、单词级别和上下文嵌入,并且它使用双向注意力流,即从问题到应用题已知条件的注意力和从已知条件到问题的注意力,来获 ...
【技术保护点】
1.一种算数应用题智能解题方法,其特征在于,包括以下步骤:/n步骤A:对采集到的算数应用题数据进行预处理,建立包含算数应用题的已知条件、问题以及答案的训练集;/n步骤B:构建用于算数应用题智能解题的深度学习模型,确定损失函数,在训练集上通过最小化损失函数训练所述深度学习模型;/n步骤C:将算数应用题的已知条件和问题输入训练好的深度学习模型中,输出问题的答案。/n
【技术特征摘要】
1.一种算数应用题智能解题方法,其特征在于,包括以下步骤:
步骤A:对采集到的算数应用题数据进行预处理,建立包含算数应用题的已知条件、问题以及答案的训练集;
步骤B:构建用于算数应用题智能解题的深度学习模型,确定损失函数,在训练集上通过最小化损失函数训练所述深度学习模型;
步骤C:将算数应用题的已知条件和问题输入训练好的深度学习模型中,输出问题的答案。
2.根据权利要求1所述的一种算数应用题智能解题方法,其特征在于,所述步骤A具体包括以下步骤:
步骤A1:采集用于训练的算数应用题数据,每条算数应用题数据包括算数应用题的已知条件、问题与答案;
步骤A2:对每条算数应用题数据进行预处理,分别对算数应用题的已知条件、问题以及答案进行分词并去除停用词,得到三元组(p,q,a),其中p表示算数应用题的已知条件,q表示问题,a表示问题的答案;
其中,为对算数应用题的已知条件进行分词并去除停用词后已知条件中的第i个词,i=1,2,...,L(p),L(p)为对算数应用题的已知条件进行分词并去除停用词后已知条件中剩余的词数;表示对问题进行分词并去除停用词后问题中的第j个词,j=1,2,...,L(q),L(q)为对问题进行分词并去除停用词后的问题中剩余的词数;表示对答案进行分词并去除停用词后答案中的第k个词,k=1,2,...,L(a),L(a)为对答案进行分词并去除停用词后答案中剩余的词数;
步骤A3:使用步骤A2处理后的算数应用题数据的三元组(p,q,a)构成训练集。
3.根据权利要求1所述的一种算数应用题智能解题方法,其特征在于,所述步骤B具体包括以下步骤:
步骤B1:构建用于算数应用题智能解题的深度学习模型,模型包括编码器和答案预测器,首先将算数应用题的已知条件和问题输入编码器进行编码,得到融合已知条件和问题的语义信息的表征向量M0,M1,M2;然后将融合已知条件和问题的表征向量输入到答案预测器中,得到构成算数表达式需要从已知条件中提取的数字的数量,从已知条件中提取相应数量的数字,为每个数字分配运算符,最终得到算术表达式,计算算数表达式,输出答案a′;
步骤B2:确定所述深度学习模型的损失函数loss,选择交叉熵作为深度学习网络模型的损失函数,根据答案预测器预测得到的答案a′与训练集中的答案a计算损失值;
步骤B3:遍历训练集,对每一个三元组(p,q,a),将算数应用题的已知条件p与问题q输入到编码器中,得到融合已知条件和问题的语义信息的表征向量M0,M1,M2,其中编码器包括输入编码层、文本编码层、交互编码层与堆叠编码器层;
步骤B4:将步骤B3得到的融合已知条件和问题的语义信息的表征向量M0,M1,M2输入到答案预测器中,预测构造算数表达式需要从已知条件中提取的数字的数量,从已知条件中提取相应数量的数字,为每个数字分配运算符,得到算数表达式,对算数表达式求值得到问题的答案;
步骤B5:根据目标损失函数loss计算损失,并利用反向传播方法计算网络中各参数的梯度,通过多次迭代最小化损失函数,在每次迭代中,训练集被分成多个批次进行分批优化,并利用随机梯度下降方法更新参数;
步骤B6:答案预测器采用强化学习训练模型,使用策略梯度方法进行强化学习训练,最大化回报期望;
步骤B7:当深度学习模型产生的损失值迭代变化小于设定阈值不再降低或者达到最大迭代次数,终止深度学习模型的训练。
4.根据权利要求3所述的一种算数应用题智能解题方法,其特征在于,所述步骤B3具体包括以下步骤:
步骤B31:利用输入编码层,将算数应用题的已知条件与问题中的每一个词映射为连续的低维向量,得到已知条件的初始表征向量与问题的初始表征向量
设Lw∈Rd×|V|是预训练的词向量矩阵,其中d是词向量的维度,|V|是Lw中的词语数量;对于算数应用题的已知条件其初始表征向量为对于算数应用题的问题其初始表征向量为其中为已知条件p中第i个词在预训练的词向量矩阵Lw中查找得到的词向量,为问题q中第j个词在预训练的词向量矩阵Lw中的查找得到的词向量;
步骤B32:将步骤B31得到的算数应用题的已知条件的初始表征向量与问题的初始表征向量输入到文本编码层,得到已知条件的文本表征向量和问题的文本表征向量
分别将算术应用题的已知条件的初始表征向量与问题的初始表征向量输入到独立的CNN网络中获取多个特征映射(featuremap),每一个特征映射都是一个具有固定窗口大小的卷积过滤器的输出,通过使用不同窗口大小的多个卷积过滤器来生成多个特征映射,然后连接多个特征映射,得到算数应用题的已知条件与问题的表征向量和具体公式如下:
其中CNN表示卷积神经网络,由于因此,已知条件与问题的表征向量和可以表示为以下形式:
其中
将算数应用题的已知条件的表征向量与问题的表征向量分别输入文本编码层的自注意力模块,得到注意力权重加权后的已知条件的表征向量与注意力加权后的问题的表征向量
注意力权重加权后的已知条件的表征向量的计算公式如下:
其中,W1,W2表示待训练的权重参数;
注意力加权后的问题的表征向量的计算公式如下:
其中,W3,W4表示待训练的权重参数;
将注意力权重加权后的已知条件的表征向量与问题的表征向量输入到前馈神经网络,输出已知条件的文本表征向量与问题的文本表征向量具体公式如下:
其中,FNN表示前馈神经网络;
步骤B33:将步骤B32得到的算数应用题的已知条件的文本表征向量和问题的文本表征向量输入到交互编码层,计算已知条件与问题之间的语义交互,得到已知条件的问题感知的表征向量问题的已知条件感知的表征向量
首先计算...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。