研究生学位论文格式自动检测系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
研究生学位论文格式自动检测系统设计与实现
叶秀云;刘德正
【摘要】研究生学位论文一般采用Word软件撰写,对论文格式要求非常严格,传统依靠人工进行格式检测的方式效率较低.基于OpenXML技术,设计一种学位论文格式自动检测系统,能够根据论文模板自动扫描待测论文,找到其中不符合模板要求的格式问题,并生成检测报告.实验结果显示该方法具有较低的误报率和漏报率,能够有效工作.
【期刊名称】《现代计算机(专业版)》
【年(卷),期】2017(000)013
【总页数】4页(P51-54)
【关键词】学位论文;格式检测;OpenXML
【作者】叶秀云;刘德正
【作者单位】大连理工大学软件学院,大连 116621;大连理工大学软件学院,大连116621
【正文语种】中文
研究生学位论文一般采用Word软件撰写,对论文格式要求非常严格,传统依靠人工进行格式检测的方式效率较低。基于OpenXML技术,设计一种学位论文格式自动检测系统,能够根据论文模板自动扫描待测论文,找到其中不符合模板要求的格式问题,并生成检测报告。实验结果显示该方法具有较低的误报率和漏报率,能够有效工作。
国内高校大量使用微软公司的Word字处理软件撰写学位论文,学位论文有较严格的格式要求,人工检测效率和准确性均较低,因此有必要设计一种学位论文格式自动检测系统。安徽工业大学的陈国胜、何宗明老师早在 2009年就提出了一种基于 XML技术的Word文档录入及格式检测系统设计方法,该方法通过Word文档和XML文档的相互转换,设计了一个Word文档录入和格式检测模型系统,但是该系统还有不完善的地方,例如需要改进文档格式检测机制,进一步实现Excel 接口和XSTL转化接口;东北电力大学的阚运奇老师在2012年提出一种基于VBA 的论文检测方法,该方法需使用VBA技术操作宏,普通用户难以使用;隋欣、张军辉在2013年提出了一种基于.NET的文档信息提取解析方式,该方法仅仅读取到了文档内部的文本、标题、目录和表格信息,但对文档的样式信息提取并没有涉及。
虽然不少学者提出了各种操作文档的想法,但是目前还没有一种比较方便有效的系统供人们对大量相同格式要求的论文进行检测。本文设计开发了一套基于OpenXML格式规范的研究生学位论文格式自动检测系统,该系统利用自动化方法检测docx格式论文文档,可以提高用户编辑学位论文的效率,减轻教师和学生的负担。
本方法的系统架构图如图1所示,包括单元定位模块、格式提取模块、对比模块三个模块。
单元定位模块包括封面定位子模块、独创性声明定位子模块、标题定位子模块等11个子模块,功能为分别定位论文的各个特定部位,获取对应的XML信息。
格式提取模块包括段落属性提取子模块和特殊格式属性提取子模块两个子模块。段落属性提取子模块的功能是提取待测论文每个部分共有的段落属性,如每个段落的字体、字号、段间距。特殊格式属性提取子模块的功能是提取除段落属性之外的其他格式,如参考文献样式提取、图和表所在章节的标题名称提取。
对比模块包括规则配置文件、规则对比子模块、报告生成子模块三个部分。规则配置文件的功能是存储模板论文规定的规则,是检测待测论文正确与否的标准。规则对比子模块的功能是将待测论文的格式特征与规则配置文件配置的规则进行对比,判断格式的正误。报告生成子模块的功能是获取规则对比子模块中检测到的错误信息并写入检测报告中。
由于本系统处理的是论文各个部分的格式,如何准确地定位各部分以及如何精准地切割就显得至关重要。以下列出论文中几个关键部分的定位算法。
首先寻找到全文的第一个带编号的标题,标题后的第一个段落就是正文开始处;接着过滤中间封装标题的
元素和封装图的
元素;最后定位正文结束部分,
寻找正文结束后出现的第一个没有编号的标题,以此为正文部分的结束定位标志。
节的页眉属性 元素,判断其中是否包含 子元素,遍历下一个 元素重复第一步,直到文档最后停止遍历;在< body> 元素中寻找保存最后一节属性的 表格信息存储在
到表格位置。定位表名的方法如下:首先获取 是否为空段落, 空段落体现为一个空行,非空段落作为表名处理。如在该前一个位置没有找到表名,则再向前回溯一个位置继续进行判断。如超过3步回溯仍未找到表名,认为表名 缺失或表名的格式有误。 格式提取模块的功能为获取论文各特定部分的格式。格式提取模块包括段落属性提取子模块和特殊格式属性提取子模块。 待测学位论文的每个特定部分都具有段落属性,段落属性提取是所有特定部分的共性工作,由段落属性提取子模块完成。在OpenXML中,所有文本内容都保存在 段落元素 中,在表1中给出了段落中常见的元素及其说明。 (1)字体 依次遍历每一个 元素,由rFonts元素按照样式的层次结构依次提取字体样式,获取到中英文的字体;检测段落是否为全英文、全中文,或者既有中文又有英文,若是全英文,舍弃提取到的中文字体样式,不能用于对比模块;若是全中文,舍弃提取到的英文字体样式,不能用于对比模块;若既有中文又有英文,提取到的中文英文字体样式全部保存。 (2)字号 首先按照样式的层次结构获取 大小;然后参考字号对照表得到字号和磅数的对应关系,得到实际字号;将字号保存用于对比模块。 (3)段前距离 段前距离信息从 依据样式的层次结构找到 取该属性对应的属性值,计算得到以行距倍数表示的该段落的段前距离;利用 换算成以“磅”为单位的段前距离;若不包含beforeLines属性,则获取before 属性的属性值,计算得到以“磅”为单位的段前距离。 特殊格式提取子模块用于处理除段落属性之外的其他格式提取问题,包括参考文献样式提取、图和表所在章节的标题名称提取等,这些格式要求在OpenXML中并