本发明涉及数据处理技术领域,具体而言,涉及一种学习系统中的测试题检索方法、装置、设备及存储介质。
背景技术:
在学习系统中,测试题可以保存在数据库中,当用户需要查找某个测试题时,可以在前端界面输入关键词,然后学习系统可以根据用户输入的关键词在数据库中查找对应的测试题,并返回给前端界面展示给用户。
目前,常见的学习系统的实现方式如下:1)对所有需要录入学习系统中的测试题图像数据进行光学字符识别(opticalcharacterrecognition,ocr),抽取其中的文本内容;2)对抽取到的文本内容进行分词处理,建立关键词与测试题之间的倒排索引。然后,学习系统可以基于建立的倒排索引,根据用户输入的关键词,在数据库中检索对应的测试题。
但是,上述现有的学习系统的实现方式中,基于倒排索引,根据用户输入的关键词,在数据库中检索对应的测试题时,往往会根据关键词搜索出很多选项,导致检索成功率较低。
技术实现要素:
本发明提供一种学习系统中的测试题检索方法、装置、设备及存储介质,可以根据用户输入的公式,在数据库中检索对应的测试题,提高测试题的检索成功率。
第一方面,本发明实施例提供一种学习系统中的测试题检索方法,该方法包括:
接收用户输入的公式;根据用户输入的公式、以及预设的倒排索引,在数据库中查询对应的测试题;其中,倒排索引用于表示测试题与测试题中的公式之间的映射关系。
可选地,所述根据所述用户输入的公式、以及预设的倒排索引,在数据库中查询对应的测试题之前,该方法还包括:
获取包含有公式的测试题;根据测试题中的公式,构建公式语法树;根据公式语法树生成对应的拉泰赫latex格式的公式文本;根据latex格式的公式文本、以及测试题,建立倒排索引。
可选地,所述获取包含有公式的测试题,包括:获取包含有公式的测试题图像。所述根据测试题中的公式,构建公式语法树,包括:
采用第一预设网络,定位测试题图像中的公式区域;采用第二预设网络,分割出测试题图像中的公式区域;采用第三预设网络,识别出公式区域中的符号、数字以及字母;根据公式区域中的符号、数字以及字母,构建公式语法树。
可选地,所述采用第二预设网络,分割出测试题图像中的公式区域之前,该方法还包括:
获取随机生成的样本公式图像集合、以及样本公式图像集合中的样本公式图像对应的蒙版;根据样本公式图像集合、以及样本公式图像集合中的样本公式图像对应的蒙版,对unet网络进行训练,得到第二预设网络。
可选地,第一预设网络为高校场景文本检测网络advancedeast。所述采用第二预设网络,分割出测试题图像中的公式区域,包括:
创建一张和测试题图像大小相同的白色图像;根据advancedeast输出的像素点坐标标记白色图像,得到标记后的白色图像;采用第二预设网络,并根据标记后的白色图像,对测试题图像中的公式区域进行分割。
第二方面,本发明实施例提供一种学习系统中的测试题检索装置,该装置包括:接收模块,用于接收用户输入的公式;查询模块,用于根据用户输入的公式、以及预设的倒排索引,在数据库中查询对应的测试题;其中,倒排索引用于表示测试题与测试题中的公式之间的映射关系。
可选地,所述装置还包括:第一获取模块、构建模块、生成模块以及建立模块;在查询模块根据用户输入的公式、以及预设的倒排索引,在数据库中查询对应的测试题之前,第一获取模块,用于获取包含有公式的测试题;构建模块,用于根据测试题中的公式,构建公式语法树;生成模块,用于根据公式语法树生成对应的拉泰赫latex格式的公式文本;建立模块,用于根据latex格式的公式文本、以及测试题,建立倒排索引。
可选地,第一获取模块,具体用于获取包含有公式的测试题图像;所述构建模块,包括:定位子模块,用于采用第一预设网络,定位测试题图像中的公式区域;分割子模块,用于采用第二预设网络,分割出测试题图像中的公式区域;识别子模块,用于采用第三预设网络,识别出公式区域中的符号、数字以及字母;构建子模块,用于根据公式区域中的符号、数字以及字母,构建公式语法树。
可选地,所述装置还包括:第二获取模块和训练模块;在分割子模块采用第二预设网络,分割出测试题图像中的公式区域之前,第二获取模块,用于获取随机生成的样本公式图像集合、以及样本公式图像集合中的样本公式图像对应的蒙版;训练模块,用于根据样本公式图像集合、以及样本公式图像集合中的样本公式图像对应的蒙版,对unet网络进行训练,得到第二预设网络。
可选地,第一预设网络为高校场景文本检测网络advancedeast。分割子模块,具体用于创建一张和测试题图像大小相同的白色图像;根据advancedeast输出的像素点坐标标记白色图像,得到标记后的白色图像;采用第二预设网络,并根据标记后的白色图像,对测试题图像中的公式区域进行分割。
第三方面,本发明实施例提供一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行如第一方面所述的学习系统中的测试题检索方法。
第四方面,本发明实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行如第一方面所述的学习系统中的测试题检索方法。
本发明的有益效果是:
本发明实施例可以建立包含有公式的测试题与公式之间的倒排索引,当接收到用户输入的公式后,可以根据用户输入的公式、以及预设的倒排索引,在数据库中查询对应的测试题,实现测试题的检索。相对现有的学习系统中的测试题检索方式而言,本发明实施例提供的学习系统中的测试题检索方法可以具有更高的检索成功率。
另外,通过获取包含有公式的测试题,根据测试题中的公式,构建公式语法树,并据公式语法树生成对应的拉泰赫(latex)格式的公式文本,然后,根据latex格式的公式文本、以及测试题,建立倒排索引,还可以有效提高学习系统的测试题检索速度和响应速度。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例提供的学习系统中的测试题检索方法的流程示意图;
图2示出了本发明实施例提供的学习系统中的测试题检索方法的另一流程示意图;
图3示出了本发明实施例提供的公式语法树的示意图;
图4示出了本发明实施例提供的学习系统中的测试题检索方法的又一流程示意图;
图5示出了本发明实施例提供的学习系统中的测试题检索方法的又一流程示意图;
图6示出了本发明实施例提供的学习系统中的测试题检索方法的又一流程示意图;
图7示出了本发明实施例提供的学习系统中的测试题检索装置的结构示意图;
图8示出了本发明实施例提供的学习系统中的测试题检索装置的另一结构示意图;
图9示出了本发明实施例提供的构建模块的结构示意图;
图10示出了本发明实施例提供的学习系统中的测试题检索装置的又一结构示意图;
图11示出了本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。还需要说明,“第一”、“第二”、“第三”等描述在本发明中仅仅用于区分功能,而不能表示相对重要性。
本发明实施例提供一种学习系统中的测试题检索方法,可以应用于学习系统中,对学习系统的数据库中的测试题进行检索。其中,学习系统可以基于服务器、计算机等实现。例如,服务器可以与手机、平板电脑等终端进行交互,且服务器内可以存储有包含海量测试题的数据库,用户通过手机和平板电脑可以向服务器查询或下载数据库中的测试题,从而,服务器与终端之间可构成学习系统。或者,当学习系统基于计算机实现时,数据库也可以单独设置于其他存储介质中,计算机可以提供前端用户界面,用户可以通过前端用户界面与计算机进行交互,计算机可以从存储介质的数据库中查询和下载测试题并通过前端用户界面呈现给用户。也即,该学习系统中的测试题检索方法的执行主体可以是前述服务器、计算机等。但需要说明,前述服务器、计算机仅仅为本发明示例性的说明,对于服务器和计算机的具体实现框架和结构,以及该学习系统中的测试题检索方法的执行主体,本发明并不作限制,例如,执行主体也可以是服务器或计算机中的某个或多个处理器等。
图1示出了本发明实施例提供的学习系统中的测试题检索方法的流程示意图。
如图1所示,该学习系统中的测试题检索方法,可以包括:
s101、接收用户输入的公式。
可选地,可以为用户提供一前端用户界面,用户可以通过前端用户界面输入公式。用户输入的公式可以是测试题中的公式,例如,若用户需要检索某个测试题a,且测试题a中包含有公式“(1+2)*3”,则可以将公式“(1+2)*3”输入前端用户界面,从而实现基于用户输入的公式在数据库中对测试题a进行检索。
s102、根据用户输入的公式、以及预设的倒排索引,在数据库中查询对应的测试题。
其中,倒排索引用于表示测试题与测试题中的公式之间的映射关系。当接收到用户输入的公式后,可以与基于倒排索引,也即,基于测试题与测试题中的公式之间的映射关系,在数据库中查询包含有该公式的测试题。
具体地,倒排索引(invertedindex)可以根据属性值来查找记录地址。例如,倒排索引可以通过索引表的形式实现,索引表中的每一项都包括一个属性值和具有该属性值的文档的记录地址。由于不是由记录地址来确定属性值,而是由属性值来确定记录地址,因而称为倒排索引。带有倒排索引的文件可以称为倒排索引文件,简称倒排文件(invertedfile)。
举例说明:前述预设的倒排索引中,属性值可以是公式,记录地址可以是包含有该公式的测试题的记录地址。也即,前述预设的倒排索引中,可以包括:公式、以及包含有该公式的测试题的记录地址。当收到用户输入的公式a时,可以基于预设的倒排索引,先查询到包含于公式a的测试题的记录地址,然后,基于该记录地址从数据库中查询到对应的测试题,并呈现给用户。
容易得知,要实现前述步骤s102,还需要预先根据测试题与测试题中的公式之间的映射关系,建立前述倒排索引。
图2示出了本发明实施例提供的学习系统中的测试题检索方法的另一流程示意图。
可选地,如图2所示,上述根据所述用户输入的公式、以及预设的倒排索引,在数据库中查询对应的测试题之前,该学习系统中的测试题检索方法,还可以包括:
s201、获取包含有公式的测试题。
s202、根据测试题中的公式,构建公式语法树。
图3示出了本发明实施例提供的公式语法树的示意图。
假设某测试题p中包含有公式p1:“(1+2)*3”。则根据公式p1构建的公式语法树可以如图3所示:
图3所示的公式语法树中,第①步为:“1”→“+”;第②步为:“1+”→“2”;第③步为:“(1+2)”→“*”;第④步为:“(1+2)*”→“3”。第①步和第②步可以得到(1+2),再结合第③步和第④步可以得到(1+2)*3。
s203、根据公式语法树生成对应的拉泰赫(latex)格式的公式文本。
s204、根据latex格式的公式文本、以及测试题,建立倒排索引。
例如,可以遍历上述步骤s202中得到的公式语法树,并通过步骤s203组成latex格式的公式文本输出,然后,则可以根据latex格式的公式文本,建立latex格式的公式文本与测试题的记录地址之间映射关系,得到前述倒排索引,从而可以实现将所有出现了公式的测试题根据latex建立倒排索引。
一些实施方式中,也可以对一些包含有公式的文本内容,按照上述方式建立latex格式的公式文本与文本内容之间的倒排索引,本发明不作限制。
由上所述,本发明实施例可以建立包含有公式的测试题与公式之间的倒排索引,当接收到用户输入的公式后,可以根据用户输入的公式、以及预设的倒排索引,在数据库中查询对应的测试题,实现测试题的检索。相对现有的学习系统中的测试题检索方式而言,本发明实施例提供的学习系统中的测试题检索方法可以具有更高的检索成功率。
另外,通过获取包含有公式的测试题,根据测试题中的公式,构建公式语法树,并据公式语法树生成对应的拉泰赫(latex)格式的公式文本,然后,根据latex格式的公式文本、以及测试题,建立倒排索引,还可以有效提高学习系统的测试题检索速度和响应速度。
可选地,部分实施方式中,可以将本发明实施例提供的学习系统中的测试题检索方法可与现有根据用户输入的关键词,在数据库中检索对应的测试题的方法相结合,进一步保证检索的准确性和成功率。
可选地,上述获取包含有公式的测试题可以是指:获取包含有公式的测试题图像。图4示出了本发明实施例提供的学习系统中的测试题检索方法的又一流程示意图。
如图4所示,上述步骤s202中根据测试题中的公式,构建公式语法树的步骤,具体可以包括:
s401、采用第一预设网络,定位测试题图像中的公式区域。
例如,第一预设网络可以为高校场景文本检测网络(advancedanefficientandaccuratescenetextdetector,advancedeast),通过advancedeast可以对测试题图像中的公式区域进行准确定位。定位出测试题图像中的公式区域后,可以通过下述步骤s402对公式区域进行分割。
s402、采用第二预设网络,分割出测试题图像中的公式区域。
可选地,第二预设网络可以是预先训练好的unet网络。
图5示出了本发明实施例提供的学习系统中的测试题检索方法的又一流程示意图。
可选地,如图5所示,上述采用第二预设网络,分割出测试题图像中的公式区域之前,该学习系统中的测试题检索方法,还可以包括:
s501、获取随机生成的样本公式图像集合、以及样本公式图像集合中的样本公式图像对应的蒙版(mask)。
s502、根据样本公式图像集合、以及样本公式图像集合中的样本公式图像对应的蒙版(mask),对unet网络进行训练,得到第二预设网络。
举例说明:可以获取大量随机生成的公式图片样本,得到样本公式图像集合。同时,获取样本公式图像集合中的各公式图片样本对应的蒙版(mask)。然后,基于该样本公式图像集合和各公式图片样本对应的蒙版(mask)对unet网络进行训练,训练完成后的unet网络即为前述第二预设网络。训练完成后,该unet网络可以从公式区域对应的图像中分割出不同的数字、字母、符号等。
训练unet网络的具体的算子表达形式及代码可以如下:
inpt=input(shape=(input_size_1,input_size_2,3))
conv1=conv2d_bn(inpt,8,(3,3))
conv1=conv2d_bn(conv1,8,(3,3))
pool1=maxpooling2d(pool_size=(2,2),strides=(2,2),padding='same')(conv1)
conv2=conv2d_bn(pool1,16,(3,3))
conv2=conv2d_bn(conv2,16,(3,3))
pool2=maxpooling2d(pool_size=(2,2),strides=(2,2),adding='same')(conv2)
conv3=conv2d_bn(pool2,32,(3,3))
conv3=conv2d_bn(conv3,32,(3,3))
pool3=maxpooling2d(pool_size=(2,2),strides=(2,2),adding='same')(conv3)
conv4=conv2d_bn(pool3,64,(3,3))
conv4=conv2d_bn(conv4,64,(3,3))
pool4=maxpooling2d(pool_size=(2,2),strides=(2,2),padding='same')(conv4)
conv5=conv2d_bn(pool4,128,(3,3))
#conv5=dropout(0.1)(conv5)
conv5=conv2d_bn(conv5,128,(3,3))
#conv5=dropout(0.1)(conv5)
convt1=conv2dt_bn(conv5,64,(3,3))
concat1=concatenate([conv4,convt1],axis=3)
#concat1=dropout(0.1)(concat1)
conv6=conv2d_bn(concat1,64,(3,3))
conv6=conv2d_bn(conv6,64,(3,3))
convt2=conv2dt_bn(conv6,32,(3,3))
concat2=concatenate([conv3,convt2],axis=3)
#concat2=dropout(0.1)(concat2)
conv7=conv2d_bn(concat2,32,(3,3))
conv7=conv2d_bn(conv7,32,(3,3))
convt3=conv2dt_bn(conv7,16,(3,3))
concat3=concatenate([conv2,convt3],axis=3)
#concat3=dropout(0.1)(concat3)
conv8=conv2d_bn(concat3,16,(3,3))
conv8=conv2d_bn(conv8,16,(3,3))
convt4=conv2dt_bn(conv8,8,(3,3))
concat4=concatenate([conv1,convt4],axis=3)
#concat4=dropout(0.1)(concat4)
conv9=conv2d_bn(concat4,8,(3,3))
conv9=conv2d_bn(conv9,8,(3,3))
#conv9=dropout(0.1)(conv9)
outpt=conv2d(filters=3,kernel_size=(1,1),strides=(1,1),padding='same',activation='sigmoid')(conv9)
可选地,上述代码可以使用keras深度学习框架对unet网络进行描述。
s403、采用第三预设网络,识别出公式区域中的符号、数字以及字母。
可选地,第三预设网络可以是预先训练好的卷积神经网络,例如,可以生成大量需要识别的符号、字母、数字等的图片作为样本,对卷积神经网络进行训练,训练完成后的卷积神经网络可以对前述步骤s402、采用第二预中分割出来的测试题图像中的公式区域进行识别,得到公式区域中的符号、数字以及字母。然后,可以通过下述步骤s404构建公式语法树。
s404、根据公式区域中的符号、数字以及字母,构建公式语法树。
图6示出了本发明实施例提供的学习系统中的测试题检索方法的又一流程示意图。如图6所示,上述步骤s402中采用第二预设网络,分割出测试题图像中的公式区域的具体步骤,可以包括:
s601、创建一张和测试题图像大小相同的白色图像。
s602、根据advancedeast输出的像素点坐标标记白色图像,得到标记后的白色图像。
s603、采用第二预设网络,并根据标记后的白色图像,对测试题图像中的公式区域进行分割。
通过上述图6所示的方法对测试题图像中的公式区域进行分割,可以由于输出的是像素位置而不是文本框位置,而排除所有不是字符像素位置的干扰。
基于前述方法实施例中所述的学习系统中的测试题检索方法,本发明实施例还对应提供一种学习系统中的测试题检索装置,图7示出了本发明实施例提供的学习系统中的测试题检索装置的结构示意图。
如图7所示,该学习系统中的测试题检索装置可以包括:接收模块10,可以用于接收用户输入的公式;查询模块20,可以用于根据用户输入的公式、以及预设的倒排索引,在数据库中查询对应的测试题;其中,倒排索引用于表示测试题与测试题中的公式之间的映射关系。
图8示出了本发明实施例提供的学习系统中的测试题检索装置的另一结构示意图。
可选地,如图8所示,该学习系统中的测试题检索装置还可以包括:第一获取模块30、构建模块40、生成模块50以及建立模块60。在查询模块20根据用户输入的公式、以及预设的倒排索引,在数据库中查询对应的测试题之前,第一获取模块30,可以用于获取包含有公式的测试题;构建模块40,可以用于根据测试题中的公式,构建公式语法树;生成模块50,可以用于根据公式语法树生成对应的拉泰赫latex格式的公式文本;建立模块60,可以用于根据latex格式的公式文本、以及测试题,建立倒排索引。
可选地,第一获取模块30,具体可以用于获取包含有公式的测试题图像。图9示出了本发明实施例提供的构建模块的结构示意图。
如图9所示,构建模块40可以包括:定位子模块41,可以用于采用第一预设网络,定位测试题图像中的公式区域;分割子模块42,可以用于采用第二预设网络,分割出测试题图像中的公式区域;识别子模块43,可以用于采用第三预设网络,识别出公式区域中的符号、数字以及字母;构建子模块44,可以用于根据公式区域中的符号、数字以及字母,构建公式语法树。
图10示出了本发明实施例提供的学习系统中的测试题检索装置的又一结构示意图。
可选地,如图10所示,该学习系统中的测试题检索装置还可以包括:第二获取模块70和训练模块80。在分割子模块42采用第二预设网络,分割出测试题图像中的公式区域之前,第二获取模块70,可以用于获取随机生成的样本公式图像集合、以及样本公式图像集合中的样本公式图像对应的蒙版;训练模块80,可以用于根据样本公式图像集合、以及样本公式图像集合中的样本公式图像对应的蒙版,对unet网络进行训练,得到第二预设网络。
可选地,第一预设网络为高校场景文本检测网络advancedeast。分割子模块42,具体可以用于创建一张和测试题图像大小相同的白色图像;根据advancedeast输出的像素点坐标标记白色图像,得到标记后的白色图像;采用第二预设网络,并根据标记后的白色图像,对测试题图像中的公式区域进行分割。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中方法的对应过程,本发明中不再赘述。
本发明实施例提供的学习系统中的测试题检索装置对应于前述方法实施例中所述的学习系统中的测试题检索方法,因此,装置实施例中所述的学习系统中的测试题检索装置,具有前述实施例中所述的学习系统中的测试题检索方法具备的全部有益效果,在此亦不再赘述。
本发明实施例还提供一种电子设备,该电子设备可以是学习系统的后台服务器,图11示出了本发明实施例提供的电子设备的结构示意图。
如图11所示,该电子设备可以包括:处理器100、存储介质200和总线(图中未标出),存储介质200存储有处理器100可执行的机器可读指令,当电子设备运行时,处理器100与存储介质200之间通过总线通信,处理器100执行机器可读指令,以执行如前述方法实施例中所述的学习系统中的测试题检索方法。具体实现方式和技术效果类似,在此不再赘述。
为了便于说明,在上述电子设备中仅描述了一个处理器。然而,应当注意,本发明中的电子设备还可以包括多个处理器,因此本发明中描述的一个处理器执行的步骤也可以由多个处理器联合执行或单独执行。例如,电子设备的处理器执行步骤a和步骤b,则应该理解,步骤a和步骤b也可以由两个不同的处理器共同执行或者在一个处理器中单独执行。例如,第一处理器执行步骤a,第二处理器执行步骤b,或者第一处理器和第二处理器共同执行步骤a和b等。
在一些实施例中,处理器可以包括一个或多个处理核(例如,单核处理器(s)或多核处理器(s))。仅作为举例,处理器可以包括中央处理单元(centralprocessingunit,cpu)、专用集成电路(applicationspecificintegratedcircuit,asic)、专用指令集处理器(applicationspecificinstruction-setprocessor,asip)、图形处理单元(graphicsprocessingunit,gpu)、物理处理单元(physicsprocessingunit,ppu)、数字信号处理器(digitalsignalprocessor,dsp)、现场可编程门阵列(fieldprogrammablegatearray,fpga)、可编程逻辑器件(programmablelogicdevice,pld)、控制器、微控制器单元、简化指令集计算机(reducedinstructionsetcomputing,risc)、或微处理器等,或其任意组合。
本发明实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行如前述方法实施例中所述的学习系统中的测试题检索方法。具体实现方式和技术效果类似,在此同样不再赘述。
可选地,该存储介质可以是u盘、移动硬盘、rom、ram、磁碟或者光盘等。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。