提取文档中内容的方法和装置的制作方法

文档序号:6432335阅读:171来源:国知局
专利名称:提取文档中内容的方法和装置的制作方法
技术领域
本发明涉及数字排版领域,具体而言,涉及一种提取文档中内容的方法和装置。
背景技术
在教育体系中,随着计算机、互联网的发展,越来越多的教育形式通过网络和电子形式应用到用户,用户可以足不出户,就可体验到网络的教学,如学习各类课程、在线测试
坐寸ο互联网的教育体系,为满足大量用户通过计算机连接互联网,并可进行在线测试。需要制作电子试题库,电子试题库内存储大量的电子试题,这些电子试题文档录入以后,用户可通过互联网进行在线测试,但一套试题经过使用后,就不在有保密性,需要修改试题。试题的修改都是在部分修改,以提高试题的重复利用及制作的效率。试题文档通常存储在数据库中,对于当前海量的非结构化试题,现有的录入过程,是通过用户使用计算机录入试题。发明人发现,试题的数据量比较多,由于非结构化的试题文件只能采用人工录入的方式录入,由于存在无法将数据文档实现结构化录入的问题,导致在录入过程、以及后续的提取、修改试题的部分内容困难,用户存在录入时间长、后期修改过程复杂。

发明内容
本发明旨在提供一种提取文档中内容的方法和装置,以解决无法将数据文档实现结构化录入的问题。在本发明的实施例中,提供了一种提取文档中内容的方法。包括遍历多个正则表达式以匹配试题文档中的字符;匹配到与当前所述正则表达式中的字符串相同的字符后,提取所述字符之后至与下一个所述正则表达式中字符串相匹配的字符之前的字符;存储所述提取的字符和所述当前正则表达式相对应类别的信息。进一步地,所述提取之前,还包括建立匹配表,所述匹配表中存储有所述各个正则表达式及其相对应类别的信息。进一步地,所述类别的信息包括以下至少一个题目、题干、答案、解析或选项。进一步地,所述存储之前包括在所述类别的信息之间建立从属关系。进一步地,所述存储的过程包括将所述题目作为父节点存储,同时存储对应的标识、及提取的字符;将所述题干、答案、选项、解析中的至少一个作为子节点,并存储所述子节点对应的标识、其对应提取的字符、及其父节点标识。进一步地,所述父节点、相关联的子节点、及其对应标识和提取的字符作为一条记录,所述记录存储到数据库中。进一步地,还包括在所述存储过程中,将音频、视频或图片作为主节点的属性数据一同存储。在本发明的实施例中,还提供了一种提取文档中内容的装置,包括匹配单元,用于遍历多个正则表达式以匹配试题文档中的字符;提取单元,用于匹配到与当前所述正则表达式中的字符串相同的字符后,提取所述字符之后至与下一个所述正则表达式中字符串相匹配的字符之前的字符;存储单元,用于存储所述提取的字符和所述当前正则表达式相对应类别的信息。进一步地,节点关系单元,用于通过存储单元将所述题目作为父节点存储,同时存储对应的标识、及提取的字符;将所述题干、答案、选项、解析中的至少一个作为子节点,并存储所述子节点对应的标识、其对应提取的字符、及其父节点标识。进一步地,属性单元,用于在所述存储过程中,将音频、视频或图片作为主节点的属性数据一同存储。从以上的描述中可以看出,本发明上述的实施例实现了如下技术效果可快速将试题类文档结构化,并提取各部分内容存入数据库中。从而便于试题类文档的后续的修改、试题产品的制作等。提高了试题的再利用率,结构化的数据采用XML格式,对题干、选项、答案线、答案、解析等进行详细划分,这样对这些试题提取或者组卷的时候可以任意的组合、修改、样式套用。在不改变原有文件内容的情况下,打破了以往按照固定结构进行数据录入的模式。另外,可以随时选择试题进行多渠道的发布。比如试卷打印,教材出版,网页展示,手机阅读等。不论纸面出版还是各种电子设备和浏览器需要的数据格式都是不同的。发布的内容也可有多种形式,可满足考生和教师的试卷不完全相同的,教师的试卷中带有试题的答案和解析。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图I示出了实施例一的流程图;图2示出了实施例二的流程图;图3示出了实施例二中存储过程的流程图;图4示出了实施例三的装置结构框图。
具体实施例方式下面将参考附图并结合实施例,来详细说明本发明。本发明实施例,通过正则表达式遍历试题文档中的内容,以将试题文档结构化,并提取里面的内容。参见图1,包括以下步骤Sll :遍历多个正则表达式以匹配试题文档中的字符;可预先定义多个正则表达式,例如,定义数字型字符串,以匹配题干的开始处。通常题干的开始处为数字和空格或数字和特定字符等形式,特定字符如字符”或“、”等,通过这些字符,可快速匹配到题干的开始位置。选项通常以字母开始,或通过字母与特定字符结合,如将字母置于圆括号“O”中,或字母后添加空格等。另外,除了标准的正则表达式以夕卜,还可以支持根据文字的格式、样式来匹配。例如〈识别标志>〈忽略题号value = " True " />
例如〈识别标志>〈忽略题号value = " True " />〈包含选项中的字母和符号value= " True" />< 试题 value = " \d+[\. . ] " display ="数字 + 点(例:1· , 2. , 3· ) " />〈子试题value = " [(G\d+[))]〃 display = "数字 + 括号(例(1), (2),⑶)"/>< 选项 value = " [ABCDEF] [\. . ] " display = " A. , B. , C. , D. , E. , F. " />< 答案 value ="答案"display ="答案"/>< 解析 value ="解析"display ="解析"/>〈答案线value="文字下划线"display ="文字下划线"/>〈内部序号value="数字+文字下划线"display ="数字+文字下划线"/></识别标志>S12 :匹配到与当前所述正则表达式中的字符串相同的字符后,提取所述字符之后至与下一个所述正则表达式中字符串相匹配的字符之前的字符;例如在试题文档中存在以下字符I.将10米长的铁丝平均分为5段,每段_米。(A) 2 米(B) I. 5 米(C) 2. 5 米(D) 3 米答案A2 米。解析10米除以5,等于2米。通过预先定义的正则表达式,在试题文档的起始位置,首先会匹配字符串“I. ”以表明匹配到题干,在后续的匹配过程中,又会匹配到字符串“㈧”,以表明匹配到选项。提取从字符串“I. ”开始至与下一个正则表达式中字符串相匹配的字符“ (A) ”之前的字符,即字符内容“将10米长的铁丝平均分为5段,每段_米。”。从而提取到题干内容。进而还可通过正则表达式匹配到选项、答案等内容。S13:存储所述提取的字符和所述当前正则表达式相对应类别的信息。每个正则表达式都会具有一个类别,例如题目、题干、选项、答案或解析等,这些类别信息会随匹配后,提取到的字符一同存储。通过上述的过程,可将试题文档结构化处理,以便存储到数据库中。便于后续的录入过程、以及提取、修改试题的部分内容,可提高录入速度、后续的试题修改、制作过程。上面详细说明了实施例一,将这些试题结构后,存储到数据库时,可将每道题作为一条记录存储,虽然作为一条记录存储,但每道题中结构化时提取的各部分字符,会通过其对应的类别信息建立从属关系,以便于后续提取字符内容,组建试题时,避免出现错误的对应关系,如题干与答案、选项、解析之间。下面通过实施例二详细说明该过程。参见图2,包括以下步骤S21 :遍历多个正则表达式以匹配试题文档中的字符;优选地,为便于遍历过程,可将多个正则表达式以表的形式建立,并将每条正则表达式与其对应的类别信息存储在匹配表中。S22 :匹配到与当前所述正则表达式中的字符串相同的字符后,提取所述字符之后至与下一个所述正则表达式中字符串相匹配的字符之前的字符;
S23:将试题文档中提取的字符和当前正则表达式相对应类别的信息按照从属关系存储到数据库中;由于试题文档中的题干、答案、解析等各项类别信息之间具有从属关系,例如■ 答案、解析、选项等均从属与题干这个类别信息。在存储时,按照以下步骤存储,参见图3,包括S31 :为每个类别信息赋予一个标识。类别信息可以包括题干、答案、选项或解析等,该标识也可以存储在匹配表中。S32:将每道题的题干作为父节点,将其它的类别信息作为其归属的子节点。每个子节点在存储时,与对应提取的字符一起存储的同时,还需要存储其父节点的标识,即题干的标识,以建立相互的从属关系。S33:所述父节点、相关联的子节点、及其对应标识和提取的字符作为一条记录,所述记录存储到数据库中。在存储试题类文档时,可将建立了从属关系的父节点、子节点及相应的提取的字符一同作为一条记录存储。同时也存储的各个节点之间关联其父节点的标识。存储时,可将提取的内容转换成XML格式存储。例如转换后的XML格式的文档如下
<ROOT>
〈Element name="试卷主标题">
〈Attributes〉
<Attr name="tqlD" value="说明-l"/>
<Attr name="outputlMG" value="false"/>
<Attr name="parentlD" value=""/>
〈/Attributes〉
<XHTM L>单选题——难题——掌握1</XHTM L>
<OOXML>ooxml\c2bb42e6-c9al-4309-a419-c8ce9351213e.xml</OOXML>
</Element>
〈Element name="题目">
<Attributes>
<Attr name="tqlD" value="2"/>
<Attr name="outputlMG" value="false"/>
<Attr name="parentlD" value=··说明-l"/>
</Attributes>
<父町1/11>把48米长的铁丝,要平均截成若干段,每段长8米,需截_次 。</XHTML>
<OOXML>ooxml\e84b8d9e-cbdl-43el-8c84-8b227acf26a6.xml</OOXML>
</Element>
<Element name="选项-A">·
〈Attributes〉
<Attr name="tqlD" value="3"/>
<Attr name="outputlMG" value="false"/>
<Attr name="parentlD" value="2"/>
〈/Attributes〉
<XHTML>6</XHTML>
<OOXML>ooxml\aa4be5dl-0383-46ff-86f2-ac0f850c67ac.xml</OOXML>
</Element>
<Element name="选项-B">
〈Attributes〉
<Attr name="tqlD" value="4"/>
<Attr name="outputlMG" value="false"/>
<Attr name="parentlD" value="2"/>
〈/Attributes〉
<XHTML>3</XHTML>
<OOXML>ooxml\eOf25781-dd6f-4139-8456-858eae5937ad.xml</OOXML>
</Element>
<Element name="选项-C">
<Attributes>
<Attr name="tqlD" value="5"/>
<Attr name="outputlMG" value="false"/>
<Attr name="parentlD" value="2"/>
〈/Attributes〉
<XHTML>5</XHTML>
<OOXML>ooxml\d3e38a42-c585-46cf-8c2f-2e3f4b7cl57a.xml</OOXML>
</Element>
〈Element name=11 选项-D">
〈Attributes〉
<Attr name="tqlD" value="6"/>
<Attr name="outputlMG" value="false"/>
<Attr name="parentlD" value="2"/>
〈/Attributes〉
<XHTML>4</XHTML>
<OOXML>ooxml\2bcOclca-6707-4b47-bfec-dlbe2155eOe7.xml</OOXML>
</Element>
〈Element name="答案·_>
<Attributes>
<Attr name="tqlD" value="7"/>
<Attr name="outputlMG" value="false"/>
<Attr name="parentlD" value="2"/>
々Attributes〉
<XHTML>C</XHTML>

<OOXML>ooxml\76755889-8bc7-451c-9ea6-9096bOe51el7.xml</OOXML>
</Element>
〈Element name="解析">
<Attributes>
<Attr name="tqlD" value="8"/>
<Attr name="outputlMG" value="false"/>
<Attr name="parentlD" value="27>
〈/Attributes〉
<XHTML>48 =6(段)6 - 1=5(次)答需截5次</XHTML> <OOXML>ooxml\793ed23d-fl68-4df6-all0-cl9160e7beb9.xml</OOXML> </Element>
</ROOT>特别是父节点,还可增加其属性,并将该属性的数据一同存储。例如在父节点的属性中存储相关的音频、视频、图片等文件。这些文件可用于显示和题干相关的内容。上述过程中,用户还可自定义正则表达式,以便添加新的匹配规则,将试题类文档结构化。经过上述结构化处理后,试题类文档可快速结构化并录入到数据库中,并且试题类数据反复利用,用户可将存储到数据库中的试题文档修改部分内容,并重新组合。上面详细说明了本发明的方法,本发明还提供一种装置,该装置可采用芯片的形式嵌入在集成电路中,下面通过实施例三详细说明本发明的一种优选实现方式,参见图4,该装置包括匹配单元41,用于遍历多个正则表达式以匹配试题文档中的字符;提取单元42,用于当匹配单元41匹配到与当前所述正则表达式中的字符串相同的字符后,提取所述字符之后至与下一个所述正则表达式中字符串相匹配的字符之前的字符;存储单元43,用于存储所述提取单元42所述提取的字符和所述当前正则表达式相对应类别的信息。该装置还包括节点关系单元44,用于通过存储单元43将所述题目作为父节点存储,同时存储对应的标识、及提取的字符;将所述题干、答案、选项、解析中的至少一个作为子节点,并存储所述子节点对应的标识、其对应提取的字符、及其父节点标识。该装置还包括属性单元45,用于在所述存储存储单元43过程中,将音频、视频或图片作为主节点的属性数据一同存储。从以上的描述中可以看出,本发明上述的实施例实现了如下技术效果可快速将试题类文档结构化,并提取各部分内容存入数据库中。从而便于试题类文档的后续的修改、试题产品的制作等。提高了试题的再利用率结构化的数据采用XML格式,对题干、选项、答案线、答案、解析等进行详细划分,这样对这些试题提取或者组卷的时候可以任意的组合、修改、样式套用。在不改变原有文件内容的情况下,打破了以往按照固定结构进行数据录入的模式。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种提取文档中内容的方法,其特征在于,包括 遍历多个正则表达式以匹配试题文档中的字符; 匹配到与当前所述正则表达式中的字符串相同的字符后,提取所述字符之后至与下一个所述正则表达式中字符串相匹配的字符之前的字符; 存储所述提取的字符和所述当前正则表达式相对应类别的信息。
2.根据权利要求I所述的方法,其特征在于,所述提取之前,还包括 建立匹配表,所述匹配表中存储有所述各个正则表达式及其相对应类别的信息。
3.根据权利要求I所述的方法,其特征在于,所述类别的信息包括以下至少一个 题目、题干、答案、解析或选项。
4.根据权利要求3所述的方法,其特征在于,所述存储之前包括在所述类别的信息之间建立从属关系。
5.根据权利要求4所述的方法,其特征在于,所述存储的过程包括 将所述题目作为父节点存储,同时存储对应的标识、及提取的字符; 将所述题干、答案、选项、解析中的至少一个作为子节点,并存储所述子节点对应的标识、其对应提取的字符、及其父节点标识。
6.根据权利要求5所述的方法,其特征在于,所述父节点、相关联的子节点、及其对应标识和提取的字符作为一条记录,所述记录存储到数据库中。
7.根据权利要求5或6所述的方法,其特征在于,还包括在所述存储过程中,将音频、视频或图片作为主节点的属性数据一同存储。
8.一种提取文档中内容的装置,其特征在于,包括 匹配单元,用于遍历多个正则表达式以匹配试题文档中的字符; 提取单元,用于匹配到与当前所述正则表达式中的字符串相同的字符后,提取所述字符之后至与下一个所述正则表达式中字符串相匹配的字符之前的字符; 存储单元,用于存储所述提取的字符和所述当前正则表达式相对应类别的信息。
9.根据权利要求8所述的装置,其特征在于,还包括 节点关系单元,用于通过存储单元将所述题目作为父节点存储,同时存储对应的标识、及提取的字符; 将所述题干、答案、选项、解析中的至少一个作为子节点,并存储所述子节点对应的标识、其对应提取的字符、及其父节点标识。
10.根据权利要求8所述的装置,其特征在于,还包括 属性单元,用于在所述存储过程中,将音频、视频或图片作为主节点的属性数据一同存储。
全文摘要
本发明提供了一种提取文档中内容的方法和装置,本发明的方法包括遍历多个正则表达式以匹配试题文档中的字符;匹配到与当前所述正则表达式中的字符串相同的字符后,提取所述字符之后至与下一个所述正则表达式中字符串相匹配的字符之前的字符;存储所述提取的字符和所述当前正则表达式相对应类别的信息。可快速将试题类文档结构化,并提取各部分内容存入数据库中。从而便于试题类文档的后续的修改、试题产品的制作等。提高了试题的再利用率,结构化的数据采用XML格式,在不改变原有文件内容的情况下,打破了以往按照固定结构进行数据录入的模式。
文档编号G06F17/30GK102982027SQ201110259119
公开日2013年3月20日 申请日期2011年9月2日 优先权日2011年9月2日
发明者宋娟, 李少明, 翟因为 申请人:北大方正集团有限公司, 北京北大方正电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1