1 背景 由于电子文档便于保存,查找和维护,目前高校学生提交 的实验报告逐步由纸质版转向电子版。电子文档在带来便利 的同时,也为学生的抄袭提供了极大方便。为了防止学生实验 报告出现抄袭现象以及教师批改完报告之后需要人工汇总分 数,统计缺交情况,这些工作费时费力,且容易出错,教师急需 有效的论文查重和统分工具来减轻负担,把宝贵的精力投入到更有 意义的工作中去。但市场上的查重软件主要是用来对论文进 行查重的,收费昂贵,且无法检查班级内部的抄袭情况。为了 解决上述问题,设计了一个针对高校电子版实验报告特点的桌 面软件,辅助进行实验报告的管理,实现班级内的查重、汇总分 数和统计缺交情况,结果自动以 excel形式导出,有效降低了教 师的实验报告管理工作工作量,杜绝学生抄袭现象,督促学生 认真完成实验,独立撰写实验报告。 2 主要技术介绍 2.1 余弦相似度算法 余弦相似度算法是最常用的计算文本相似度的算法。余弦相似度在计算文本相似度时,首先需要对文本进行分词,计 算词频,然后文本可以用词频向量来表示,它通过计算两个向 量之间的夹角余弦值来度量向量之间的相似程度[1],文本相似 度计算效果很好,在文本相似度计算方面获得广泛应用[2]。计 算方法如公式 1所示。 例:A:安徽省合肥市 B:安徽省安庆市 通过 NLPIR 汉语分词系统分词,计算词频,得到:安徽省 合肥市 安庆市 A:[1,1,0] B:[1,0,1] 得出 AB的相似度为 0.5。 2.2 NLPIR汉语分词系统 采用中科院的 NLPIR汉语分词系统[3],对实验报告文本进 行分词,NLPIR基于交叉信息熵算法,能自动计算并提取关键 词,并实现了自适用分词和标注词性,因此是文本分词的不二 选择,得到了广泛认可和应用。 2.3 POI 本系统采用 apache放入 POI中对 word进行读写操作,POI 支持 office2003 和 2007,Excel2003 和 2007[4]。apache 的开发团 队一直对 POI进行更新维护,功能丰富且完备。其中的 hwpf模 块可以实现 word 的 doc 文件的读写操作。xwpf 模块可以实现 word的 docx文件的读写操作[5]。本系统处理的是 docx文件,需 要用到 xwpf模块,在读写操作中涉及到几个重要的对象,这里 做个简单介绍,XWPFDocument 的对象表示一个 docx 文档。 XWPFDocument 又由下面几个重要对象组成的,其中 XWPF⁃ Paragraph对象表示文档中的一个段落。XWPFRun对象则表示 一段具有相同属性的文本。而 XWPFTable对象表示文档中的 一个表格。XWPFTableRow 表示表格的一行。XWPFTableCell 则对应表格的一个单元格。 3 系统设计 3.1 系统功能模块设计 系统主要由五大模块组成,学生信息管理和实验报告模板 管理两个模块维护基本信息,为检测缺交名单、查重和成绩汇 总三个模块的运行提供基础数据。系统功能结构如图 1所示。 3.2 数据库设计 采用开源数据库的 MySql存储学生、班级和实验报告模板 信息,具体表的定义如下。 4 系统核心功能实现 4.1 读取实验报告内容 实验报告要求学生统一提交 docx文档,POI可以通过 XW PFWord Extractor和 XWPF Document两种方式读取 docx文档。 XWPF Word Extractor 的内部也是引用 XWPF Document 的,但 只能获得简单的文本内容和文档属性,无法获取文档内容的属 性,所以系统使用 XWPF Document对象,它可以获取文本内容 的精确属性信息,比如可以获取到某一个 XWPF Paragraph,它 的字体、字号和行距等属性。下面是使用 XWPF Document遍历 XWPF Paragraph,读取实验报告文本的主要代码: 4.2 检测缺交名单 可以指定班级或者选定学生名单的 excel 文件,并且选定 作业所在的文件夹,根据作业文件的命名格式,提取学号和姓 名与系统里存储的班级学生进行比对,检测出没有提交作业的 学生,生成缺交名单。部分实现代码如下: 4.3 报告查重 报告是在本班级范围内进行查重,要将每个学生的报告与 其他学生的报告进行相似性检测,对相似度大于设定阈值的报 告写入查重报告。具体实现过程: 第一步:选择查重的班级、作业模板和实验报告所在的文 件路径。 第二步:根据班级按照序号查询出学生信息,包含序号,学 号和姓名 第三步:对学生列表进行循环,从指定文件路径找到学生 的作业,读取作业的内容;对内容进行分词处理,计算词频,循 环结束后,生成词频矩阵。 第四步:用余弦算法计算这些词频向量之间的相似度,生 成相似度矩阵。 第五步:筛选大于阈值的作业,生成查重结果文件。 4.4 报告成绩导出 电子实验报告中,通常在文档的最后一行有打分的位置, 一般会设定得分关键字,测试数据中是“得分(百分制)”。但是 部分学生在实验撰写过程中,会不小心删除得分的关键字,或 者在得分之后又附上一些实验中的数据。这里事先约定,如果 文档中有得分的位置,则在此处打分,否则在文档的最后一段 打分。本模块首先选定作业的模板,获得得分关键字,然后读 取 word文件,获取所有的段落集合,然后依次遍历段落中是否 有得分关键字,有则利用正则表达式获得分值,否则,取文档的 最后一段,提取其中的分值。最后将汇总的分数生成 excel 文件。 5 结束语 系统在 eclipse 平台上采用 java 语言开发,用 POI 提供的 API 读取 word 文档的文本内容。采用中科院的 NLPIR 汉语分 词系统对文本分词,然后用余弦相似度算法计算相似度,进行 论文查重。系统实现了实验报告缺交检测,在本班级内进行报告内 容论文查重并生成论文查重报告,读取报告中的成绩并生成 excel 汇总 表。系统有效协助了教师对实验报告的管理,使教师可以集中 精力批改实验报告。下一步工作,希望采用B/S模式实现报告 的线上提交,批阅和学生交互等操作。 参考文献: [1] 朱浩,连德富,左志宏,等.余弦相似度在高校综合信息系统中 的应用[J].东南大学学报: 自然科学版, 2017(A1). [2] 许浩,周亚萍,赵亚慧.基于余弦文本相似度计算的英语作文 评分算法的应用研究[J]. 教育教学论坛,2018(6). [3] NLPIR:在信息检索中运用自然语言处理的理论框架[J]. 图 书情报工作动态,2003(3). [4] 马杰,魏宁,王霄,等.基于 POI 的 Android 阅读器设计与实现 [J].电子技术与软件工程, 2013(15). [5] 黄青云,裴冬菊 .POI在 Word文档不同颜色文本分离中的应 用[J].南昌工程学院学报, 2014(3). 相关文章:西部大学学生网络诚信问题论文查重检测结果分析研究