掌桥专利:专业的专利平台
掌桥专利
首页

数学题目表示方法、装置、设备及存储介质

文献发布时间:2023-06-19 16:06:26



技术领域

本申请涉及自然语言处理技术领域,更具体地说,涉及一种数学题目表示方法、装置、设备及存储介质。

背景技术

在智能辅助教学系统中,需要获得数学题目的表示结果,使得智能辅助教学系统方便的进行自动求解,可以用于数学科目的计算机辅助教学,比如,辅助批改、难度预测、题目推荐等。

目前已有的数学题目表示方法大致分为两类,一类是利用深度学习的方法将数学题目转化城稠密向量的中间表示,其特点就是绕过数学题目的形式化表示,将其作为神经网络中的内部表示,这种方法的缺点是不具有可解释性并且不容易推理。另一类是利用机器学习方法训练一个翻译器来将数学题目映射成一阶谓词表示,虽然提高了数学题目表示的可解释性,但其准确率仍然低。

因此,如何提高数学题目表示的可解释性的同时,提高数学题目表示的准确率成为亟待解决的技术问题。

发明内容

有鉴于此,本申请提供了一种数学题目表示方法、装置、设备及存储介质,以提高数学题目表示的可解释性的同时,提高数学题目表示的准确率。

为了实现上述目的,现提出的方案如下:

一种数学题目表示方法,包括:

对数学题目进行语义解析,得到至少一个语义解析树;所述语义解析树中的每个结点为所述数学题目中的一个子句,所述子句的类型为多个子句类型中的一种,不同子句类型表征不同的句法结构;所述至少一个语义解析树的根结点构成所述数学题目,所述语义解析树中的每个叶子结点为所述数学题目中的一个分词,所述语义解析树中属于同一非叶子结点的子结点规约得到所述非叶子结点;

基于对所述至少一个语义解析树进行自下而上的规约处理,获得所述数学题目的表示结果,所述表示结果通过预定义的表示方法表示。

上述方法,优选的,所述基于对所述至少一个语义解析树进行自下而上的规约处理,获得所述数学题目的表示结果,包括:

根据每个非叶子结点的子结点的表示结果规约得到该非叶子结点的表示结果。

上述方法,优选的,所述根据每个非叶子结点的子结点的表示结果规约得到该非叶子结点的表示结果,包括:

利用所述非叶子结点的子句类型对应的映射模板,以及所述非叶子结点的子结点的表示结果,确定所述非叶子结点的表示结果。

上述方法,优选的,所述基于对所述至少一个语义解析树进行自下而上的规约处理,获得所述数学题目的表示结果,包括:

基于所述语义解析树中的非叶子结点的子结点的编码特征获得所述非叶子结点的编码特征;

基于各个语义解析树的根结点的编码特征获得所述数学题目的编码特征;

对所述数学题目的编码特征进行解码,得到所述数学题目的表示结果。

上述方法,优选的,所述语义解析树中的叶子结点的编码特征通过如下方式获得:

对所述数学题目进行分词处理并对各个分词进行词性标记;

获得各个分词的文本特征和词性特征;

对于每一个叶子结点,根据该叶子结点处的分词的文本特征和词性特征,得到该叶子结点的编码特征。

上述方法,优选的,所述数学题目中包含公式,所述公式为一个分词,所述公式的词性标记与其它分词的词性标记不同。

上述方法,优选的,所述基于所述语义解析树中的非叶子结点的子结点的编码特征获得所述非叶子结点的编码特征,包括:

对所述非叶子结点的各个子结点的编码特征进行基于注意力机制的融合,得到所述非叶子结点的编码特征。

上述方法,优选的,所述对所述非叶子结点的各个子结点的编码特征进行基于注意力机制的融合,包括:

基于所述非叶子结点的初始化特征,以及所述非叶子结点的每一个子结点的编码特征,获得所述非叶子结点的每一个子结点的注意力权重;

基于所述非叶子结点的每一个子结点的注意力权重,将所述非叶子结点的各个子结点的编码特征加权求和,得到所述非叶子结点的编码特征。

上述方法,优选的,所述数学题目属于目标数学领域;

所述数学题目的表示结果通过所述目标数学领域的预定义的知识表示方法表示。

一种数学题目表示装置,所述装置包括:

语义解析模块,用于对数学题目进行语义解析,得到至少一个语义解析树;所述语义解析树中的每个结点为所述数学题目中的一个子句,所述子句的类型为多个子句类型中的一种,不同子句类型表征不同的句法结构;所述至少一个语义解析树的根结点构成所述数学题目,所述语义解析树中的每个叶子结点为所述数学题目中的一个分词,所述语义解析树中属于同一非叶子结点的子结点规约得到所述非叶子结点;

处理模块,用于基于对所述至少一个语义解析树进行自下而上的规约处理,获得所述数学题目的表示结果,所述表示结果通过预定义的表示方法表示。

一种数学题目表示设备,包括存储器和处理器;

所述存储器,用于存储程序;

所述处理器,用于执行所述程序,实现如上任一项所述的数学题目表示方法的各个步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现如上任一项所述的数学题目表示方法的各个步骤。

从上述的技术方案可以看出,本申请实施例提供的数学题目表示方法、装置、设备及存储介质,对数学题目进行语义解析,得到至少一个语义解析树;语义解析树中的每个结点为上述数学题目中的一个子句,子句的类型为多个子句类型中的一种,不同类型的子句包含的语义成分不同;至少一个语义解析树的根结点构成上述数学题目,语义解析树中的每个叶子结点为上述数学题目中的一个分词,语义解析树中属于同一非叶子结点的子结点规约得到非叶子结点;基于对至少一个语义解析树进行自下而上的规约处理,获得数学题目的表示结果,该表示结果通过预定义的表示方法表示。本申请按照多个子句类型将数学题目解析为语义解析树,基于语义解析树进行自下而上的规约处理,得到通过预定义的表示方法表示的所述数学题目的表示结果,从而在提高数学题目表示的可解释性的同时,提高数学题目表示的准确率。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例公开的数学题目表示方法的一种实现流程图;

图2为本申请实施例公开的基于对至少一个语义解析树进行自下而上的规约处理,获得数学题目T的表示结果的一种实现流程图;

图3为本申请实施例公开的对非叶子结点C的各个子结点的编码特征进行基于注意力机制的融合,得到非叶子结点C的编码特征的一种实现流程图;

图4为本申请实施例公开的基于表1所示的五种子句类型对示例的数学题目进行语义解析得到的语义解析树的一种示意图;

图5为本申请实施例公开的自下而上对语义解析树进行特征规约的一种示意图;

图6为本申请实施例公开的自下而上对语义解析树进行特征规约的另一种示意图;

图7为本申请实施例公开的数学题目表示装置的一种结构示意图;

图8为本申请实施例公开的数学题目表示设备的硬件结构框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

目前,一般采用一阶逻辑表示方法(first order logic,FOL)对数学题目进行表示。具体有两种实现方式:一种实现方式是基于规则进行映射,这种方法的泛化性差,召回率低。另一种实现方式是利用机器翻译技术实现数学题目到一阶逻辑表示的映射,具体实现时,需要构建一定数量的平行翻译语料,其中数学题目作为源语言,标注的一阶逻辑表示结果作为目标语言,然后利用神经网络机器翻译技术,训练翻译机器,通过翻译机器实现数学题目到一阶逻辑表示的映射。然而,利用机器翻译技术获得数学题目的表示结果的方式仍然存在准确率低的问题,而且,一阶逻辑难度很大,对于没有受过专业培训的人来说,类似

为了至少部分的解决现有的数学题目表示方法存在的问题,提出本申请。

本申请实施例提供的数学题目表示方法的一种实现流程图如图1所示,可以包括:

步骤S101:对数学题目(为便于描述和区分,记为数学题目T)进行语义解析,得到至少一个语义解析树。

其中,语义解析树中的每个结点为数学题目T中的一个子句,子句的类型为预置的多个子句类型中的一种,不同子句类型表征不同的句法结构;上述至少一个语义解析树的根结点构成数学题目T,语义解析树中的每个叶子结点为数学题目T中的一个分词,语义解析树中属于同一非叶子结点(为便于描述和区分,记为非叶子结点P)的子结点规约得到上述非叶子结点P。

可选的,可以对数学题目T中的每个句子分别进行语义解析,得到每个句子对应的语义解析树。基于此,将数学题目T包含的句子的数量记为n,那么,如果n=1,则对数学题目T进行语义解析仅得到一个语义解析树,该语义解析树的根结点即为数学题目T。如果n大于1,则对数学题目T进行语义解析,则会得到n个语义解析树,每个语义解析树的根据结点为数学题T中的一个句子,该n个语义解析树的根结点构成数学题目T。

可选的,也可以不对数学题目T按句子进行语义解析,而是将数学题目T作为一个整体进行语义解析,即不管数学题目T包含几个句子,对数学题目T进行语义解析均获得一个语义解析树。

可选的,具有不同句法结构的子句包含不同的句子成分,其中,具有第一句法结构的子句包含的句子成分,包括具有第二句法结构的子句包含的句子成分;第二句法结构与第一句法结构不同。

可选的,可以通过每个子句类型对应的正则表达式对数学题目T或数学题目中的各个句子分别进行语义解析。

下面以对数学题目T中的某个句子(为便于描述和区分,记为句子S)进行语义解析为例进行说明。

本申请预先配置了多个子句类型,假设配置了m个子句类型,用于描述m类基础的句法结构,即每个子句类型描述一类基础的句法结构。其中,第j个子句类型表征的句法结构包含的句子成分的数量少于第i个子句类型表征的句法结构包含的句子成分的数量;j大于i。如表1所示,为本申请实施例提供的5个子句类型的一种示例。

表1

显然,子句类型CONJ表征的句法结构包含的句子成分的数量多于子句类型PRED表征的句法结构包含的句子成分的数量;子句类型PRED表征的句法结构包含的句子成分的数量多于子句类型PREP表征的句法结构包含的句子成分的数量;子句类型PREP表征的句法结构包含的句子成分的数量多于子句类型NOUN表征的句法结构包含的句子成分的数量;子句类型NOUN表征的句法结构包含的句子成分的数量多于子句类型LEAF表征的句法结构包含的句子成分的数量。

需要说明的是,表1作为可选的示例,并不构成对本申请的限制性说明,基于本申请的思想,还可以有其它的子句类型配置方式,只要不同的句法结构包含不同的句子成分即可。

作为示例,可以利用每一个子句类型对应的正则表达式分别对句子S进行匹配,以在句子S中确定各个子句类型的子句。

句子S作为句子S对应的语义解析树的根结点。

按照所表征的句法结构包含的句子成分由多到少的顺序,获得第k(k=1,2,3,…,m)个子句类型的子句。其中,第k个子句类型的子句包含的句子成分多于第k+1个子句类型的子句包含的句子成分。对于第k个子句类型的第q个子句

如果第k个子句类型的第q个子句

如果第k个子句类型的第q个子句

步骤S102:基于对上述至少一个语义解析树进行自下而上的规约处理,获得数学题目T的表示结果,该表示结果通过预定义的表示方法表示。

作为示例,对上述至少一个语义解析树进行自下而上的规约处理可以包括:自下而上的获得各个结点的表示结果,具体的,可以根据每个非叶子结点的子结点的表示结果规约得到该非叶子结点的表示结果。

作为示例,对上述至少一个语义解析树进行自下而上的规约处理可以包括:自下而上获得各个结点的编码特征;基于各个结点的编码特征获得数学题目T的编码特征;对数学题目T的编码特征进行解码,得到数学题目T的表示结果。可选的,可以通过预先训练好的数学题目表示模型自下而上获得各个结点的编码特征;基于各个结点的编码特征获得数学题目T的编码特征;对数学题目T的编码特征进行解码,得到数学题目T的表示结果。

可选的,预定义的表示方法可以为一阶逻辑表示方法,也可以为其它的预定义的表示方法。

本申请实施例提供的数学题目表示方法、对数学题目进行语义解析,得到至少一个语义解析树;语义解析树中的每个结点为上述数学题目中的一个子句,子句的类型为多个子句类型中的一种,不同类型的子句包含的语义成分不同;至少一个语义解析树的根结点构成上述数学题目,语义解析树中的每个叶子结点为上述数学题目中的一个分词,语义解析树中属于同一非叶子结点的子结点规约得到非叶子结点;基于对至少一个语义解析树进行自下而上的规约处理,获得数学题目的表示结果,该表示结果通过预定义的表示方法表示。本申请按照多个子句类型将数学题目解析为语义解析树,基于语义解析树进行自下而上的规约处理,得到通过预定义的表示方法表示的所述数学题目的表示结果,从而在提高数学题目表示的可解释性的同时,提高数学题目表示的准确率。

在一可选的实施例中,上述根据每个非叶子结点的子结点的表示结果规约得到该非叶子结点的表示结果的一种实现方式可以为:

利用非叶子结点的子句类型对应的映射模板,以及非叶子结点的子结点的表示结果,确定非叶子结点的表示结果。

本申请实施例中,每个子句类型都对应有预定义的映射模板,该映射模板用于按照预定义的表示方法,将非叶子结点的子句类型的子句表示成符合预定义的表示方法的表示结果。

作为示例,可以先基于叶子结点的子句类型对应的映射模板,得到叶子结点的表示结果。然后,对于每一个非叶子结点,利用该非叶子结点的子句类型对应映射模板,以及该非叶子结点的子结点的表示结果,得到该非叶子结点的表示结果。

在一可选的实施例中,上述基于对至少一个语义解析树进行自下而上的规约处理,获得数学题目T的表示结果的一种实现流程图如图2所示,可以包括:

步骤S201:基于语义解析树中的非叶子结点的子结点的编码特征获得非叶子结点的编码特征。

对于每一个语义解析树,基于该语义解析树中的非叶子结点的子结点的编码特征获得非叶子结点的编码特征。也就是说,本申请可以先获得该语义解析树的各个叶子结点的编码特征,然后,对于任意一个非叶子结点(记为非叶子结点C),基于该非叶子结点C的子结点的编码特征,得到该非叶子结点C的编码特征。

可选的,可以对非叶子结点C的各个子结点的编码特征进行基于注意力机制的融合,得到非叶子结点C的编码特征。具体的,可以将非叶子结点C的各个子结点的编码特征加权求和,得到非叶子结点C的编码特征。

其中,非叶子结点C的各个子结点的注意力权重可以通过非叶子结点C与其各个叶子结点的相关性计算得到。具体的,非叶子结点C与其每个叶子结点的相关性可以通过非叶子结点C的初始化特征,以及非叶子结点C的每个叶子结点的编码特征计算得到。

步骤S202:基于各个语义解析树的根结点的编码特征获得数学题目T的编码特征。

在只有一个语义解析树的情况下,该语义解析树的根结点的编码特征就是数学题目T的编码特征。

在有至少两个语义解析树的情况下,可以将该至少两个语义解析树的根结点的编码特征作为数学题目T的编码特征;或者,可以将该至少两个语义解析树的根结点的编码特征进行融合,将得到的融合特征作为数学题目T的编码特征。

作为示例,可以将该至少两个语义解析树的根结点的编码特征进行拼接,得到融合特征;或者,

可以将该至少两个语义解析树的根结点的编码特征相加,得到融合特征;或者,

可以将该至少两个语义解析树的根结点的编码特征进行基于自注意力机制的融合,得到融合特征。

步骤S203:对数学题目T的编码特征进行解码,得到数学题目T的表示结果。

在有至少两个语义解析树,且将该至少两个语义解析树的根结点的编码特征作为数学题目T的编码特征的情况下,可以先将该至少两个语义解析树的根结点的编码特征进行融合,得到融合特征,对该融合特征进行解码,得到数学题目T的表示结果。

作为示例,可以将该至少两个语义解析树的根结点的编码特征进行拼接,得到融合特征;或者,

可以将该至少两个语义解析树的根结点的编码特征相加,得到融合特征;或者,

可以将该至少两个语义解析树的根结点的编码特征进行基于自注意力机制的融合,得到融合特征。

步骤S202和步骤203中对至少两个语义解析树的根结点的编码特征进行融合的方式可以相同,可以不同,本申请不做具体限定。

在一可选的实施例中,上述语义解析树中的叶子结点的编码特征可以通过如下方式获得:

对数学题目进行分词处理并对各个分词进行词性标记。

在一些数学题目中会有公式,基于此,本申请实施例中,可以将公式作为一个词进行分词并进行词性标记。

可选的,可以利用预先训练好的机器学习模型(神经网络模型或深度学习模型)对数学题目进行分词和标注。用于对机器学习模型进行训练的样本为数学题目,每个数学题目样本的标签为数学题目的分词结果,和/或各个分词的词性。其中,一些数学题目样本中有公式,一些数学题目样本中没有公式,在有公式的数学题目样本中,将公式作为一个分词进行词性标注。

在一种可选的实现方式中,可以通过一个机器学习模型(为便于描述和区分,记为分词标注模型)对数学题目进行分词和词性标注,在对分词标注模型进行训练时,将数学题目样本输入分词标注模型,得到分词标注模型输出的分词结果和各个分词的词性,以分词标注模型输出的分词结果趋近于数学题目样本标签中的分词结果,以及分词标注模型输出的各个分词的词性趋近于数学题目样本的标签中的词性为目标,对分词标注模型的参数进行更新,直至满足训练结束条件。

在另一种可选的实现方式中,也可以通过不同的模型(为便于描述和区分,记为分词模型和词性标注模型)分别进行分词和词性标记,即通过分词模型对数学题目样本进行分词,通过词性标注模型对分词模型的分词结果进行词性标记。该实现方式中,分词模型和词性标注模型为两个相互独立的模型,这两个模型可以分别进行训练。对分词模型和词性标注模型进行训练使用的训练样本也是数学题目样本,对分词模型和词性标注模型进行训练使用的数学题目样本可以是不同的数学题目样本,也可以是相同的数学题目样本,或者,存在部分相同的数学题目样本。分词模型对应的数学题目样本的标签为分词结果;词性标注模型对应的数学题目样本的标签为各个分词的词性标记。

在对分词模型进行训练时,可以将分词模型对应的数学题目样本输入分词模型,得到分词结果,以分词模型输出的分词结果趋近于数学题目样本的标签为目标,对分词模型的参数进行更新,直至满足训练结束条件。

在对词性标注模型进行训练时,可以将词性标注模型对应的数学题目样本输入词性标注模型,得到数学题目样本中的各个分词的词性标注结果,以词性标注模型输出的各个分词的词性标注结果趋近于数学题目样本的标签为目标,对词性标注模型的参数进行更新,直至满足训练结束条件。

例如,以对“When n is a positive integer,9+3n+2=m”进行分词和词性标记为例,基于本申请,对其进行分词和词性标记的结果为“When/WRB n/VAL is/VBZ a/DTpositive/JJ integer/NN,/PUNCTUATION 9+3n+2=m/FORM”。以“When/WRB”为例,其标示分词When的词性被标记为WRB,或者说,When的词性标签为WRB。

获得各个分词的文本特征和词性特征。

其中,分词的词性特征可以是分词的词性标签的文本特征。

作为示例,可以通过词向量表示模型对各个分词进行处理得到各个分词的词向量表示作为分词的文本特征,通过词向量表示模型对各个分词的词性标签进行处理得到各个分词的词性标签的词向量表示作为分词的词性特征。其中,词向量表示模型可以为词向量WordEmbedding模型,WordEmbedding模型具体可以为文本深度表示模型word2vec模型、全局词向量表示模型(Global Vectorsfor Word Representation,GloVe)、向量空间模型(Vector Space Model,VSM)中的任意一种,当然,本申请实施例并不限定于此,其它用于确定目标词自身语义信息的词向量的模型也适用。

对于每一个叶子结点,根据该叶子结点处的分词的文本特征和词性特征,得到该叶子结点的编码特征。

可选的,对于每一个叶子结点,可以将该叶子结点处的分词的文本特征和词性特征拼接,得到该叶子结点的编码特征;或者,可以将该叶子结点处的分词的文本特征和词性特征相加,得到该叶子结点的编码特征;或者,可以将该叶子结点处的分词的文本特征和词性特征加权求和(权重可以为预设的常量值),得到该叶子结点的编码特征。

可选的,对于每一个叶子结点,可以将该叶子结点处的分词的文本特征和词性特征进行拼接或相加或加权相加,得到该叶子结点的初始编码特征;然后,采用双向编码网络(比如,LSTM网络或GRU网络等)对各个叶子结点的初始编码特征进行双向编码,得到各个叶子结点的隐层特征表示作为叶子结点的编码特征。双向编码网络的具体编码过程不是本申请的关注重点,这里不再赘述。

在一可选的实施例中,上述对非叶子结点C的各个子结点的编码特征进行基于注意力机制的融合,得到非叶子结点C的编码特征的一种实现流程图如图3所示,可以包括:

步骤S301:基于非叶子结点C的初始化特征,以及非叶子结点C的每一个子结点的编码特征,获得非叶子结点C的每一个子结点的注意力权重。

非叶子结点C的初始化特征可以是非叶子结点C的子句类型标签的语义表征(为便于描述,记为h

可以通过数学题目表示模型的注意力模块计算非叶子结点C的每一个子结点的注意力权重。具体的,假设非叶子结点C一共有g个子结点(g个子结点的编码特征分别记为h

A

其中,W

步骤S302:基于非叶子结点C的每一个子结点的注意力权重,将非叶子结点C的各个子结点的编码特征加权求和,得到非叶子结点C的编码特征。

将非叶子结点C的编码特征记为h

如前所述,本申请的数学题目的表示结果可以通过一阶逻辑表示方法进行表示,但是,一阶逻辑难度很大,很难获得大量的用于训练翻译机器的语料,使得翻译机器的泛化性差。

本申请通过从网络上以及线下收集目标数学领域(比如,初等数学领域)的数学题目、数学教材、数学教辅用书、学生试卷、作业等相关数据,对收集的数据进行研究,定义出一套名为VCF(Verb Connection Formular)的表示方案。对于收集的相关数据,以题目为单位,每一道题需要有详细的逐步解题过程,如果缺失解题步骤,则组织人力或者采用众包的形式对缺失的部分进行补充。数学知识点则需要收集教材上定义清晰的公理,定理及相关推理过程。此部分数据越多越好。

通过对收集的相关数据进行研究发现,所有的数据中需要研究的对象可以简单定义为个体individuals(包括常量constants和变量variables)、概念concept(主要定义数学概念,通常为最基础的数学元概念,例如,等式、不等式等)、操作符operators(主要包括函数functions和关系relations)。

数学题目中的每个句子的核心往往是这个句子中的动词,以该动词为中心将其它部分连接、组合起来,就可以得到该句子的形式化的语义表示,对不同句子的连接组合,就可以得到整个数学题目的形式化的语义表示,经过深入的分析和闭环迭代实验,定义出一套VCF的表示方案,该方案能够正确的表示收集的数据中的所有题目与数学知识。本申请实施例提供的VCF表示方案包括:

=(,,)|[﹁]

=(|)([|||,]

=Conjunctions

=(Integer|Triangle|Equation|Odd|...)

=(?|Add|Multiple|Remainder|…)

=(constant number|“literal_constant”)。

其中,代表Statements,其用于表示整个数学题目的最终的VCF形式化表示结果。“|”表示或,“﹁”表示非,“[]”表示可选的,比如,[﹁]表示可以有﹁,也可以没有﹁。

代表第i个Statements,其用于表示数学题目中第i个句子的最终的VCF形式化表示结果。

代表VCF中一个最基本单元的表示,其形式基本为谓词-参数结构(apredicate-argument structure),其中,参数可以是常量、变量等,例如:奇数x表示为Odd(x),参数数量一般不受限制,参数数量一般大于1,如果没有明确给出具体名称,则由系统自动生成一个内部名称,例如:“一个三角形的面积为26m

代表初等数学中的概念实体,比如整数、三角形、等式等。

代表操作符,操作符有一元操作符,比如:Bool(Equation(5+7=12));也有二元操作符,比如:Add(3,5);也有多元操作符,比如SumOfArithmeticSeq(1,99,2),表示对首项为1,公差为2,共计99项的等差数列求和。“?”代表要求的问题的标识符,比如:“求该三角形的周长?”则可以表示为:?Perimeter(rs_a)。

代表常量,比如数学题目中已知的数据,比如“Tom have 5apples”中的5。为了便于扩展,定义了“literal_constant”,使用双引号进行特殊标记,用于表示一些特殊的现象以及已知的数学等式,比如:“…”表示省略,“x+y=8”表示已知的等式。

表示连接(conjunction),用于子句(clause)的连接,在本申请中,如果没有明确指明的类别,默认即为And,在数学题目表示中,大部分都是And。为了解决常识以及自然语言中的一些问题,也定义了其他的conjunction,比如,非(﹁),或(|)等。

其中,操作符定义的关系relation可以包括:

Conditional Relation:用于表示某一种情况依赖于一些前提条件,基本的语义表示形式为(IF,Condition,Conclusion),其意义为当Condition满足时,Relation成立。比如:“当x>0时,有x+18=y-3成立”其用VCF的形式化表示为(IF,Larger(x,0),Equation(“x+18=y-3”))。

Alternative Relation:用于表示在若干个选项中进行选择的情况,基本的语义表示形式为(Either,ChoiceA,ChoiceB),其语义为可以在ChoiceA和ChoiceB中进行选择。比如:“当a>b时,有3a+6b=18c成立,当a≤b时,有a-3b=2d成立”其用VCF的形式化表示为(Either,(IF,Larger(a,b),Equation(“3a+6b=18c”)),(IF,NotGrater(a,b),Equation(“a-3b=2d”))。

例如,“正整数x等于3”用VCF可以表示为:

Integer(x),Equal(x,3)

其中,x与3是个体(individuals),Integer是概念(concept),Equal是一个二元操作符(operator)。

作为示例,上述目标数学领域并不局限于初等数学领域,也可以是其它数学领域,比如,高等数学领域等。

由于VCF是针对特定数学领域而定义的表示方法,使得VCF的表示内容少,易于特定数学领域的人员理解,因而,容易采用众包形式进行标注数学题目的VCF表示结果,获得大量用于对数学题目表示模型进行训练的样本数据,进一步提高数学题目表示模型的泛化性和准确性。

下面以一初等数学题目为例,说明本申请的一种实现方式。

该示例中,数学题目为:If 125percent of x is 150,what is x percent of75。

基于本申请,可以通过如下方式对上述示例的数学题目进行表示:

步骤1:对示例的数学题目进行语义解析,得到语义解析树。该示例中,由于数学题目只有一个句子,因此,可以直接对数学题目进行语义解析。如图4所示,为本申请实施例提供的基于表1所示的五种子句类型对示例的数学题目进行语义解析得到的语义解析树的一种示意图。

步骤2:对上述数学题目进行分词,并对分词的词性进行词性标记。具体分词和词性的标记结果为:

If/IN 125/VAL percent/NN of/IN x/VAL is/VBZ 150/VAL,/PUN what/WP is/VBZ x/VAL percent/NN of/NN 75/VAL

以“If/IN”为例,表示If这个分词的词性标签为IN。

其中,步骤1和步骤2的执行顺序不做具体限定,可以先执行步骤1,再执行步骤2,或者,先执行步骤2,再执行步骤1,或者,步骤1和步骤2同时执行。

显然,步骤2中上述数学题目进行分词处理得到各个分词是图4所示语义解析树中的叶子结点。

步骤3:通过预先训练好的数学题目表示模型的编码模块,按照自下向上的顺序对语义解析树进行特征规约,得到数学题目的编码特征。如图5所示,为本申请实施例提供的自下而上对语义解析树进行特征规约的一种示意图。

具体的,可以通过词向量表示模型得到各个分词的词向量表示作为各分词的文本特征,通过词向量表示模型对各个分词的词性标签进行处理得到各个分词的词性标签的词向量表示作为分词的词性特征。对于每一个分词,也就是语义解析树中的叶子结点,可以将该叶子结点处的分词的文本特征和词性特征进行拼接,得到该叶子结点的初始编码特征,在获得各个叶子结点的初始编码特征后,采用双向编码网络(比如,LSTM网络或GRU网络等)对各个叶子结点的初始编码特征进行双向编码,得到各个叶子结点的隐层特征表示作为叶子结点的编码特征。

对于每一个非叶子结点,比如,对于“125percent”这个非叶子结点,其子结点是“125”和“percent”这两个叶子结点,其子句类型标签是NOUN,因此,可以获得NOUN的语义表征,基于NOUN的语义表征,以及“125”的编码特征和“percent”的编码特征,计算“125”的注意力权重和“percent”的注意力权重,然后将“125”的编码特征和“percent”的编码特征加权求和,得到“125percent”这个非叶子结点的编码特征。

再比如,对于“125percent of x”这个非叶子结点,其子结点有三个,分别是“125percent”这个非叶子结点,以及“of”和“x”这两个叶子结点,其子句类型标签是PREP,因此,可以获得PREP的语义表征,基于PREP的语义表征,以及“125percent”的编码特征、“of”的编码特征和“x”的编码特征,计算“125percent”的注意力权重、“of”的注意力权重和“x”的注意力权重,然后将“125percent”、“of”和“x”的编码特征加权求和,得到“125percent of x”这个非叶子结点的编码特征。

依此类推,直至得到根结点“If 125percent of x is 150,what is x percentof75”的编码特征。

步骤4:通过上述数学题目表示模型的解码模块,对根结点的编码特征进行解码,得到“If 125percent of x is 150,what is x percent of 75”的VCF表示结果:(IF,(NumberPercent(125),Of(x,125,rs_c),Be(rs_c,150)),(NumberPercent(x),Of(75,x,rsa),Be(rs_b,rs_a),?(rs_b)))。

作为示例,解码模块可以通过深度神经网络(Deep Neural Networks,DNN)实现,也可以通过卷积神经网络(Convolutional Neural Networks,CNN)实现,本申请不做具体限定。

上述示例中,数学题目只有一个句子,因此,对数学题目进行解析仅得到一个语义解析树。如果,“If 125percent of x is 150,what is x percent of 75”仅是某个数学题目中的一个句子,则,可以对该某个数学题目中的各个句子(假设有n个句子:S1…Si…Sn)分别进行解析,得到n个语义解析树,然后,对于每一个语义解析树,按照步骤3进行自下而上的特征规约,得到n个句子的编码特征。如图6所示,为本申请实施例提供的自下而上对语义解析树进行特征规约的另一种示意图。将得到的n个句子的编码特征输入到解码模块,解码模块可以基于自注意力机制,对获得的n个句子的编码特征进行融合,得到该某个数学题目的编码特征,然后对该某个数学题目的编码特征进行解码,得到该某个数学题目的VCF表示结果。作为示例,解码模块也可以不对n个句子的编码特征进行基于注意力机制的融合,而是进行其它方式的融合,比如,拼接后进行特征尺寸的缩放,或者,相加后进行特征尺寸的缩放等。

本示例中,用于对数学题目表示模型进行训练的训练集中,数学题目样本的标签为数学题目的VCF表示结果。

与方法实施例相对应,本申请实施例还提供一种数学题目表示装置,本申请实施例提供的数学题目表示装置的一种结构示意图如图7所示,可以包括:语义解析模块701和处理模块702;其中,

语义解析模块701用于对数学题目进行语义解析,得到至少一个语义解析树;所述语义解析树中的每个结点为所述数学题目中的一个子句,所述子句的类型为多个子句类型中的一种,不同子句类型表征不同的句法结构;所述至少一个语义解析树的根结点构成所述数学题目,所述语义解析树中的每个叶子结点为所述数学题目中的一个分词,所述语义解析树中属于同一非叶子结点的子结点规约得到所述非叶子结点;

处理模块702用于基于对所述至少一个语义解析树进行自下而上的规约处理,获得所述数学题目的表示结果,所述表示结果通过预定义的表示方法表示。

本申请实施例提供的数学题目表示装置,按照多个子句类型将数学题目解析为语义解析树,基于语义解析树进行自下而上的规约处理,得到通过预定义的表示方法表示的所述数学题目的表示结果,从而在提高数学题目表示的可解释性的同时,提高数学题目表示的准确率。

在一可选的实施例中,处理模块702可以用于根据每个非叶子结点的子结点的表示结果规约得到该非叶子结点的表示结果。

在一可选的实施例中,处理模块702可以用于利用所述非叶子结点的子句类型对应的映射模板,以及所述非叶子结点的子结点的表示结果,确定所述非叶子结点的表示结果。

在一可选的实施例中,处理模块702可以包括:

第一编码模块,用于基于所述语义解析树中的非叶子结点的子结点的编码特征获得所述非叶子结点的编码特征;

第二编码模块,用于基于各个语义解析树的根结点的编码特征获得所述数学题目的编码特征;

解码模块,用于对所述数学题目的编码特征进行解码,得到所述数学题目的表示结果。

在一可选的实施例中,还包括第三编码模块,用于对所述数学题目进行分词处理并对各个分词进行词性标记;获得各个分词的文本特征和词性特征;对于每一个叶子结点,根据该叶子结点处的分词的文本特征和词性特征,得到该叶子结点的编码特征。

在一可选的实施例中,所述数学题目中包含公式,所述公式为一个分词,所述公式的词性标记与其它分词的词性标记不同。

在一可选的实施例中,第一编码模块用于:对所述非叶子结点的各个子结点的编码特征进行基于注意力机制的融合,得到所述非叶子结点的编码特征。

在一可选的实施例中,第一编码模块用于:基于所述非叶子结点的初始化特征,以及所述非叶子结点的每一个子结点的编码特征,获得所述非叶子结点的每一个子结点的注意力权重;

基于所述非叶子结点的每一个子结点的注意力权重,将所述非叶子结点的各个子结点的编码特征加权求和,得到所述非叶子结点的编码特征。

在一可选的实施例中,所述数学题目属于目标数学领域;

所述数学题目的表示结果通过所述目标数学领域的预定义的知识表示方法表示。

本申请实施例提供的数学题目表示装置可应用于数学题目表示设备,如PC终端、云平台、服务器及服务器集群等。可选的,图8示出了数学题目表示设备的硬件结构框图,参照图8,数学题目表示设备的硬件结构可以包括:至少一个处理器1,至少一个通信接口2,至少一个存储器3和至少一个通信总线4;

在本申请实施例中,处理器1、通信接口2、存储器3、通信总线4的数量为至少一个,且处理器1、通信接口2、存储器3通过通信总线4完成相互间的通信;

处理器1可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路等;

存储器3可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory)等,例如至少一个磁盘存储器;

其中,存储器存储有程序,处理器可调用存储器存储的程序,所述程序用于:

对数学题目进行语义解析,得到至少一个语义解析树;所述语义解析树中的每个结点为所述数学题目中的一个子句,所述子句的类型为多个子句类型中的一种,不同子句类型表征不同的句法结构;所述至少一个语义解析树的根结点构成所述数学题目,所述语义解析树中的每个叶子结点为所述数学题目中的一个分词,所述语义解析树中属于同一非叶子结点的子结点规约得到所述非叶子结点;

基于对所述至少一个语义解析树进行自下而上的规约处理,获得所述数学题目的表示结果,所述表示结果通过预定义的表示方法表示。

可选的,所述程序的细化功能和扩展功能可参照上文描述。

本申请实施例还提供一种存储介质,该存储介质可存储有适于处理器执行的程序,所述程序用于:

对数学题目进行语义解析,得到至少一个语义解析树;所述语义解析树中的每个结点为所述数学题目中的一个子句,所述子句的类型为多个子句类型中的一种,不同子句类型表征不同的句法结构;所述至少一个语义解析树的根结点构成所述数学题目,所述语义解析树中的每个叶子结点为所述数学题目中的一个分词,所述语义解析树中属于同一非叶子结点的子结点规约得到所述非叶子结点;

基于对所述至少一个语义解析树进行自下而上的规约处理,获得所述数学题目的表示结果,所述表示结果通过预定义的表示方法表示。

可选的,所述程序的细化功能和扩展功能可参照上文描述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

技术分类

06120114703212