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

问题解答方法及装置

文献发布时间:2024-04-18 19:58:26


问题解答方法及装置

技术领域

本申请涉及计算机技术领域,特别涉及问题解答方法。本申请同时涉及问题解答装置,一种计算设备,以及一种计算机可读存储介质。

背景技术

随着计算机代数系统的不断优化和改进,通过计算机自动解答数学题获得答案,在实际生活中获得了广泛应用。目前,计算机代数系统内置了数学表达式计算方法,能够直接生成待解答的数学表达式的答案,提高计算机自动求解数学题的准确性和效率。

然而,通过上述方式,只能获得一个最终答案,系统无法展示求解过程中的各个步骤,因此用户无法查看数学表达式的详细求解过程,导致无法帮助用户进一步学习和理解数学表达式的求解方法,不利于自主学习。

发明内容

有鉴于此,本申请实施例提供了问题解答方法。本申请同时涉及问题解答装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的上述问题。

根据本申请实施例的第一方面,提供了一种问题解答方法,包括:

获取待解答问题的解答算式,并确定解答算式中包括的算式因子对应的语义结构,构造解答算式对应的算式语义树;

遍历算式语义树,确定解答算式的至少一个解答路径,其中,解答路径包括至少一个解答步骤,至少一个解答步骤用于求解解答算式的答案;

根据至少一个解答路径的运算代价,确定解答算式的目标解答路径;

根据目标解答路径展示待解答问题的解答步骤。

根据本申请实施例的第二方面,提供了一种问题解答装置,包括:

获取模块,被配置为获取待解答问题的解答算式,并确定解答算式中包括的算式因子对应的语义结构,构造解答算式对应的算式语义树;

第一确定模块,被配置为遍历算式语义树,确定解答算式的至少一个解答路径,其中,解答路径包括至少一个解答步骤,至少一个解答步骤用于求解解答算式的答案;

第二确定模块,被配置为根据至少一个解答路径的运算代价,确定解答算式的目标解答路径;

展示模块,被配置为根据目标解答路径展示待解答问题的解答步骤。

根据本申请实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述计算机指令时实现所述方法的步骤。

根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现所述方法的步骤。

本申请一实施例提供的问题解答方法,获取待解答问题的解答算式,并确定解答算式中包括的算式因子对应的语义结构,构造解答算式对应的算式语义树;遍历算式语义树,确定解答算式的至少一个解答路径,其中,解答路径包括至少一个解答步骤,至少一个解答步骤用于求解解答算式的答案;根据至少一个解答路径的运算代价,确定解答算式的目标解答路径;根据目标解答路径展示待解答问题的解答步骤。

如此,通过获取待解答问题的解答算式,根据解答算式中的算式因子对应的语义结构构造解答算式对应的算式语义树,能够通过对算式语义树的遍历,确定解答算式对应的至少一个解答路径,从而能够获得丰富的解题方法思路;根据各解答路径的运算代价,能够从解答算式对应的各个解答路径中确定运算代价小的目标解答路径并展示,从而使展示的解题过程更加简便,进而实现按照详细的解答步骤对待解答问题的解答算式的求解过程进行逐步骤展示,提高解答算式解答步骤的展示效率,便于用户学习和理解。

附图说明

图1是本申请一实施例提供的一种问题解答方法的流程图;

图2是本申请一实施例提供的一种算式语义树的示意图;

图3是本申请一实施例提供的一种解答路径图的示意图;

图4是本申请一实施例提供的一种对解答步骤进行展示的示意图;

图5是本申请一实施例提供的一种应用于计算题求解的问题解答方法的处理流程示意图;

图6是本申请一实施例提供的一种问题解答装置的结构示意图;

图7是本申请一实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

数学计算题求解是小学数学中重要的一部分。目前,通过计算机自动求解数学计算题能够通过计算机代数系统中内置的表达式计算方法实现。但是,现有算法往往不注重解题步骤的生成,只注重得到表达式的结果,不利于用户学习和理解包含分数、小数、百分数等的数学题运算。

同时,由于涉及分数、小数、百分数的计算操作包含多种复杂的运算逻辑,例如真分数和假分数之间相互转换、约分、通分、除分数等于乘分数倒数、百分号化小数、小数化分数等等,目前生成解题步骤的方案无法将上述运算逻辑对应的运算过程进行详细展示。因而,用户根据展示的解答步骤和答案,存在无法确定待解答问题的解答算式匹配的是哪种运算逻辑、采用哪种运算逻辑能够进行简便运算,以及不清楚当前步骤中发生了变化的部分是根据哪些解答步骤得到的,等等问题。

基于上述问题,本申请一实施例提供的问题解答方法,获取待解答问题的解答算式,并确定解答算式中包括的算式因子对应的语义结构,构造解答算式对应的算式语义树;遍历算式语义树,确定解答算式的至少一个解答路径,其中,解答路径包括至少一个解答步骤,至少一个解答步骤用于求解解答算式的答案;根据至少一个解答路径的运算代价,确定解答算式的目标解答路径;根据目标解答路径展示待解答问题的解答步骤。

如此,通过获取待解答问题的解答算式,根据解答算式中的算式因子对应的语义结构构造解答算式对应的算式语义树,能够实现对算式语义树的自动遍历,从而确定解答算式对应的至少一个解答路径;根据各解答路径的运算代价,能够从解答算式对应的各个解答路径中确定目标解答路径并展示,从而实现按照详细的解答步骤对待解答问题的解答算式的求解过程进行逐步骤展示,提高解答算式解答步骤的展示效率,并且能够获得更加详细、求解思路更加丰富的解题过程,便于用户学习和理解。

在本申请中,提供了问题解答方法,本申请同时涉及问题解答装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。

图1示出了根据本申请一实施例提供的一种问题解答方法的流程图,具体包括以下步骤102-步骤108:

步骤102:获取待解答问题的解答算式,并确定解答算式中包括的算式因子对应的语义结构,构造解答算式对应的算式语义树。

实际应用中,可以获取待解答问题的解答算式,根据解答算式中包括的算式因子对应的语义结构,对解答算式对应的算式语义树进行构造。

具体地,待解答问题可以理解为需要求解的题目,该题目中包含解答算式。待解答问题的获取方式至少可以包括下述几种方式中的任意一种:接收用户通过终端设备携带的摄像机拍摄获得的包含待解答问题的图片、接收用户从终端设备系统相册或者其他存储空间内上传的包含待解答问题的图片、接收用户基于交互界面的输入框,直接输入的待解答问题。待解答问题的格式至少包括图片、字符、文档、音频中的任意一种。待解答问题可以是不同场景中的,例如可以是一道完整的数学计算题,也可以是求解物理应用题的过程中,列出的待解答算式。

可以根据待解答问题的格式,选择相应的处理方法,解析待解答问题,识别并获得待解答问题中的解答算式,根据待解答问题获得解答算式的具体实现方式,可以根据实际应用中的需求确定,例如根据预设模板,匹配并提取待解答问题中的解答算式,也可以是通过关键词识别、图像特征识别等方式对解答算式进行提取,本申请对此不做任何限定。

具体地,解答算式可以理解为数学表达式,即,根据数字、运算符、变量等,以能求得数值的有意义的排列方法所得到的组合。其中,运算符可以包括四则运算(即加、减、乘、除)所对应的基本运算符,以及括号、分数线、百分号、小数点等运算符。

示例性地,在计算题求解的应用场景中,解答算式可以为5+3+2,则针对该解答算式求解得到的答案为10;在应用题求解的场景中,解答算式可以为3x+5x,其中x代表变量,则针对该解答算式求解得到的答案为8x。

需要说明的是,解答算式中包括的各个数字、运算符、变量等,都可以理解为该解答算式包括的算式因子。语义结构可以代表对应的算式因子的物理含义。算式语义树可以是一种二叉树,也可以是多叉树,该算式语义树中的各个节点对应解答算式中包括的各个算式因子,且各个节点对应有语义结构。进一步地,根据解答算式中包括的算式因子对应的语义结构,构造得到的算式语义树中,各个非叶子节点可以均为运算符,各个叶子节点可以均为数字。

实际应用中,每个解答算式均存在其对应的算式语义树,因此,能够根据该解答算式对应的算式语义树,对解答算式进行自动求解。实际实现时,可以对待解答问题进行语义分析,结合得到的解答算式,分析每个算式因子代表的物理含义,得到对应的语义结构。然后,根据各个算式因子的语义结构,可以构造得到解答算式对应的算式语义树。节点和节点之间的连接关系可以反映解答算式的语义结构。

一种可能的实现方式中,可以将该解答算式由表达式结构转换为二叉树结构,表达式结构中包括的各个算式因子对应二叉树结构中的各个节点,然后再分析确定该二叉树结构中各个节点的语义结构,将该语义结构添加在对应的节点上,构造得到算式语义树。

另一种可能的实现方式中,可以先分析确定该表达式结构中各个算式因子的语义结构,然后再将各个算式因子转换为二叉树中的节点,再在节点上添加对应的语义结构,构造得到算式语义树。

再一种可能的实现方式中,还可以收集大量不同的解答算式作为样本,各个解答算式对应的算式语义树作为标签,预先训练获得能够根据输入的解答算式,自动构建算式语义树的算式语义树构建模型,从而获得待解答问题的解答算式对应的算式语义树。

本申请中解答算式可以有两种表现结构:表达式结构和树形结构,其中,树形结构可以为二叉树或者多叉树,该两种表达式结构可以互相转换,且表达式结构中的各个算式因子与树形结构中的各个节点一一对应。

本实施例一个可选的实施方式中,以解答算式为二叉树结构为例,解答算式中包括的算式因子为二叉树结构中的节点;此时对待解答问题和解答算式进行语义分析,确定解答算式中包括的每个算式因子对应的语义结构,构造得到解答算式对应的算式语义树,具体实现过程可以如下:

针对二叉树结构的解答算式中的每个节点,根据节点的节点类型,确定节点对应的语义结构;

根据二叉树结构的解答算式和各个节点的语义结构,构造得到解答算式对应的算式语义树。

具体的,节点类型可以为二叉树结构中节点的位置类型,如一种分类方式对应的节点类型可以包括叶子节点和非叶子节点。其他分类方式还可以包括叶子节点、中间节点、根节点,等等。其中,叶子节点可以理解为二叉树结构中最底层的节点,即不包括子节点的节点;非叶子节点可以理解为二叉树结构中除各个叶子节点以外的其他节点;根节点可以理解为二叉树结构中最顶层的节点,即包括子节点、但不包括父节点的节点。根据解答算式中算式因子对应的语义结构,构建得到的二叉树,叶子节点均为数字,非叶子节点均为运算符。

图2示出了本申请一实施例提供的一种算式语义树的示意图。如图2所示为解答算式

通过获取待解答问题的解答算式,确定解答算式中包括的算式因子对应的语义结构,根据算式因子对应的语义结构,构造解答算式对应的算式语义树,能够便于对解答算式的算式因子和语义结构进行解析,从而匹配解答算式对应的运算逻辑,进而提高解答算式的运算效率,并且,由于根据算式语义树,能够匹配解答算式对应的至少一种运算逻辑,根据不同运算逻辑生成的新的算式语义树也能够进一步匹配对应的至少一种运算逻辑,从而能够根据算式语义树,获得解答算式对应的各个解答步骤,因此能够获得更加丰富、全面的求解方式。

步骤104:遍历算式语义树,确定解答算式的至少一个解答路径,其中,解答路径包括至少一个解答步骤,至少一个解答步骤用于求解解答算式的答案。

实际应用中,可以通过遍历算式语义树,确定用于求解解答算式的至少一个解答路径。

具体地,解答路径可以理解为解答算式的一种求解过程,该求解过程中生成的各个解答步骤都可以包括在解答路径中,根据解答路径,能够得到解答算式的答案。解答步骤可以理解为用于求解解答算式答案的步骤,可以根据遍历算式语义树获得。

需要说明的是,根据解答算式中算式因子对应的语义结构,解答算式可能存在不止一种求解方法,因此,遍历算式语义树,能够根据与解答算式适配的多种求解方法,分别对解答算式进行运算得到不同的解答步骤。根据不同求解方法或者不同解答步骤对解答算式进行运算,可以得到不同的解答路径。

示例性地,对于解答算式

需要说明的是,解答路径包括至少一个解答步骤,解答步骤可以理解为用于求解解答算式答案的步骤。根据解答算式的任一个解答路径中的各个解答步骤,都可以运算得到解答算式的答案。不同解答路径中,解答步骤可以不同,不同解答步骤对应的运算过程也可以不同,但各个解答路径最终得到的运算结果都是相同的,均为解答算式的答案。

实际应用中,针对数学表达式,可以预先设置多种不同的运算逻辑。运算逻辑可以理解为对解答算式进行一步运算,得到求解步骤的运算方法。具体地,运算逻辑从类型上可以划分为化简、简便计算、直接计算,等等。其中,化简可以理解为在不改变表达式含义的情况下,去除不必要的部分,改写表达式;简便计算可以理解为在计算过程中更加简便的单步运算方式;直接计算可以理解为单步的运算过程,包括二元运算和一元运算等。

同一类型的运算逻辑还可以继续细分出不同的子运算逻辑,具体地,化简可以包括:去除多余括号、分数约分、去除多余的+0,-0,*1,÷1、百分号转小数、小数转分数、带分数转纯分数、除分数变乘分数倒数、复杂分数转为除法,等等;简便计算可以包括:同分母加减法、分数乘法分子分母约分、整数加减分数,等等;直接计算可以包括:一元运算(包括取负数、开根运算等)、二元运算(包括整数的加减乘除运算、分数的加减乘除运算等),等等。

实际实现过程中,算式语义树可以对应至少一种运算逻辑。至少一种运算逻辑的确定方式,可以通过搜索算式语义树中的各个节点,判断算式语义树中是否存在与预设的运算逻辑匹配的节点来确定。

在确定算式语义树匹配的运算逻辑的基础上,可以通过遍历算式语义树,来确定用于求解该解答算式的解答路径。

本申请一个或多个实施例中,遍历算式语义树,确定解答算式的至少一个解答路径,可以包括如下步骤:

确定算式语义树的目标运算逻辑,其中,目标运算逻辑为至少一种运算逻辑中的任一种;

根据目标运算逻辑遍历算式语义树,获得目标运算逻辑对应的解答路径。

具体地,目标运算逻辑为算式语义树符合的至少一种运算逻辑中的任一种,根据目标运算逻辑遍历算式语义树,能够对算式语义树进行运算,从而获得该目标运算逻辑对应的解答路径。

通过确定算式语义树的目标运算逻辑,根据目标运算逻辑遍历算式语义树,得到求解算式语义树的解答路径,能够提高解答算式的求解效率和准确性,同时,根据目标运算逻辑,能够得到求解解答算式的不同解答步骤,能够根据不同解答步骤,获得不同的解答路径,丰富解答算式的求解方法,便于按照用户需求对不同解答路径对应的解答步骤进行展示。

本申请一个或多个实施例中,根据目标运算逻辑遍历算式语义树,获得目标运算逻辑对应的解答路径,可以包括如下步骤:

将算式语义树作为待处理语义树;

按照目标运算逻辑对待处理语义树进行一步运算,获得该步运算对应的更新语义树,将更新语义树对应的表达式作为目标运算逻辑对应的一个解答步骤;

将更新语义树作为待处理语义树,返回执行按照目标运算逻辑对待处理语义树进行一步运算,获得该步运算对应的更新语义树的步骤,直至待处理语义树符合预设终止条件,获得目标运算逻辑对应的各个解答步骤;

将目标运算逻辑对应的各个解答步骤作为目标运算逻辑对应的解答路径。

实际应用中,待处理语义树可以理解为要根据目标运算逻辑,进行一步运算的语义树。更新语义树可以理解为对待处理语义树进行一步运算后,得到的将待处理语义树的结构进行改变后的新生成的语义树。预设终止条件可以理解为,新生成的语义树已到达最简状态,即无法再进行下一步计算,也无法进行形式化简等操作,例如新生成的语义树是数字,或者无法约分的分数,等等,即判断为待处理语义树符合预设终止条件,可以将该待处理语义树作为解答算式的答案。

实际实现过程中,可以将算式语义树作为待处理语义树,搜索待处理语义树中的节点,确定待处理语义树符合的至少一种运算逻辑。确定至少一种运算逻辑中的任一种作为目标运算逻辑,并根据目标运算逻辑对待处理语义树进行一步运算,得到该步运算对应的更新语义树。将更新语义树对应的表达式作为一个解答步骤,将更新语义树作为待处理语义树,返回搜索待处理语义树的至少一种运算逻辑,照目标运算逻辑对待处理语义树进行一步运算,获得该步运算对应的更新语义树的步骤,直至待处理语义树符合预设终止条件。根据目标运算逻辑获得对应的各个解答步骤,将目标运算逻辑对应的各个解答步骤作为一个解答路径。

示例性地,对解答算式

选择化简作为目标运算逻辑,则按照除分数等于乘分数倒数化简解答算式

进一步地,若选择简便计算,则通过分子分母分别相乘,可以获得解答步骤

若选择直接计算,则获得解答步骤

综上,解答算式

一种解答路径包括解答步骤

一种解答路径包括解答步骤

一种解答路径包括解答步骤

实际应用中,通过搜索待处理语义树符合的至少一种运算逻辑,根据目标运算逻辑对待处理语义树进行一步运算,根据该步运算获得更新语义树,将更新语义树作为待处理语义树,返回确定目标运算逻辑并对待处理语义树进行一步运算的步骤,直至待处理语义树符合预设终止条件,可以通过上述循环过程,确定解答算式的一种解答路径,从而获得求解解答算式的详细解答步骤,便于对详细解答步骤进行展示。同时,由于每一个未满足预设终止条件的待处理语义树都可以确定至少一种运算逻辑,因此,根据本申请实施例提供的方法,遍历算式语义树,能够获得解答算式按照不同运算逻辑进行求解的过程中,能够生成的各个求解步骤,从而能够根据各个求解步骤,选择更符合用户需求的解答路径进行解答步骤的展示,提高解答步骤展示的有效性。

进一步地,本申请一个或多个实施例中,按照目标运算逻辑对待处理语义树进行一步运算,获得该步运算对应的更新语义树,可以包括如下步骤:

按照目标运算逻辑确定待处理语义树中当前的待运算节点;

对当前的待运算节点进行运算,获得运算结果,将运算结果作为更新节点;

将更新节点替换待处理语义树中的待运算节点,获得更新语义树。

具体地,当前的待运算节点,可以理解为待处理语义树中与目标运算逻辑匹配的各个节点。示例性地,待运算节点可以是待处理语义树中的某棵子树对应的节点,也可以是某个运算符对应的节点和该运算符节点包括的叶子节点。运算结果可以理解为根据目标运算逻辑对当前的待运算节点进行运算,获得当前的待运算节点对应的运算结果,该运算结果可以作为更新节点,对待处理语义树中的待运算节点进行替换,从而得到更新语义树。

实际应用中,对解答算式进行运算,可以理解为对解答算式对应的算式语义树的树形结构进行改变。待处理语义树中,与目标运算逻辑匹配的当前的待运算节点经过运算后,能够根据运算结果获得更新节点,则通过更新节点替换待运算节点,就可以通过改变待处理语义树的结构,获得更新语义树,并根据更新语义树,得到目标运算逻辑对应的解答步骤。

需要说明的是,解答路径中的各个解答步骤,均存在一棵对应的表达式树,根据表达式树的结构的变化,能够获得相对于前一个解答步骤,表达式中发生变化的部分。可以在待处理语义树转换为更新语义树的过程中,将树结构发生变化的节点进行特殊标识,从而在根据表达式树生成解答步骤的过程中,可以将当前解答步骤相较于前一个解答步骤发生变化的算式因子进行特殊标识。具体地,特殊标识可以是对表达式中发生变化的部分进行高亮显示,也可以是加粗、倾斜或者添加其他用于区分变化部分和未变化部分的特殊标识。

通过按照目标运算逻辑确定待处理语义树中当前的待运算节点;对当前的待运算节点进行运算,获得运算结果,将运算结果作为更新节点;将更新节点替换待处理语义树中的待运算节点,获得更新语义树,能够通过对待处理语义树的结构的改变,获得解答算式的各个解答步骤对应的更新语义树,并且能够对语义树中结构发生变化的部分进行标识,便于对变化的算式因子和未变化的算式因子进行区别展示,便于帮助用户理解解答步骤,能够直观看出表达式每一步的变化。

需要说明的是,根据待处理语义树中的待运算节点进行运算,将运算结果作为更新节点从而获得更新语义树的过程中,还可能存在按照目标运算逻辑进行的中间运算。例如,目标运算逻辑为直接计算,若待运算节点对应的语义结构为两个不同分母的分数相加,则按照目标运算逻辑,在求解两个分数相加之和的过程中还存在通分,以及同分母的分数相加的运算过程。因此,当前解答步骤和上一解答步骤之间,还可能存在至少一个中间步骤。

为了对解答算式的各个运算步骤进行详细展示,帮助用户更好地理解和学习表达式的计算方法,在本申请一个或多个实施例中,对当前的待运算节点进行运算,获得运算结果之后,还可以包括如下步骤:

记录运算结果的运算表达式,将运算表达式作为中间运算。

实际应用中,可以记录待运算节点运算过程中生成的运算表达式。并将该过程中生成的运算表达式作为中间运算。

通过记录各个解答步骤生成过程中对应的中间运算,能够获得更加详细的求解步骤,提高展示结果的有效性,帮助用户更好地理解各个解答步骤的获取方式。

步骤106:根据至少一个解答路径的运算代价,确定解答算式的目标解答路径。

实际应用中,可以根据至少一个解答路径的运算代价,确定解答算式的目标解答路径。

具体地,运算代价可以理解为根据解答路径包括的各个解答步骤进行运算以获得答案,所需的运算开销,具体包括时间开销和/或空间开销。运算代价越大,代表通过该解答路径求解所需花费的时间和/或空间越大,也可以代表该解答路径对应的评分越低,越不适合作为解答算式的目标解答路径。

目标解答路径可以理解为将其包含的解答步骤进行展示的解答路径。根据解答算式对应的至少一个解答路径和各个解答路径的运算代价,可以确定一个或者多个解答路径进行展示,目标解答路径可以理解为待展示的一个或多个解答路径中的任意一个。

在一种可选的实施例中,根据至少一个解答路径的运算代价,确定解答算式的目标解答路径,可以通过分别运算各个解答路径对应的运算代价实现。

具体地,可以获取各个解答路径中包含解答步骤的个数,包含的解答步骤越多,可以认为该解答路径对应的运算代价越大。

还可以根据解答路径中包含的各个求解步骤对应的运算逻辑,为各个求解步骤设置权重,从而根据各个求解步骤的权重之和,获得解答路径对应的运算代价。可以按照各个解答路径的运算代价,对各个解答路径的选取优先级进行排序,从而确定运算代价较低的一个或多个解答路径作为解答算式的目标解答路径。

需要说明的是,根据运算逻辑的不同,求解步骤可以分别对应不同的权重。示例性地,化简对应的运算开销最低,可以对运算逻辑为化简的解答步骤设置最低的权重;简便计算对应的运算开销相对较低,可以对运算逻辑为简便计算的解答步骤设置较低的权重;直接计算对应的运算开销相对较高,可以对运算逻辑为直接计算的解答步骤设置较高的权重。

在一种可选的实施例中,根据至少一个解答路径的运算代价,确定解答算式的目标解答路径,可以包括如下步骤:

将解答算式作为起始节点,将至少一个解答路径包括的解答步骤作为中间节点,按序连接属于同一解答路径的各中间节点,构建获得解答算式对应的解答路径图;

调用最短路径算法,确定解答路径图中运算代价最低的目标解答路径。

实际应用中,为了提高目标解答路径的选择效率,可以将解答算式作为图的起始节点,将各个解答路径作为图中的一条路径,构建解答算式对应的解答路径图。

具体地,解答路径中包含的各个解答步骤可以作为该路径的中间节点,进而能够根据解答算式对应的至少一个解答路径,构建解答算式对应的解答路径图。可以通过调用最短路径算法,找到图中的最短路径,并将其确定为目标解答路径。

为了提高最短路径选择的准确性,本申请一个或多个实施例,将解答算式作为起始节点,将至少一个解答路径包括的解答步骤作为中间节点,按序连接属于同一解答路径的各中间节点,构建获得解答算式对应的解答路径图之后,还可以包括如下步骤:

确定相连两个解答步骤之间的中间运算;

根据中间运算,为相连两个解答步骤的连接边设置权重。

实际实现时,可以查找在生成解答路径的过程中,是否记录了两个解答步骤之间的中间运算。如果能够获取到预先存储的中间运算的记录,则可以直接获取两个解答步骤之间的中间运算;如果无法获取中间运算的记录,或者并未在生成解答路径的过程中记录中间运算,则可以根据两个解答步骤,生成两个解答步骤对应的中间运算。

进一步地,在构建解答路径图的过程中,可以将中间运算作为两个解答步骤对应的中间节点之间的边,并根据中间运算对应的运算规则,为相连的两个解答步骤的连接边设置权重。

具体地,可以根据不同运算规则对应的运算开销,为连接边设置权重。例如,乘法和除法的运算开销大于加减法,同分母的分数加减法的运算开销小于异分母的分数加减法的运算开销,等等。

如图3所示,图3示出了本申请一实施例提供的一种解答路径图的示意图。沿用上例,对解答算式

具体地,根据遍历算式语义树获得的各个解答路径以及各个解答路径包括的解答步骤,构建如图3所示的解答路径图。解答路径图起点为

通过根据相连两个解答步骤之间的中间运算,为相连两个解答步骤的连接边设置权重,能够提高针对解答路径图确定最短路径的准确性,从而获得运算代价最低的解答路径,进而能够在展示详细解答步骤的基础上,选择最简便的运算方法对应的解答步骤进行展示,能够更好地引导用户学习和理解,提高解答步骤展示的有效性。

步骤108:根据目标解答路径展示待解答问题的解答步骤。

实际应用中,可以根据目标解答路径,将目标解答路径中的解答步骤作为待解答问题的解答步骤进行展示。

需要说明的是,为了尽可能还原待解答问题求解过程中的详细解答步骤,并且突出各个解答步骤中表达式发生变化的部分,以方便用户进行理解和查看,本申请一个或多个实施例中,根据目标解答路径展示待解答问题的解答步骤,可以包括如下步骤:

确定目标解答步骤相对上一个解答步骤的变化因子,对目标解答步骤中的变化因子设定标识,其中,目标解答步骤为目标解答路径包括的任一个目标解答路径步骤;

按序展示目标解答路径包括的各个解答步骤。

具体地,目标解答步骤可以理解为当前进行展示的解答步骤。变化因子可以理解为相对于上一个解答步骤,目标解答步骤中发生了变化的算式因子。上一个解答步骤可以理解为目标解答步骤的上一个解答步骤,在解答路径图中,上一个解答步骤对应的节点与目标解答步骤对应的节点相连。

标识用于在展示解答步骤的过程中,突出每个解答步骤相对于相邻的上一个解答步骤中算式因子发生变化的部分;对目标解答步骤中的变化因子设定标识的方式包括但不限于加粗、设置斜体、高亮、改变颜色等等。

需要说明的是,确定目标解答步骤相对上一个解答步骤的变化因子,一种可选的实现方式为,获取解答算式的解答路径生成的过程中,根据待处理语义树生成更新语义树时对变化节点添加的标识,根据标识,确定目标解答步骤中的变化因子。另一种可选的实现方式为,根据目标解答步骤包括的算式因子和上一个解答步骤包括的算式因子,确定目标解答步骤中的变化因子,具体地,可以通过对比表达式的方式确定变化因子,也可以通过对比目标解答步骤和上一个解答步骤分别对应的语义树,确定目标解答步骤中的变化因子。

通过确定目标解答步骤相对上一个解答步骤的变化因子,对目标解答步骤中的变化因子设定标识,并按序展示目标解答路径包括的各个解答步骤,能够还原解答算式的详细求解过程,并更容易让用户关注到各个解答步骤中发生变化的部分,能够更好地帮助理解整个解题过程,提高解答步骤展示的有效性。

实际应用中,由于目标解答路径中相邻两个解答步骤可以对应有中间运算,在展示解答步骤时一并展示中间运算,容易导致解答步骤繁琐,不利于用户理解和观看。因此,为了进一步提高解答步骤展示的有效性和可理解性,本申请一个或多个实施例中,按序展示待解答问题的解答步骤之后,还可以包括如下步骤:

响应于目标解答步骤的展开操作,获取目标解答步骤与上一个解答步骤之间的中间运算;

在目标解答步骤对应的展开区域展示中间运算。

具体地,展开操作可以理解为用于展示目标解答步骤与相连的上一步骤之间的中间运算的操作。

实际应用中,展示区域内可以仅对目标解答路径中包括的各个解答步骤进行展示,而隐藏或者折叠中间运算,从而使解答算式的求解步骤更加简洁清晰。当用户想要查看目标解答步骤是如何运算获得的情况下,可以通过点击目标解答步骤,或者交互界面的展开控件,以使目标解答步骤与上一个解答步骤之间的中间运算在目标解答步骤对应的展开区域展示。

需要说明的是,交互界面中还可以设置一键展开所有解答步骤对应的中间运算的控件,用于将目标解答路径中各个解答步骤和各个解答步骤与相连的上一步骤之间的中间运算一并进行展示。在展示的过程中,中间步骤可以进行缩进展示,从而对解答步骤和中间步骤分层级展示,提高步骤展示的直观性。

如图4所示,图4示出了本申请一实施例提供的一种对解答步骤进行展示的示意图。

针对解答算式

进一步地,在展示各个解答步骤的基础上,为了更好地帮助用户理解和学习解答步骤是如何计算得到的,还可以根据各个解答步骤对应的运算逻辑生成描述语句,示例性地,在中间运算

通过在展示详细解答过程时收起中间运算,仅展示解答步骤,并基于展开操作对中间运算进行展示,可以针对不同理解能力的用户展示不同的解题步骤,在保障解题步骤展示详细的基础上避免展示过于繁琐,提高解题步骤展示的有效性。

本申请一实施例提供的问题解答方法,通过获取待解答问题的解答算式,根据解答算式中的算式因子对应的语义结构构造解答算式对应的算式语义树,能够通过对算式语义树的遍历,确定解答算式对应的至少一个解答路径,从而能够获得丰富的解题方法思路;根据各解答路径的运算代价,能够从解答算式对应的各个解答路径中确定运算代价小的目标解答路径并展示,从而使展示的解题过程更加简便,进而实现按照详细的解答步骤对待解答问题的解答算式的求解过程进行逐步骤展示,提高解答算式解答步骤的展示效率,便于用户学习和理解。

下述结合附图5,以本申请提供的问题解答方法在计算题求解的应用为例,对所述问题解答方法进行进一步说明。如图5所示,图5示出了本申请一实施例提供的一种应用于计算题求解的问题解答方法的处理流程示意图。

输入待解答问题中的计算题表达式,根据计算题表达式建立对应的表达式树,将表达式树作为待处理表达式树,判断待处理表达式树是否到达最终状态,即是否无法进行下一步计算或者约分等操作。

在待处理表达式未达到最终状态的情况下,尝试用所有单步解题方法对待处理表达式树进行一步运算,即,搜索待处理表达式树中的节点,为待处理表达式匹配至少一种运算逻辑。其中,单步解题方法包括化简、简便计算和直接计算,化简包括去括号、除分数变乘分数倒数、分数约分、百分号化小数、小数化分数等等中的至少一种,简便计算包括分数乘法直接约分、同分母加减、整数加减分数等等中的至少一种,直接计算包括整数加减乘除、分数加减乘除、一元运算等等中的至少一种。

根据确定的目标运算逻辑,对待处理表达式树中的待处理节点进行一步运算,根据运算结果和中间运算过程,得到更新节点和次要求解步骤,根据更新节点替换待处理节点,得到更新表达式树,根据更新表达式树对应的表达式获得主要求解步骤。

将更新表达式树作为待处理表达式树,返回根据确定的目标运算逻辑,对待处理表达式树中的待处理节点进行一步运算的步骤,不断循环直至待处理表达式树到达最终状态,根据得到的多个主要步骤和次要步骤,构建计算题表达式对应的解答路径图。

具体地,将计算题表达式作为解答路径图的起始节点,将各个主要步骤作为解答路径图的中间节点,将当前主要步骤和上一主要步骤之间的次要步骤作为解答路径图的边,并根据运算逻辑对应的预设权重,对各个边设置权重。

调用最短路径算法,求解解答路径图中的最短路径,将最短路径中包含的求解步骤作为计算题表达式的解题步骤输出并展示。

本申请一实施例提供的问题解答方法,通过获取待解答问题的解答算式,根据解答算式中的算式因子对应的语义结构构造解答算式对应的算式语义树,能够通过对算式语义树的遍历,确定解答算式对应的至少一个解答路径,从而能够获得丰富的解题方法思路;根据各解答路径的运算代价,能够从解答算式对应的各个解答路径中确定运算代价小的目标解答路径并展示,从而使展示的解题过程更加简便,进而实现按照详细的解答步骤对待解答问题的解答算式的求解过程进行逐步骤展示,提高解答算式解答步骤的展示效率,便于用户学习和理解。

与上述方法实施例相对应,本申请还提供了问题解答装置实施例,图6示出了本申请一实施例提供的一种问题解答装置的结构示意图。如图6所示,该装置包括:

获取模块602,被配置为获取待解答问题的解答算式,并确定解答算式中包括的算式因子对应的语义结构,构造解答算式对应的算式语义树。

第一确定模块604,被配置为遍历算式语义树,确定解答算式的至少一个解答路径,其中,解答路径包括至少一个解答步骤,至少一个解答步骤用于求解解答算式的答案。

第二确定模块606,被配置为根据至少一个解答路径的运算代价,确定解答算式的目标解答路径。

展示模块608,被配置为根据目标解答路径展示待解答问题的解答步骤。

可选地,算式语义树对应至少一种运算逻辑;

第一确定模块604,进一步被配置为:

确定算式语义树的目标运算逻辑,其中,目标运算逻辑为至少一种运算逻辑中的任一种;

根据目标运算逻辑遍历算式语义树,获得目标运算逻辑对应的解答路径。

可选地,第一确定模块604,进一步被配置为:

将算式语义树作为待处理语义树;

按照目标运算逻辑对待处理语义树进行一步运算,获得该步运算对应的更新语义树,将更新语义树对应的表达式作为目标运算逻辑对应的一个解答步骤;

将更新语义树作为待处理语义树,返回执行按照目标运算逻辑对待处理语义树进行一步运算,获得该步运算对应的更新语义树的步骤,直至待处理语义树符合预设终止条件,获得目标运算逻辑对应的各个解答步骤;

将目标运算逻辑对应的各个解答步骤作为目标运算逻辑对应的解答路径。

可选地,第一确定模块604,进一步被配置为:

按照目标运算逻辑确定待处理语义树中当前的待运算节点;

对当前的待运算节点进行运算,获得运算结果,将运算结果作为更新节点;

将更新节点替换待处理语义树中的待运算节点,获得更新语义树。

可选地,第一确定模块604,还包括:

记录运算结果的运算表达式,将运算表达式作为中间运算。

可选地,第二确定模块606,进一步被配置为:

将解答算式作为起始节点,将至少一个解答路径包括的解答步骤作为中间节点,按序连接属于同一解答路径的各中间节点,构建获得解答算式对应的解答路径图;

调用最短路径算法,确定解答路径图中运算代价最低的目标解答路径。

可选地,第二确定模块606,还包括:

确定相连两个解答步骤之间的中间运算;

根据中间运算,为相连两个解答步骤的连接边设置权重。

可选地,展示模块608,进一步被配置为:

确定目标解答步骤相对上一个解答步骤的变化因子,对目标解答步骤中的变化因子设定标识,其中,目标解答步骤为目标解答路径包括的任一个目标解答路径步骤;

按序展示目标解答路径包括的各个解答步骤。

可选地,展示模块608,还包括:

响应于目标解答步骤的展开操作,获取目标解答步骤与上一个解答步骤之间的中间运算;

在目标解答步骤对应的展开区域展示中间运算。

本申请一实施例提供的问题解答方法,通过获取待解答问题的解答算式,根据解答算式中的算式因子对应的语义结构构造解答算式对应的算式语义树,能够通过对算式语义树的遍历,确定解答算式对应的至少一个解答路径,从而能够获得丰富的解题方法思路;根据各解答路径的运算代价,能够从解答算式对应的各个解答路径中确定运算代价小的目标解答路径并展示,从而使展示的解题过程更加简便,进而实现按照详细的解答步骤对待解答问题的解答算式的求解过程进行逐步骤展示,提高解答算式解答步骤的展示效率,便于用户学习和理解。

上述为本实施例的一种问题解答装置的示意性方案。需要说明的是,该问题解答装置的技术方案与上述的问题解答方法的技术方案属于同一构思,问题解答装置的技术方案未详细描述的细节内容,均可以参见上述问题解答方法的技术方案的描述。

图7示出了根据本申请一实施例提供的一种计算设备的结构框图。该计算设备700的部件包括但不限于存储器710和处理器720。处理器720与存储器710通过总线730相连接,数据库750用于保存数据。

计算设备700还包括接入设备740,接入设备740使得计算设备700能够经由一个或多个网络760通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备740可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,networkinterface controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Network)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)接口,等等。

在本申请的一个实施例中,计算设备700的上述部件以及图7中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图7所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备700可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或个人计算机(PC,Personal Computer)的静止计算设备。计算设备700还可以是移动式或静止式的服务器。

其中,处理器720执行所述计算机指令时实现所述的问题解答方法的步骤。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的问题解答方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述问题解答方法的技术方案的描述。

本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被处理器执行时实现如前所述问题解答方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的问题解答方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述问题解答方法的技术方案的描述。

上述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据管辖区内的要求进行适当的增减,例如在某些管辖区,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

相关技术
  • 问题解答模型的训练方法及装置、问题解答方法及装置
  • 问题解答方法及装置
技术分类

06120116493343