论文校验与排版系统解析

时间:2022-05-16 03:02:02

论文校验与排版系统解析

多模板多格式论文校验与自动排版系统设计系统主要分为2大部分6个模块:模板处理包括模板文件导入和标准格式导出,待测论文处理包括待测论文导入、论文格式校验、错误信息提示,以及自动排版输出,模板文件是一篇符合某格式规范的范例论文,或是专门编写的说明性缩略样板,为word格式,其包含了该格式规范所要求的所有必须部分,并设置了对应正确的字体、字号、段落位置等格式。导入模板文件后,系统扫描整个模板,依次提取文章标题、摘要、关键词、目录、各级标题及正文、参考文献等格式信息,以及页眉页脚、换页分栏等信息,并保存。完成后,可以直接据此进行待测论文的校对和排版,也可以导出为表格方式排布的标准格式。其导出文件也可根据需要进行修改,并在后续应用中直接使用。待测论文包括各种格式的文档,如MSWord、WPS等有格式的文档,以及pdf、txt等无格式或不兼容格式的文档。待测论文导入模块按照系统指定路径进行文档读取。随后,系统开始同步执行校验与排版过程。针对文档格式的不同,系统分别进行基于文档格式的信息提取和基于关键词语义的信息提取,并将提取的信息和内容按照指定的模板进行比对校验,记录错误信息,同时按照正确的格式写入新的文件中。最后,在保留原先文件的基础上,输出错误提示文件和自动排版的word新文件。多模板多格式论文校验与自动排版系实现过程采用OLE技术,通过C#与word相融合的方法,实现自动化地处理文档模板的过程。

实现技术:OLE与Word组件架构OLE自动化是一种面向对象的技术,是Windows应用程序之间相互操控的一项技术[1],允许在一个程序内部操控另一个程序所提供的对象,从而实现了应用程序级别的可重用性。对于word来说,整个文档相当于一个Document组件,这份文件可以以章节符号分割为许多章节,每个分节即为Section组件。每个分节又可以分为多个段落,以Enter符号表示,每个段落即为Paragraph组件。此外还有泛指段落、句子、文字等的Range组件[2]。Word组件架构,在Windows平台下的Office软件提供了一系列文档服务并支持这一技术,因此,在C#环境下,基于OLE技术,可以实现对Word的自动化操作。模板文件导入模板文件为Word格式,可根据Word服务器的接口,创建应用打开文档:程序会首先读出文档的段落总数,然后以段落为计量单位逐段地直接读取其内容和提取格式信息。进行格式信息保存之前,要先进行的是级别属性的判定,即确定所读取内容所属的论文结构(标题、摘要、正文等)。判断段落级别信息的代码如:当模板文件不包含某些项目(如有些论文不要求包含目录等)时,标准格式对应项为空。

根据要求的变动,也可直接对表格进行修改。后续进行大量论文校验和自动排版时,不必每次都从模板文件开始导入和提取信息,而是可以直接应用标准格式的导出文件进行,从而提高系统效率。待测论文处理针对不同规格的待测论文,分析相应特点和规律,并实现论文导入、格式校验、检测和排版结果输出的功能。待测论文导入系统按照指定路径,读取待测论文。由于论文的撰写可能用到各种软件,其生成的文档包括多种格式,如MSWord、WPS等有格式的文档,以及pdf、txt等无格式或不兼容Word格式的文档。因此,待测论文导入模块根据其后缀名将其区分处理,前者直接输送到“word格式文档”的后续模块,对于后者,则只提取文本,去除格式信息,输送到“非word格式文档”的后续模块。论文格式校验标准的格式信息来自于模板。待测论文在格式和内容方面与模板的要求可能存在较大的差距。从待测论文中读取内容,判断其所属的论文结构(标题、摘要、正文等),继而从模板中找到对应的标准格式,并对待测段落内容进行格式比对。其中,如何判断所读取内容的所属论文结构,即如何准确定位到论文的各个部分是至关重要的。对于word格式和非word格式的文档,也有着不同的处理方法。word格式文档与模板文件的处理方法类似,可以利用OLE技术实现对Document对象的操作,逐段地直接读取论文内容。基于文档设置了级别属性,因此可以直接读出所读取内容所对应的格式,从而判断其所属的级别,是各级标题还是正文,并结合“摘要”“目录”等关键字的检测,判断并标识读取的内容属于论文的哪一部分,从而对应地进行格式校验与自动排版。对于无格式或格式与word标题级不兼容的文档,依然可以通过对应的输入输出流读取论文内容,但是准确定位到论文的各个部分将更加复杂。本程序采取了语义识别、固定模式(Pattern)识别及手动标记相结合的方法,以提高识别准确率。对于包含特定的关键字的内容模块,程序利用首位关键字语义识别的方式进行处理。如摘要部分,程序利用“摘^W要”二字作为首定位特征,“关键字”作为尾定位特征,得到检测查找的代码,其中^W为通配符,考虑到摘要标题两字之间可能加空格等情况[3]。对于拥有特定的模式特征的内容模块,程序利用固定模式进行pattern识别进行处理。如正文部分的各级标题,一级标题为“第n章xxx”或“nxxx”,二级标题为“n.nxxx”,三级标题则为“n.n.nxxx”,其中n表示数字,因此可以通过对数字和点号“.”的模式匹配,来确定标题的级数。对于难以识别的内容模块,程序可以预定义和结合手动标记进行处理。如文章标题,可通过文档名称进行语义识别,可在程序运行前输入准确标题文字,也可在文档标题前添加“[Title]”作为标志,程序识别出标题后,能立即按照其特定格式进行处理。

错误信息提示与自动排版输出进行论文格式校验时,错误信息模块和自动排版输出模块也同时启动。每当检测到不符合标准格式的项目,错误信息提示模块将记录其基本定位信息,包括所属章节以及开头若干字的定位,以及其正确的格式,如字体大小应为多少、行间距应为多少等,以方便最后反馈给用户。同样地,在程序起始时,自动排版输出模块便创建一个word文档,每进行一个段落的格式校验,便将其内容按照标准格式写入到这个新建word文档中,从而同步地进行自动排版。另外,还按照要求生成页眉页脚,并进行正文的分栏。值得注意的是,在这过程中,唯一不同步写入的是原文的目录内容,而是在结束后,由自动排版模块定位到新建word文档的目录起始处,重新自动生成目录项:这是因为,重新排版之后,文章各部分的页码很可能会有所变化,需要更新调整。图片表格的处理在一篇论文中,经常出现图文和表格混排的情况,其中,文字可在图片的四周、嵌入图片下面、浮于图片上方等,表格可能是规则表格,也可能是横向或纵向合并或拆分了单元格的不规则表格等。这种复杂的编排模式使得在对文档在格式编排时遇到了很大的困难,因此要进行特殊的处理。类似地,表格的处理也可以采用执行前插入标记的方法来指示表格位置,从而在论文校对模块主体运行时减轻对内容是否为表格进行判断的负担。不同的是,当检测到表格标记时,新建自动排版文档需要以正确的格式复制或创建原文中的表格,并正确定位到表格结束后的段落。在表格中,一个单元格就是一个段落,并且表格的一行结束后仍然会占据一个段落的位置,因此对于规则表格而言,所占段落数等于(列数+1)×行数。但是对于不规则表格,存在单元格合并和拆分,因此其所占段落数为单元格个数+行数。

作者:潘若瑛 张忠能

上一篇:导演电影叙事模式的生成概述 下一篇:信息论的本科毕业设计创新