APP下载

研究生学位论文格式自动检测系统设计与实现

2017-06-19叶秀云刘德正

现代计算机 2017年13期
关键词:段落文档参考文献

叶秀云,刘德正

(大连理工大学软件学院,大连 116621)

研究生学位论文格式自动检测系统设计与实现

叶秀云,刘德正

(大连理工大学软件学院,大连 116621)

研究生学位论文一般采用Word软件撰写,对论文格式要求非常严格,传统依靠人工进行格式检测的方式效率较低。基于OpenXML技术,设计一种学位论文格式自动检测系统,能够根据论文模板自动扫描待测论文,找到其中不符合模板要求的格式问题,并生成检测报告。实验结果显示该方法具有较低的误报率和漏报率,能够有效工作。

0 引言

国内高校大量使用微软公司的Word字处理软件撰写学位论文,学位论文有较严格的格式要求,人工检测效率和准确性均较低,因此有必要设计一种学位论文格式自动检测系统。安徽工业大学的陈国胜、何宗明老师早在 2009年就提出了一种基于 XML技术的Word文档录入及格式检测系统设计方法,该方法通过Word文档和XML文档的相互转换,设计了一个Word文档录入和格式检测模型系统,但是该系统还有不完善的地方,例如需要改进文档格式检测机制,进一步实现Excel接口和XSTL转化接口;东北电力大学的阚运奇老师在2012年提出一种基于VBA的论文检测方法,该方法需使用VBA技术操作宏,普通用户难以使用;隋欣、张军辉在2013年提出了一种基于.NET的文档信息提取解析方式,该方法仅仅读取到了文档内部的文本、标题、目录和表格信息,但对文档的样式信息提取并没有涉及。

虽然不少学者提出了各种操作文档的想法,但是目前还没有一种比较方便有效的系统供人们对大量相同格式要求的论文进行检测。本文设计开发了一套基于OpenXML格式规范的研究生学位论文格式自动检测系统,该系统利用自动化方法检测docx格式论文文档,可以提高用户编辑学位论文的效率,减轻教师和学生的负担。

1 系统功能设计

本方法的系统架构图如图1所示,包括单元定位模块、格式提取模块、对比模块三个模块。

图1 系统架构图

单元定位模块包括封面定位子模块、独创性声明定位子模块、标题定位子模块等11个子模块,功能为分别定位论文的各个特定部位,获取对应的XML信息。

格式提取模块包括段落属性提取子模块和特殊格式属性提取子模块两个子模块。段落属性提取子模块的功能是提取待测论文每个部分共有的段落属性,如每个段落的字体、字号、段间距。特殊格式属性提取子模块的功能是提取除段落属性之外的其他格式,如参考文献样式提取、图和表所在章节的标题名称提取。

对比模块包括规则配置文件、规则对比子模块、报告生成子模块三个部分。规则配置文件的功能是存储模板论文规定的规则,是检测待测论文正确与否的标准。规则对比子模块的功能是将待测论文的格式特征与规则配置文件配置的规则进行对比,判断格式的正误。报告生成子模块的功能是获取规则对比子模块中检测到的错误信息并写入检测报告中。

2 单元定位模块

由于本系统处理的是论文各个部分的格式,如何准确地定位各部分以及如何精准地切割就显得至关重要。以下列出论文中几个关键部分的定位算法。

首先寻找到全文的第一个带编号的标题,标题后的第一个段落就是正文开始处;接着过滤中间封装标题的

元素和封装图的

元素;最后定位正文结束部分,寻找正文结束后出现的第一个没有编号的标题,以此为正文部分的结束定位标志。

元素存储了标题的文本信息以及样式,OpenXML中根据文档设置的各个节的页眉属性如首页不同、奇偶页不同生成相应的页眉。方法如下:首先遍历

元素,判断其中是否包含子元素;若包含子元素,找出元素的所有页眉引用子元素,接着找出元素的所有页脚引用子元素,利用页眉引用、页脚引用的标识符定位到相应的页眉元素、页脚元素;若不包含子元素,遍历下一个

元素重复第一步,直到文档最后停止遍历;在< body>元素中寻找保存最后一节属性的子元素,重复第二步。

表格信息存储在元素的子元素内,依次遍历每个元素,可找到表格位置。定位表名的方法如下:首先获取的位置信息,即计算这个元素是的第几个子元素,然后再检测前一个位置的

是否为空段落,空段落体现为一个空行,非空段落作为表名处理。如在该前一个位置没有找到表名,则再向前回溯一个位置继续进行判断。如超过3步回溯仍未找到表名,认为表名缺失或表名的格式有误。

3 格式提取模块

格式提取模块的功能为获取论文各特定部分的格式。格式提取模块包括段落属性提取子模块和特殊格式属性提取子模块。

待测学位论文的每个特定部分都具有段落属性,段落属性提取是所有特定部分的共性工作,由段落属性提取子模块完成。在OpenXML中,所有文本内容都保存在段落元素

中,在表1中给出了段落中常见的元素及其说明。

表1 常见的段落元素和C#类说明

(1)字体

依次遍历每一个

元素,由rFonts元素按照样式的层次结构依次提取字体样式,获取到中英文的字体;检测段落是否为全英文、全中文,或者既有中文又有英文,若是全英文,舍弃提取到的中文字体样式,不能用于对比模块;若是全中文,舍弃提取到的英文字体样式,不能用于对比模块;若既有中文又有英文,提取到的中文英文字体样式全部保存。

(2)字号

首先按照样式的层次结构获取的属性Val的值,计算得到以磅为单位的字号大小;然后参考字号对照表得到字号和磅数的对应关系,得到实际字号;将字号保存用于对比模块。

(3)段前距离

段前距离信息从元素的before和before鄄Lines属性中提取。首先依据样式的层次结构找到元素;若该元素包含beforeLines属性,获取该属性对应的属性值,计算得到以行距倍数表示的该段落的段前距离;利用元素的子元素的linePitch属性可以获得一行的磅数,统一换算成以“磅”为单位的段前距离;若不包含beforeLines属性,则获取before属性的属性值,计算得到以“磅”为单位的段前距离。

特殊格式提取子模块用于处理除段落属性之外的其他格式提取问题,包括参考文献样式提取、图和表所在章节的标题名称提取等,这些格式要求在OpenXML中并没有明确的元素对应,需采用特殊方式提取。

(1)参考文献格式提取

首先利用正则表达式匹配参考文献的标志代码,根据标志代码确定参考文献的类型;若无法匹配,说明此条参考文献缺少标志代码,保存错误信息后,继续下一条参考文献格式的提取;若匹配成功,接着以中括号为分割点把该条参考文献分割成几部分,检测作者、出版社、出版年份等格式是否满足要求;接下来获取参考文献的编号样式,判断参考文献的编号是否连续,若不连续,保存错误信息,若连续,进入下一步;最后统计参考文献条目的数目,保存起来用于对比模块。

检测参考文献连续性的方法如下:首先记录并维护参考文献的正确编号值,即编号应为从1开始的连续自然数,每次检测到新的参考文献条目后此值加1;接着判断此参考文献是手动编号还是自动编号,若是手动编号,利用正则表达式获取编号,然后判断是否和正确编号值相同,若是自动编号只需检测自动编号开始的参考文献编号是否和正确编号值相同。

(2)图和表所在章节的标题名称提取

首先用链表保存章节标题所在的段落的位置信息,即索引值;然后获取图、表的索引,用图、表的索引值和链表中的各个值依次比较,直到链表中的值大于此值为止,则链表中的前一个数值就是该图、表所在章节标题的位置;最后根据此索引即可得到标题名称。

4 对比模块

对比模块的功能是将格式提取模块提取出的待测论文中的格式特征与论文模板中的规则进行对比,将对比结果不一致格式问题输出到检测报告中。该模块分为规则配置文件、规则对比子模块、报告生成子模块三个部分。

规则配置文件包含了模板论文规定的规则,是检测待测论文正确与否的标准。在调用规则配置文件时,首先由单元定位模块确定当前检测的位置在论文中所属的部分,然后检测该部分是否已存在XML格式的配置文件,若存在,则进入规则对比子模块;若不存在,则说明当前部分没有设置格式要求,结束当前部分的检测。

首先获取单元定位模块的结果,判断当前要检测的段落是待测论文的哪一部分,在规则配置文件中找到模板论文相应的规则,将格式提取模块提取到的该部分的格式信息与相应的规则配置文件中的规则进行对比,若该格式特征与规则配置文件中的规则一致,则说明该格式正确;反之将错误信息交由报告生成子模块处理。

首先获取生成报告的保存路径,若用户未自定义,默认路径设置为该待测论文的上传路径;接着获取在规则配置文件中保存的所有待检测的特定部分的节点信息,依次遍历每个节点;获取节点中保存的该节点对应的名称,从而找到对应的错误信息的保存位置;将寻找到的错误信息编号后保存到检测报告中,最终生成一份检测报告。

5 实验及分析

在编程结束后,共进行了开发人员测试和用户测试两方面测试,下面是两种测试环境下的具体分析。

为了实现快速检测大批量、相同格式要求论文的目的,检测单篇论文的程序被进行了批处理,在批处理程序中选择需要检测的部分,包括封面、独创性声明、标题、摘要、目录、正文、页眉页脚、表格、图形、参考文献、授权书等十一个部分。在.NET及Java环境下,对包含46篇论文的论文集检测结果如下:46篇论文全部检测成功,共用时33秒,平均0.717秒一篇。

本系统于2016年6月1日正式上线,在2016年6月本科生毕业期间共收到来自全校的500余篇论文的上传,其中不同的论文317篇,剩余的200余次上传为同一用户在修改论文的过程中不断地使用本系统进行检测与修正,最终修正为格式无误的论文。在2016年9月研究生毕业期间,共收到来自23名用户的50余篇不同的研究生论文。

6 结语

学位论文格式自动检测系统可以根据论文模板,自动对待测论文进行格式检测,具有自动化程度高、检测速度快、检测准确率高等优点,可大幅降低毕业生和指导教师的工作量,提高工作效率。下一步工作可重点考虑在线配置检测规则,以提高本系统对不同学校论文模板的适用性。

[1]陈国胜,何宗明.基于XML技术的Word文档录入及格式检测系统设计[J].计算机时代,2009(4):38-40.

[2]阚运奇.毕业论文格式检测系统的设计与研究[J].无线互联科技,2012(11):17-17.

[3]隋欣,张军辉.基于.NET的Word的文档信息读取解析[J].计算机光盘软件与应用,2013(24):87-88.

[4]叶明,张诤.基于C#.NET的Word报告生成功能开发[J].计算机工程与应用,2008,44(9):104-106.

[5]徐东风,彭红星,廖俊杰.基于 Java的文档格式检查技术的研究及其应用[J].计算机工程与设计,2010,31(19):4309-4315

[6]周益兰.TMLC在研究生学位论文检测中的应用研究[J].研究生教育研究,2012,02:71-74.

[7]赵常丽,杨磊.基于学位论文管理系统的本科生学位论文检测方法研究[J].青海大学学报(自然科学版),2014,01:85-89.

Design and Im p lementation of Automatic Detection System of Graduation Thesis Format

YE Xiu-yun,LIU De-zheng
(School of Software,Dalian University of Technology,Dalian 116621)

Graduate degree thesis is generally written in Word software,and the format requirements of the thesis are very strict.Based on the OpenXML technology,designs an automatic detection system of degree thesis,which can automatically scan the papers to be tested ac鄄cording to the template,and find the formats that do notmeet the requirements of the template,and generate the test report.The experi鄄mental results show that thismethod has low false positive rate and false negative rate,and can work effectively.

国家级大学生创新创业项目(No.2016101410302)

叶秀云(1996-),女,安徽阜阳人,在读本科,研究方向为算法设计与分析

2017-02-28

2017-04-20

1007-1423(2017)13-0051-04

10.3969/j.issn.1007-1423.2017.13.012

学位论文;格式检测;OpenXML

刘德正(1996-),男,河北沧州人,在读本科,研究方向为算法设计与分析

Degree Thesis;Format Detection;OpenXML

猜你喜欢

段落文档参考文献
浅谈Matlab与Word文档的应用接口
趣味•读写练 答案
有人一声不吭向你扔了个文档
【短文篇】
心理小测试
The Muted Lover and the Singing Poet:Ekphrasis and Gender in the Canzoniere*
夏天,爱情的第四段落
Word文档 高效分合有高招
Study on the physiological function and application of γ—aminobutyric acid and its receptors
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat