CN117131934A - 一种问题解答方法、解题引擎、电子设备和存储介质 - Google Patents
一种问题解答方法、解题引擎、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117131934A CN117131934A CN202311371884.7A CN202311371884A CN117131934A CN 117131934 A CN117131934 A CN 117131934A CN 202311371884 A CN202311371884 A CN 202311371884A CN 117131934 A CN117131934 A CN 117131934A
- Authority
- CN
- China
- Prior art keywords
- content
- questions
- list
- solving
- original image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 230000008569 process Effects 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 10
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 23
- 239000004816 latex Substances 0.000 description 21
- 238000004364 calculation method Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 241000282414 Homo sapiens Species 0.000 description 4
- 230000009471 action Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 241000590419 Polygonia interrogationis Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/40—Document-oriented image-based pattern recognition
- G06V30/41—Analysis of document content
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Multimedia (AREA)
- Electrically Operated Instructional Devices (AREA)
Abstract
本申请公开了一种问题解答方法、解题引擎、电子设备和存储介质,该方法和引擎应用于电子设备,具体为接收用户输入的承载有问题内容的原始影像;对问题内容进行解析处理,得到问题内容所包含的内容列表;针对内容列表进行解题处理,得到并输出问题答案。本方案通过对问题本身进行解析处理得到答案,并将问题答案向用户反馈,从而能够针对任意问题实现解题并反馈。
Description
技术领域
本申请涉及科教技术领域,更具体地说,涉及一种问题解答方法、解题引擎、电子设备和存储介质。
背景技术
随着智能设备的普及和人们学习要求的提高,基于电子设备的学习需求也越来越多,即基于用户输入的题目给出解答步骤和结果。但目前的计算引擎基于预置的答案实现向用户反馈,无法针对任意问题实现解题反馈。
发明内容
有鉴于此,本申请提供一种问题解答方法、解题引擎、电子设备和存储介质,用于基于用户输入的任意问题提供解题反馈。
为了实现上述目的,现提出的方案如下:
一种问题解答方法,应用于电子设备,所述问题解答方法包括步骤:
接收用户输入的承载有问题内容的原始影像;
对所述问题内容进行解析处理,得到所述问题内容所包含的内容列表;
针对所述内容列表进行解题处理,得到并输出问题答案。
可选的,所述接收用户输入的原始影像,所述原始影像承载有问题内容,包括步骤:
获取所述原始影像;
对所述原始影像进行字符识别处理,得到所述问题内容。
可选的,所述对所述问题内容进行解析处理,得到所述问题内容所包含的内容列表,包括步骤:
将所述问题内容解析为节点列表;
根据预设语法规则、预设运算顺序和预设输入方式将所述节点列表解析为所述内容列表,所述内容列表为结构树形式。
可选的,所述针对所述内容列表进行解题处理,得到并输出问题答案,包括步骤:
将所述内容列表转换为计算数,所述计算数为由多个数节点构成的树状结构;
对所述多个数节点进行处理,得到所述问题答案,并将所述问题答案发送给用户。
一种解题引擎,应用于电子设备,所述解题引擎包括:
信息接收模块,被配置为接收用户输入的承载有问题内容的原始影像;
数学解析器,被配置为对所述问题内容进行解析处理,得到所述问题内容所包含的内容列表;
数学解题器,被配置为针对所述内容列表进行解题处理,得到并输出问题答案。
可选的,所述信息接收模块包括:
影像获取单元,被配置为获取所述原始影像;
内容识别单元,被配置为对所述原始影像进行字符识别处理,得到所述问题内容。
可选的,所述数学解析器包括:
第一解析单元,被配置为将所述问题内容解析为节点列表;
第二解析单元,被配置为根据预设语法规则、预设运算顺序和预设输入方式将所述节点列表解析为所述内容列表,所述内容列表为结构树形式。
可选的,所述数学解题器包括:
列表转换单元,被配置为将所述内容列表转换为计算数,所述计算数为由多个数节点构成的树状结构;
节点处理单元,被配置为对所述多个数节点进行处理,得到所述问题答案,并将所述问题答案发送给用户。
一种电子设备,包括至少一个处理器和与所述处理器连接的存储器,其中:
所述存储器用于存储计算机程序或指令;
所述处理器用于执行所述计算机程序或指令,以使所述电子设备实现如上所述的问题解答方法。
一种存储介质,应用于电子设备,所述存储介质承载有一个或多个计算机程序,所述一个或多个计算机程序能够被所述电子设备执行,以使所述电子设备实现如上所述的问题解答方法。
从上述的技术方案可以看出,本申请公开了一种问题解答方法、解题引擎、电子设备和存储介质,该方法和引擎应用于电子设备,具体为接收用户输入的承载有问题内容的原始影像;对问题内容进行解析处理,得到问题内容所包含的内容列表;针对内容列表进行解题处理,得到并输出问题答案。本方案通过对问题本身进行解析处理得到答案,并将问题答案向用户反馈,从而能够针对任意问题实现解题并反馈。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的一种问题解答方法的流程图;
图2a为本申请实施例的寻找前置关键词的子节点的流程图中解析LaTex里所有的关键词的示意图;
图2b为本申请实施例的寻找前置关键词的子节点的流程图中寻找前置关键词子节点的示意图;
图2c为本申请实施例的寻找前置关键词的子节点的流程图中处理文本描述关键词的示意图;
图2d为本申请实施例的寻找中置关键词的子节点的流程图中处理上下关键词的示意图;
图2e为本申请实施例的寻找中置关键词的子节点的流程图中绝对值和括号处理的示意图;
图2f为本申请实施例的寻找中置关键词的子节点的流程图中寻找中置关键词的子节点;
图3a为本申请实施例中对内容列表进行解题处理中从底向上依次计算的示意图;
图3b为本申请实施例中对内容列表进行解题处理中计算2^3的示意图;
图3c为本申请实施例中对内容列表进行解题处理中计算1+5的示意图;
图3d为本申请实施例中对内容列表进行解题处理中计算3\times6的示意图;
图3e为本申请实施例中对内容列表进行解题处理中计算frac{6}{2}的示意图;
图3f为本申请实施例中对内容列表进行解题处理中计算18+3并去掉无用的括号的示意图;
图3g为本申请实施例中对内容列表进行解题处理中计算、log…{2}4的示意图;
图3h为本申请实施例中一个运算实例的示意图;
图4为本申请实施例的一种解题引擎的框图;
图5为本申请实施例的一种电子设备的框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
实施例一
图1为本申请实施例的一种问题解答方法的流程图。
如图1所示,本实施例提供问题解答方法应用于电子设备,用于基于用户输入的问题输出答案,该电子设备可以理解为具有信息处理能力和数据计算能力的计算机、服务器、智能终端等计算设备,该问题解答方法具体包括如下步骤:
S1、接收用户输入的承载有问题内容的原始影像。
即在用户利用扫描设备或智能终端采集相应问题内容时,接收相应设备所获取的承载有问题内容的原始影像。具体过程如下所述:
首先,获取上述设备所获取的原始影像。
然后,利用识别工具对原始影像进行识别处理,例如OCR工具等,从中获取到预设格式的问题内容,如LaTex字符串。
S2、对问题内容进行解析处理。
主要的手段是基于预设语法规则、预设运算顺序和预设输入方式对问题内容进行解析处理,从而得到内容列表。这里的预设语法规则可以为LaTex语法规则,预设运算顺序可以为PEMDAS运算顺序,预设输入方式为特殊题型的输入方式。具体来说,解析过程如下所述。
首先,将问题内容解析为节点列表。具体来说,先将LaTex字符解析为一个LaTex节点列表。
然后,将LaTex节点列表进行解析,解析为golang的结构树,结构树中包括关键词、各种非关键词和子节点列表,以便于程序/算法做识别和操作。
在实施解析时,首先解析LaTex节点列表里所有的关键词,数学题目中LaTex文件常用的关键词主要有加号、减号和斜杠符号等关键词。其中,斜杠关键词是以`\`开始,之后所有相邻的字母构成的,以任一非字母作为停止的标志,如数字、空格或`\`。
关键词节点包含两个部分,关键词和子节点。关键词按照关键词和子节点的相对位置关系分为前置关键词和中置关键词,关键词位于子节点的前方称为前置关键词,关键词位于子节点中间称为中置关键词。比如`\frac{3}{4}`,关键词`\frac`的子节点`{3}`和`{4}`只会出现在关键词的后方,再比如`2\times3`,关键词`\times`位于子节点`2`和`3`的中间。
在解析关键词后接下来是寻找所有前置关键词节点的子节点,如图2a~2c所示。不同的关键词子节点个数不同,比如 `\frac` 关键词,他需要两个子节点,一个作为分子一个作为分母,而`\sin`只有一个子节点。部分关键词的子节点个数还是可变的,比如`\sqrt`,可以是两个子节点,第一个作为 开方的指数,第二个作为开方的底数,但指数是可以省略的,省略时默认为2。
前置关键词节点里有一类用于文本描述的关键词,比如`\text{solve theequation}`,用于在公式中插入一些文本描述,对于数学算式题,通常对于解题没有实际的意义,所以我们只需要将 `\text{and}`、`\text{or}`等特殊情况,将其更换为 `\cap`,`\cup`等非文本描述类的关键词,其余情况下这类节点的信息将会被丢弃。用户拍照的时候有意无意的会拍到一些干扰信息,比如题号,丢弃掉这些干扰信息,能降低用户拍照的难度。
之后是上标(^),下标(_)的处理,数学常用的上下标有几种情况,上标作为前一个节点的指数,未知数下标表示不同的未知数,特殊节点的子节点标志,比如 `\log_{4}{5}`。除此以外,拍摄的题目可能不太工整,比如用户拍摄的照片其实是`1+2`,但由于题目排版的问题,加号位置过于靠上,实际上LaTex解析出来的结果是 `1^{+}2`,它是符合LaTex语法规则的,但是却不具备正确的数学含义,发现类似的情况后,会将原本应该在指数的加号下移,还原为`1+2`。
之后是绝对值和括号的处理,绝对值因为无法区分符号的左右,解析器会进行穷举,找到最有可能的一种组合方式,然后再进行括号的左右匹配,将括号或绝对值内部的节点作为运算符的子节点。
最后是寻找中置关键词节点的子节点,具体如图2d~2f所示,按照逻辑关键词(`\cap`,`\cup`)、比较关键词(=,`\geq`)、乘除关键词(`\times`,`*`,`\div`,`\`)、加减关键词(`+`,`-`)的顺序。LaTex节点列表会从最开始的长列表变为一个长度为1的树状结构。
S3、针对内容列表进行解题处理,得到问题答案。
具体处理时,会在上述树状结构的基础上生成结构树,从下往上依次计算,并记录步骤,如图3a~3g所示。
首先,将上述结构树转换为计算树,计算树是由很多的数节点构成的树状结构,树节点的结构包括Operate运算符、子节点列表和数值运算的基础类型。其中,Operate运算符对应LaTex节点的 keyword。
数值运算的基础类型用于表示当前树的计算结果,包含各种类型的数字,由数字和未知数构成的单项式,多个单项式相加形成的多项式,由任意基础类型构成分子分母的分式等。LaTex解析完成后,大部分的数字,未知数都会直接转换为对应的CalculateOne。之后运算过程中,某个tree的计算完成后,也会将计算的结果更新到这里,以便后续的使用。
树节点分为包括单节点和运算节点两种。单节点具有CalculateOne基础类型,没有子节点,是自身已经计算完成的节点。运算节点是尚未计算完成的节点,没有CalculateOne基础类型,由运算符和子节点构成,运算符包括常规的数学运算符,如加号、减号、乘号、除号、等号、不等号、逻辑与或、极限算子、积分算子、求和算子等,子节点的个数根据运算符的不同而不同。子节点可以是单节点,也可以是另一个运算节点。
然后,基于计算树实施解题过程,该过程实际就是将复杂运算节点化简为单节点的过程,通过对节点化简最终得到问题答案。对于等式或者不等式,先将左右两边的式子化到最简,便于判断等式或者不等式的类型,有助于优化解题的步骤,多解法的实现。对于方程组,先对每个方程进行化简,便于确定方程组未知数的个数与指数的情况,从而选择最优的解题方法。对于其他问题,化简的过程实际就是计算结果的过程,其中,图3h提供了一个运算实例的示意图。
针对树节点化简的过程可以抽象为一个的函数,例如step( 用于记录化简的过程)、operate(要执行的操作)、childList(子节点列表)等,其中,列表里的子节点必须是单节点,也就是CalculateOne必须有值。所以可以进一步将 childList 替换为CalculateOneList。这样做的好处是解题器可以根据遍历当前operate支持的CalculateOne自动生成它遇到各种不同类型CalculateOne输入组合的方法,不会产生遗漏。
比如,当执行大于2个CalculateOne的加法时,除了部分需要运算律让某些值先进行相加的情况,可以从左往右两两依次相加,所以只需要考虑两个CalculateOne的加法。下面是加法需要支持的CalculateOne:
数字类型包含:
NumberInterfaceMini:数字的最小类型 `3`。
NumberInterfaceFrac:分数形式的数字 `\frac{2}{3}`。
NumberInterfaceRadical: 包含根式的数字 `\sqrt{3}`。
NumberInterfaceAdd:多个数字类型CalculateOne相加的数字 `\sqrt{3}+2`。
NumberInterfaceSpecialConstant: 特殊常数 `\pi`。
NumberInterfaceLog: 包含log的数字 `\log_{2}3`。
NumberInterfaceFloat:高精度浮点形式报错的小数 `3.141592653…`。
NumberInterfaceImaginaryNumber:虚数 `3+2i`。
NumberInterfaceAXB:有常数项、底数项、指数项和构成的数字 `2\times 3 ^{5}`。
NumberInterfaceScientificNotation:科学计数法的数字 `3 \times 10^{4}`。
NumberInterfaceInfty: 正负无穷。
NumberInterfaceMulti 多个数字类型CalculateOne相乘的数字 `\pi (1+e)`。
非数字类型包含:
Node: 由常数项,未知数列表构成的单项式 `2x^2`,`3x^3y^2`,`4`。
Polynomial: 由Node列表构成的多项式 `x+1`。
Logarithm: 包含未知数的log `\log{x+1}`。
TrigonometricFunc:包含未知数的三角函数 `\sin(x)`。
CalculateOneRadical:包含未知数的根式结构 `\sqrt{x+2}`。
CalculateOneAdd:多个CalculateOne相加 `x+\sqrt{x+2}`。
CalculateOneMulti:多个CalculateOne相乘 `x\sqrt{x+2}`。
CalculateOneAbs:包含未知数的绝对值 `|x+1|`。
CalculateOneAXB:有常数项、底数项、指数项和底数项包含未知数 `2(x+1)^{3}`。
CalculateOneAXC:有常数项、底数项、指数项和指数项包含未知数 `3^{x+1}`。
CalculateOneMatrix:矩阵。
CalculateOneFrac:有CalculateOne的分子和CalculateOne分母构成分式 `\frac{x+1}{x-1}`。
实现加法逻辑的时候会遇到下面的问题:
因为需要提供类似于人类的解题思路和详细的步骤,所以哪怕只是简单的加法,也需要根据两个CalculateOne的类型来定制解题的思路和步骤,就需要实现大量的方法,人力很难保证不遗漏。
Frac和Mini相加时,交换两者的顺序,解题的逻辑必须完全一致,生成步骤却不能直接使用。否则会出现`\frac{1}{2}+2`步骤正常,`2+\frac{1}{2}`多一步变成`\frac{1}{2}+2`的无意义步骤。
由于用户的范围较广,针对不同题目,可能需要让某两个类型的输入走特殊的逻辑,其他输入又要保持和基础的加法一致。比如同样都是两个多项式相乘,实现化简逻辑的时候,我们会把多项式两两相乘再合项得到最终的结果。而实现因式分解逻辑的时候,我们会保留两个多项式相乘的形式,`(x+1)(x-1)+(x+1)(x+2)`,这样就可以直接提取出x+1这一项,合并`x-1+x+2`即可,让我们的解题思路更接近人类。
本处操作会自动生成支持的CalculateOne的代码框架。开发者只需按照预先定义好的规则,为每个计算方法填充实现的逻辑。这种方式可以避免漏掉任何CalculateOne方法的实现,同时也方便添加新的CalculateOne,因为它会自动检测,补充旧方法中缺少的针对新CalculateOne的实现。整个过程使用的是 全自动的,简化了代码的实现。
针对很多运算可以交换参数位置的特性,添加了Sort配置,配置后只需要实现一个函数 Frac+Mini,Mini+Frac会自动调用 Frac+Mini的逻辑并将步骤修正为正确的顺序,避免出现无意义的位置交换。
另外,输出代码生成的结果是一个Context对象(Context对象被用来存储生成代码所有的子方法。通过这种方式,可以使生成器代码更加清晰和模块化),可以通过添加额外的配置来自定义定制部分子方法的逻辑,而且不会影响原有Context对象的功能。这种灵活的设计可以让用户只需要修改相应的配置,就能够实现个性化的需要,而无需重新编写全部代码。
因为上面提到的化简思路要求子节点必须是单节点,所以必须从上往下,把计算节点先变为单节点,他才能参与父节点的计算。但在某些情况下,步骤就会显得死板,因此可以采用从上往下的运算律 规则,检查是否存在符合某些运算律特征的树状结构,对结构做出调整,让运算的步骤更接近于人类。
从上述技术方案可以看出,本实施例提供了一种问题解答方法,该方法应用于电子设备,具体为接收用户输入的承载有问题内容的原始影像;对问题内容进行解析处理,得到问题内容所包含的内容列表;针对内容列表进行解题处理,得到并输出问题答案。本方案通过对问题本身进行解析处理得到答案,并将问题答案向用户反馈,从而能够针对任意问题实现解题并反馈。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如C语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机。
实施例二
图4为本申请实施例的一种解题引擎的框图。
如图4所示,本实施例提供解题引擎应用于电子设备,用于基于用户输入的问题输出答案,该电子设备可以理解为具有信息处理能力和数据计算能力的计算机、服务器、智能终端等计算设备,该解题引擎具体包括信息接收模块10、数学解析器20和数学解题器30。
信息接收模块用于接收用户输入的承载有问题内容的原始影像。
即用于在用户利用扫描设备或智能终端采集相应问题内容时,接收相应设备所获取的承载有问题内容的原始影像。该模块具体包括影像获取单元和内容识别单元。
影像获取单元用于获取上述设备所获取的原始影像。
内容识别单元用于利用识别工具对原始影像进行识别处理,例如OCR工具等,从中获取到预设格式的问题内容,如LaTex字符串。
数学解析器用于对问题内容进行解析处理。
主要的手段是基于预设语法规则、预设运算顺序和预设输入方式对问题内容进行解析处理,从而得到内容列表。这里的预设语法规则可以为LaTex语法规则,预设运算顺序可以为PEMDAS运算顺序,预设输入方式为特殊题型的输入方式。该解析器具体包括第一解析单元和第二解析单元。
第一解析单元用于将问题内容解析为节点列表。具体来说,先将LaTex字符解析为一个LaTex节点列表。
第二解析单元用于将LaTex节点列表进行解析,解析为golang的结构树,结构树中包括各种关键词、非关键词和子节点列表,以便于程序进行识别和操作。在实施解析时,首先解析LaTex节点列表里所有的关键词,数学题目中LaTex文件常用的关键词主要有加号、减号和斜杠符号等关键词。其中,斜杠关键词是以`\`开始,之后所有相邻的字母构成的,以任一非字母作为停止的标志,如数字、空格或`\`。
数学解题器用于针对内容列表进行解题处理,得到问题答案。
具体处理时,会在上述树状结构的基础上生成结构树,从下往上依次计算,并记录步骤,该数学解题器包括列表转换单元和节点处理单元。
列表转换单元用于将上述结构树转换为计算树,计算树是由很多的数节点构成的树状结构,树节点的结构包括Operate运算符、子节点列表和数值运算的基础类型。其中,Operate运算符对应LaTex节点的 keyword。
节点处理单元用于基于计算树实施解题过程,该过程实际就是将复杂运算节点化简为单节点的过程,通过对节点化简最终得到问题答案。对于等式或者不等式,先将左右两边的式子化到最简,便于判断等式或者不等式的类型,有助于优化解题的步骤,多解法的实现。对于方程组,先对每个方程进行化简,便于确定方程组未知数的个数与指数的情况,从而选择最优的解题方法。
从上述技术方案可以看出,本实施例提供了一种解题引擎,该引擎应用于电子设备,具体为接收用户输入的承载有问题内容的原始影像;对问题内容进行解析处理,得到问题内容所包含的内容列表;针对内容列表进行解题处理,得到并输出问题答案。本方案通过对问题本身进行解析处理得到答案,并将问题答案向用户反馈,从而能够针对任意问题实现解题并反馈。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定,例如,第一获取单元还可以被描述为“获取至少两个网际协议地址的单元”。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列FPGA、专用集成电路ASIC、专用标准产品ASSP、片上系统SOC、复杂可编程逻辑设备CPLD等等。
实施例三
图5为本申请实施例的一种电子设备的框图。
参考图5所示,其示出了适于用来实现本公开实施例中的电子设备的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理PDA、平板电脑PAD、便携式多媒体播放器PMP、车载终端等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。该电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
电子设备可以包括处理装置501,例如中央处理器、图形处理器等,其可以根据存储在只读存储器ROM502中的程序或者从输入装置506加载到随机访问存储器RAM503中的程序而执行各种适当的动作和处理。在RAM中,还存储有电子设备操作所需的各种程序和数据。处理装置、ROM以及RAM通过总线504彼此相连。I/O接口505也连接至总线504。
通常,以下装置可以连接至I/O接口:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置;包括例如液晶显示器、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备与其他设备进行无线或有线通信以交换数据。虽然图中示出了具有各种装置的电子设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
实施例四
本实施例提供了一种计算机可读的存储介质,该存储介质承载有一个或者多个计算机程序,当上述一个或者多个计算机程序被该电子设备执行时,使得该电子设备接收用户输入的承载有问题内容的原始影像;对问题内容进行解析处理,得到问题内容所包含的内容列表;针对内容列表进行解题处理,得到并输出问题答案。本方案通过对问题本身进行解析处理得到答案,并将问题答案向用户反馈,从而能够针对任意问题实现解题并反馈。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器RAM、只读存储器ROM、可擦式可编程只读存储器EPROM或闪存、光纤、便携式紧凑磁盘只读存储器CD-ROM、光存储器件、磁存储器件、或者上述的任意合适的组合。
在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的技术方案进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种问题解答方法,应用于电子设备,其特征在于,所述问题解答方法包括步骤:
接收用户输入的承载有问题内容的原始影像;
对所述问题内容进行解析处理,得到所述问题内容所包含的内容列表;
针对所述内容列表进行解题处理,得到并输出问题答案。
2.如权利要求1所述的问题解答方法,其特征在于,所述接收用户输入的承载有问题内容的原始影像,所述原始影像承载有问题内容,包括步骤:
获取所述原始影像;
对所述原始影像进行字符识别处理,得到所述问题内容。
3.如权利要求1所述的问题解答方法,其特征在于,所述对所述问题内容进行解析处理,得到所述问题内容所包含的内容列表,包括步骤:
将所述问题内容解析为节点列表;
根据预设语法规则、预设运算顺序和预设输入方式将所述节点列表解析为所述内容列表,所述内容列表为结构树形式。
4.如权利要求3所述的问题解答方法,其特征在于,所述针对所述内容列表进行解题处理,得到并输出问题答案,包括步骤:
将所述内容列表转换为计算数,所述计算数为由多个数节点构成的树状结构;
对所述多个数节点进行处理,得到所述问题答案,并将所述问题答案发送给用户。
5.一种解题引擎,应用于电子设备,其特征在于,所述解题引擎包括:
信息接收模块,被配置为接收用户输入的承载有问题内容的原始影像;
数学解析器,被配置为对所述问题内容进行解析处理,得到所述问题内容所包含的内容列表;
数学解题器,被配置为针对所述内容列表进行解题处理,得到并输出问题答案。
6.如权利要求5所述的解题引擎,其特征在于,所述信息接收模块包括:
影像获取单元,被配置为获取所述原始影像;
内容识别单元,被配置为对所述原始影像进行字符识别处理,得到所述问题内容。
7.如权利要求5所述的解题引擎,其特征在于,所述数学解析器包括:
第一解析单元,被配置为将所述问题内容解析为节点列表;
第二解析单元,被配置为根据预设语法规则、预设运算顺序和预设输入方式将所述节点列表解析为所述内容列表,所述内容列表为结构树形式。
8.如权利要求5所述的解题引擎,其特征在于,所述数学解题器包括:
列表转换单元,被配置为将所述内容列表转换为计算数,所述计算数为由多个数节点构成的树状结构;
节点处理单元,被配置为对所述多个数节点进行处理,得到所述问题答案,并将所述问题答案发送给用户。
9.一种电子设备,其特征在于,包括至少一个处理器和与所述处理器连接的存储器,其中:
所述存储器用于存储计算机程序或指令;
所述处理器用于执行所述计算机程序或指令,以使所述电子设备实现如权利要求1~4任一项所述的问题解答方法。
10.一种存储介质,应用于电子设备,其特征在于,所述存储介质承载有一个或多个计算机程序,所述一个或多个计算机程序能够被所述电子设备执行,以使所述电子设备实现如权利要求1~4任一项所述的问题解答方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311371884.7A CN117131934A (zh) | 2023-10-23 | 2023-10-23 | 一种问题解答方法、解题引擎、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311371884.7A CN117131934A (zh) | 2023-10-23 | 2023-10-23 | 一种问题解答方法、解题引擎、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117131934A true CN117131934A (zh) | 2023-11-28 |
Family
ID=88863061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311371884.7A Pending CN117131934A (zh) | 2023-10-23 | 2023-10-23 | 一种问题解答方法、解题引擎、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117131934A (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329731A (zh) * | 2008-06-06 | 2008-12-24 | 南开大学 | 图像中数学公式的自动识别方法 |
CN108416709A (zh) * | 2018-02-09 | 2018-08-17 | 深圳市鹰硕技术有限公司 | 自动生成数学选择题答案选项的方法以及装置 |
CN111460116A (zh) * | 2020-03-19 | 2020-07-28 | 北京百度网讯科技有限公司 | 问答方法、问答系统、电子设备和存储介质 |
CN111767024A (zh) * | 2020-07-09 | 2020-10-13 | 北京猿力未来科技有限公司 | 一种面向简便运算的解答方法与装置 |
EP3761289A1 (en) * | 2019-07-03 | 2021-01-06 | Obrizum Group Ltd. | Educational and content recommendation management system |
CN113569741A (zh) * | 2021-07-29 | 2021-10-29 | 小船出海教育科技(北京)有限公司 | 图像试题的答案生成方法、装置、电子设备及可读介质 |
CN115708088A (zh) * | 2021-08-03 | 2023-02-21 | 北京猿力未来科技有限公司 | 解题方法及装置 |
CN115809319A (zh) * | 2021-09-14 | 2023-03-17 | 北京猿力未来科技有限公司 | 问题解答方法及装置 |
CN116432606A (zh) * | 2023-04-13 | 2023-07-14 | 深圳市星桐科技有限公司 | 方程的讲解步骤的获取方法、装置、设备及存储介质 |
CN116561262A (zh) * | 2022-01-29 | 2023-08-08 | 华为技术有限公司 | 一种试题批改方法以及相关装置 |
-
2023
- 2023-10-23 CN CN202311371884.7A patent/CN117131934A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329731A (zh) * | 2008-06-06 | 2008-12-24 | 南开大学 | 图像中数学公式的自动识别方法 |
CN108416709A (zh) * | 2018-02-09 | 2018-08-17 | 深圳市鹰硕技术有限公司 | 自动生成数学选择题答案选项的方法以及装置 |
EP3761289A1 (en) * | 2019-07-03 | 2021-01-06 | Obrizum Group Ltd. | Educational and content recommendation management system |
CN111460116A (zh) * | 2020-03-19 | 2020-07-28 | 北京百度网讯科技有限公司 | 问答方法、问答系统、电子设备和存储介质 |
CN111767024A (zh) * | 2020-07-09 | 2020-10-13 | 北京猿力未来科技有限公司 | 一种面向简便运算的解答方法与装置 |
CN113569741A (zh) * | 2021-07-29 | 2021-10-29 | 小船出海教育科技(北京)有限公司 | 图像试题的答案生成方法、装置、电子设备及可读介质 |
CN115708088A (zh) * | 2021-08-03 | 2023-02-21 | 北京猿力未来科技有限公司 | 解题方法及装置 |
CN115809319A (zh) * | 2021-09-14 | 2023-03-17 | 北京猿力未来科技有限公司 | 问题解答方法及装置 |
CN116561262A (zh) * | 2022-01-29 | 2023-08-08 | 华为技术有限公司 | 一种试题批改方法以及相关装置 |
CN116432606A (zh) * | 2023-04-13 | 2023-07-14 | 深圳市星桐科技有限公司 | 方程的讲解步骤的获取方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
潘武模 等: "Guidelines for Creating a Rule-Based Knowledge Learning System and Their Application to a Chinese Business Card Layout Analysis", JOURNAL OF COMPUTER SCIENCE AND TECHNOLOGY, no. 01, pages 47 - 56 * |
赵磊: "数学公式识别的关键技术研究及其在自动判卷中的应用", 《中国优秀硕士学位论文全文数据库社会科学Ⅱ辑》, no. 01, pages 127 - 43 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110969012B (zh) | 文本纠错方法、装置、存储介质及电子设备 | |
US11651015B2 (en) | Method and apparatus for presenting information | |
CN111382261B (zh) | 摘要生成方法、装置、电子设备及存储介质 | |
CN111159220A (zh) | 用于输出结构化查询语句的方法和装置 | |
CN110738056B (zh) | 用于生成信息的方法和装置 | |
CN115221191A (zh) | 一种基于数据湖的虚拟列构建方法以及数据查询方法 | |
CN111414453A (zh) | 结构化文本生成方法、装置、电子设备及计算机可读存储介质 | |
CN115270717A (zh) | 一种立场检测方法、装置、设备及介质 | |
CN112582073A (zh) | 医疗信息获取方法、装置、电子设备和介质 | |
CN111124541A (zh) | 一种配置文件的生成方法、装置、设备及介质 | |
CN117131934A (zh) | 一种问题解答方法、解题引擎、电子设备和存储介质 | |
CN115982204A (zh) | 查询语句转换方法、装置、电子设备和存储介质 | |
CN111737571B (zh) | 搜索方法、装置和电子设备 | |
CN111737572B (zh) | 搜索语句生成方法、装置和电子设备 | |
CN112489652A (zh) | 一种语音信息的文本获取方法、装置和存储介质 | |
CN112148751A (zh) | 用于查询数据的方法和装置 | |
CN113778846A (zh) | 用于生成测试数据的方法和装置 | |
CN111813846A (zh) | 一种数据分析处理系统和数据处理方法 | |
CN111221424A (zh) | 用于生成信息的方法、装置、电子设备和计算机可读介质 | |
CN117389544B (zh) | 一种人工智能的数据建模方法、装置、介质和设备 | |
CN112286900A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US20240104297A1 (en) | Analysis of spreadsheet table in response to user input | |
CN114385781B (zh) | 基于语句模型的接口文件推荐方法、装置、设备和介质 | |
US20240135196A1 (en) | Method and apparatus for knowledge graph construction, storage medium, and electronic device | |
CN116431657A (zh) | 数据查询语句生成方法、装置、设备、存储介质及产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |