国内高校大量使用微软公司的 Word 字处理软件
撰写学位论文,学位论文有较严格的格式要求,人工论文查重检
测效率和准确性均较低, 因此有必要设计一种学位论
文格式自动检测系统。 安徽工业大学的陈国胜、何宗明
老 师 早 在 2009 年 就 提 出 了 一 种 基 于 XML 技 术 的
Word 文档录入及格式检测系统设计方法,该方法通过
Word 文档和 XML 文档的相互转换,设计了一个 Word
文档录入和格式检测模型系统, 但是该系统还有不完
善的地方,例如需要改进文档格式检测机制,进一步实
现 Excel 接口和 XSTL 转化接口;东北电力大学的阚运
奇老师在 2012 年提出一种基于 VBA 的论文检测方
法,该方法需使用 VBA 技术操作宏,普通用户难以使
用;隋欣、张军辉在 2013 年提出了一种基于.NET 的文
档信息提取解析方式, 该方法仅仅读取到了文档内部
的文本、标题、目录和表格信息,但对文档的样式信息
提取并没有涉及。
虽然不少学者提出了各种操作文档的想法,但是目
前还没有一种比较方便有效的系统供人们对大量相同
格式要求的论文进行检测。 本文设计开发了一套基于
OpenXML 格式规范的研究生学位论文格式自动检测系统, 该系统利用自动化方法检测 docx 格式论文文
档,可以提高用户编辑学位论文的效率,减轻教师和学
生的负担。
1 系统功能设计
本方法的系统架构图如图 1 所示, 包括单元定位
模块、格式提取模块、对比模块三个模块。
单元定位模块包括封面定位子模块、 独创性声明
定位子模块、标题定位子模块等 11 个子模块,功能为
分别定位论文的各个特定部位, 获取对应的 XML 信
息。
格式提取模块包括段落属性提取子模块和特殊格
式属性提取子模块两个子模块。 段落属性提取子模块
的功能是提取待测论文每个部分共有的段落属性,如
每个段落的字体、字号、段间距。 特殊格式属性提取子
模块的功能是提取除段落属性之外的其他格式, 如参
考文献样式提取、图和表所在章节的标题名称提取。
对比模块包括规则配置文件、规则对比子模块、报
告生成子模块三个部分。 规则配置文件的功能是存储
模板论文规定的规则, 是检测待测论文正确与否的标
准。 规则对比子模块的功能是将待测论文的格式特征
与规则配置文件配置的规则进行对比, 判断格式的正
误。 报告生成子模块的功能是获取规则对比子模块中
检测到的错误信息并写入检测报告中。
2 单元定位模块
由于本系统处理的是论文各个部分的格式, 如何
准确地定位各部分以及如何精准地切割就显得至关重
要。 以下列出论文中几个关键部分的定位算法。
首先寻找到全文的第一个带编号的标题, 标题后
的第一个段落就是正文开始处; 接着过滤中间封装标
题的元素和封装图的
元素; 最后定位正文结束
部分,寻找正文结束后出现的第一个没有编号的标题,
以此为正文部分的结束定位标志。
元 素 存 储 了 标 题 的 文 本 信 息 以 及 样 式 ,
OpenXML 中根据文档设置的各个节的页眉属性如首页不同、奇偶页不同生成相应的页眉。 方法如
下:首先遍历元素,判断其中是否包含子元
素;若包含子元素,找出元素的所有页
眉引用子元素, 接着找出元
素的所有页脚引用子元素, 利用页眉
引用、 页脚引用的标识符定位到相应的页眉元
素、页脚元素;若不包含子元素,遍历下一
个元素重复第一步, 直到文档最后停止遍历; 在<
body>元素中寻找保存最后一节属性的子元素,重复第二步。
表格信息存储在元素的子元素内,依
次遍历每个元素,可找到表格位置。定位表名的方
法如下:首先获取的位置信息,即计算这个元
素是的第几个子元素, 然后再检测前一个位置
的是否为空段落,空段落体现为一个空行,非空段
落作为表名处理。 如在该前一个位置没有找到表名,则
再向前回溯一个位置继续进行判断。 如超过 3 步回溯
仍未找到表名,认为表名缺失或表名的格式有误。
3 格式提取模块
格式提取模块的功能为获取论文各特定部分的格
式。 格式提取模块包括段落属性提取子模块和特殊格
式属性提取子模块。
待测学位论文的每个特定部分都具有段落属性,
段落属性提取是所有特定部分的共性工作, 由段落属
性提取子模块完成。 在 OpenXML 中,所有文本内容都
保存在段落元素
中,在表 1 中给出了段落中常见的
元素及其说明。
(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 结语
学位论文格式自动检测系统可以根据论文模板,
自动对待测论文进行格式检测,具有自动化程度高、检
测速度快、检测准确率高等优点,可大幅降低毕业生和
指导教师的工作量,提高工作效率。 下一步工作可重点
考虑在线配置检测规则, 以提高本系统对不同学校论
文模板的适用性。
相关文章:国内常用论文检测系统论文检测结果的差异性分析