一种基于深度学习的竞赛证书处理系统
文献发布时间:2024-04-18 19:52:40
技术领域
本发明涉及数据处理技术领域,具体涉及一种基于深度学习的竞赛证书处理系统。
背景技术
大学生学科竞赛是培养学生创新精神、创造能力和团队合作意识的有效途径和重要载体。我国高校拥有各类学科竞赛几百项,每年学生参加各类竞赛超过1亿人次,由此产生的学科竞赛证书达数千万份。以本科生规模为3万名学生的某高校为例,每年省级以上学科竞赛奖2000项以上,校级学科竞赛奖5000多项,高校创新创业教育管理部门需要根据7000多份的学科竞赛获奖数据,计算学生的创新创业学分、免试推荐研究生综合加分、奖学金加分、教师的教学工作量课时。全国3000多所高校每年处理学科竞赛获奖数据规模达2000万以上。由于高校学科竞赛种类繁多,奖项设置各异,获奖证书没有统一的模板和格式,例如有的学科竞赛奖项设置为特等奖、一等奖、二等奖、三等奖,有的是一等奖、二等奖、三等奖、四等奖,有的是金奖、银奖、铜奖,有的是冠军、亚军、季军,还有一些特殊的等级设置。另外,同一类学科竞赛又有校赛、省赛、国赛等不同级别设置。这些因素,给高校学科竞赛的统计分析带来了繁重的数据处理工作量。
现在各高校基本建有教学信息化系统,学科竞赛获奖信息大都是通过软件系统录入。目前传统做法是,先由学生和教师自行将学科竞赛获奖信息通过教学信息化软件自行按照结构化文本方式录入系统,然后由学院进行复核审查,最后报送到高校创新创业管理部门进行审核认定。虽然有教学信息化软件系统做支撑,但是学科竞赛获奖数据的录入、复核、审核认定完全靠人工多次重复的去完成,由于学科竞赛获奖信息与学分、研究生面试推荐、教师工作量等相关,数据的正确性和重要性极高,因此很多高校都是通过多次复核来提高获奖信息的正确性,数据规模大、数据计算复杂繁琐、工作量大、数据处理效率低下,是目前高校存在的普遍问题。
在此过程中,存在以下问题:1.学科竞赛获奖关键数据错填、漏填。学生和教师在录入学科竞赛获奖信息时,竞赛名称、排名顺序、获奖人员、教师等内容往往容易错填、漏填。2.学科赛事级别、获奖等级错选。由于高校竞赛种类达几百项,学生或教师在传统的教务软件上操作从几百项学科竞赛信息列表中选择,经常出现选错的情况;另外,在选择获奖等级时候也会出现错选。3.对学科竞赛获奖等级理解不一致。传统做法每个学生自行录入学科竞赛奖项等级,往往存在不同学生和老师对奖项理解不一致,例如有的奖项设置是特等奖、一等奖、二等奖、三等奖,学校规定特等奖和一等奖都算作第一等级奖项,而很多同学把一等奖选择成了第二等级。4.重复检查、重复复核、重复审查,费时费力,容易出错。按照传统做法,学生和教师在录入信息时候需要检查一遍,然后学院需要对学科竞赛获奖信息第二次复核审查,最后报送到高校创新创业管理部门进行审核认定时候,还需要再次对几千份数据进行一一核对,费时费力,还容易出错。
目前,对证书类图片进行OCR识别技术比较成熟,已经在票据、身份证识别等领域拥有大量的应用。中国专利《基于词汇增强的医学实体抽取方法、装置、设备及介质》(公开号:CN113657105A)有类似OCR识别技术,该专利针对医学领域的文本,构建字查询字典标注训练语料数据,在利用多粒度分词处理获取词向量,将标注语料与初始词向量拼接在一起就得到的增强词向量。该专利针对的医学文本,且需要是事先构建字查询字典。中国专利《基于布局关联性的视觉富文档信息抽取方法、系统及介质》(公开号:CN114782965A),利用图片的视觉信息,即文字在图片的对应位置、图片中图像所处的对应位置、各个段落之间的关联位置之类的信息辅助抽取;该专利主要是针对车票等票据结构化文本信息实现实体抽取,对于竞赛证书无结构化文本的图像并不适用。
现有技术中,对于样式多、不规律、无结构化文本特征的学科竞赛证书图像的识别与结构化文本信息抽取的方法目前还没有。
因此,迫切需要一种能够对多类学科竞赛获奖证书图像进行识别和抽取成结构化信息的方法与系统,便于计算竞赛证书推免加分和计算指导教师工作量。
发明内容
为解决上述技术问题,本发明提供一种基于深度学习的竞赛证书处理系统。
为解决上述技术问题,本发明采用如下技术方案:
一种基于深度学习的竞赛证书处理系统,包括竞赛证书规则设置模块、竞赛证书收集上传模块、竞赛证书识别抽取模块、竞赛证书计算存储模块、竞赛证书查询统计模块;。
竞赛证书规则设置模块,用于为各类竞赛按照竞赛名称、赛事级别、获奖等级、参赛学生排名、指导教师排名信息,设置竞赛证书规则;其中竞赛证书规则包括学生免试推荐研究生综合加分的计算规则和指导教师工作量课时的计算规则。
竞赛证书收集上传模块,用于将竞赛证书图片上传到系统;还可以用于对竞赛证书经过系统识别后的信息进行确认。
竞赛证书识别抽取模块,一是用于竞赛证书图片通过OCR技术识别出的文本转换成JSON格式的文本数据,文本数据Certificatetext的格式为{'Certificatetext':"竞赛证书图像经过OCR识别后的文本数据"};二是通过训练好的深度学习模型将文本数据抽取成结构化信息,结构化信息的数据格式为:{name:"",level:"",grade:"",date:"",student:[{sname:"",rank:""},…],adviser:[{aname:"",rank:""},…],organization:"",title:"",certificatenum:""}。其中,name为竞赛名称、level为赛事级别、grade为获奖等级、date为赛事日期、student为可表示多个获奖学生姓名sname以及排序rank的数组(例如[{张三,1},{李四,2},{王二,3},……])、adviser为可表示多个指导教师姓名aname以及排序rank的数组、organization为参赛单位、title为参赛作品名称、certificatenum为证书编号。
竞赛证书识别抽取模块将文本数据通过深度学习模型抽取成结构化信息的方法,通过少量样本引导生成高质量逻辑规则,以全自动的方式训练神经网络模型,包含以下步骤:
步骤一:构建一个高质量的种子库,初始规则库;
步骤二:训练基于BERT-CRF的命名实体识别(Named Entity Recognition,NER)模型,记为NER模型;
步骤三:使用完成步骤二的NER模型预测无标注文本,并基于结果抽取对应的逻辑规则;
步骤四:基于逻辑规则筛选预测结果扩充种子库,开始下一轮迭代训练。
步骤一至步骤四的具体步骤如下:
步骤一、构建初始种子库,初始规则库:
从文本数据组成的数据集D中挑选部分文本数据,构建初始种子库S
步骤二、训练基于BERT-CRF的命名实体识别模型,记为NER模型:
将初始种子库S
设置元优化参数α,β,NER模型参数初始化为θ,如果是初次迭代训练则随机初始化;
随机从p(T)中抽取任务Ti;对任务Ti中的每一个类别的K个示例计算
更新NER模型的参数
步骤三、使用完成步骤二的NER模型预测无标注文本,并基于预测结果抽取对应的逻辑规则。
步骤三A:使用完成步骤二的NER模型对数据集D进行预测,得到候选实体集C
步骤三B:对候选实体集C
步骤三C:对候选实体集C
步骤四中,基于逻辑规则筛选预测结果扩充种子库时,基于新的规则库R
进一步地,步骤三C具体包括:
步骤三C1:对候选实体集C
F
步骤三C2:对候选实体集C
F
步骤三C3:由于同一类别的实体词性应该是相同的,将同一类实体中出现次数最多的词性信息c
步骤三C4:更新规则库R
竞赛证书计算存储模块,用于对所述结构化信息按照竞赛证书规则计算学生免试推荐研究生综合加分和指导教师工作量课时。
进一步地,竞赛证书计算存储模块用于将竞赛证书图片、竞赛证书的结构化信息、学生免试推荐研究生综合加分与指导教师工作量课时存入到数据库中;
竞赛证书处理系统还包括竞赛证书查询统计模块;竞赛证书查询统计模块用于根据数据库中将竞赛证书图片、竞赛证书的结构化信息、学生免试推荐研究生综合加分与指导教师工作量课时进行统计分析和查询。
与现有技术相比,本发明的有益技术效果是:
(1)便利性:本发明中的竞赛证书处理系统,无需构建复杂多样的竞赛证书结构化数据字典,也无需对竞赛证书样式有格式化的需求,可直接对多样式、无规则、无结构化文本特征的学科竞赛证书图像进行识别和抽取成结构化文本。在后期应用中便于用户使用。
(2)扩展性:对于后期不同样式的竞赛证书,本发明可以构建小样本的数据通过深度学习模型学习后,自动更新规则库,能够适用新样式的竞赛证书。
(3)准确性:本发明的竞赛证书处理系统中,用户只需要上传竞赛证书图片,系统自动进行识别与抽取,无需用户自行输入竞赛级别、获奖等级、排名等信息,提高了学生推免加分和指导教师工作量计算的准确性,解决了传统学科竞赛了错填、错选、漏填等问题。
(4)经济性:采用本发明的竞赛证书处理系统后,杜绝了传统学科竞赛信息用户自行填报的错选、错填、漏填等问题,无需再进行多次复核、审核,节省了人力物力,提高了经济型。
附图说明
图1为本发明深度学习模型抽取结构化信息的处理流程图。
具体实施方式
为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细地说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
以下结合附图对本发明实施例进行介绍。
本实施例提供了一种基于深度学习的竞赛证书处理系统,包括竞赛证书规则设置模块、竞赛证书收集上传模块、竞赛证书识别抽取模块、竞赛证书计算存储模块、竞赛证书查询统计模块;
竞赛证书规则设置模块,用于为各类竞赛按照竞赛名称、赛事级别、获奖等级、参赛学生排名、指导教师排名信息,设置竞赛证书规则;其中竞赛证书规则包括学生免试推荐研究生综合加分的计算规则和指导教师工作量课时的计算规则。
具体实施时,由学校创新创业教育部门的系统管理员对每一类学科竞赛按照竞赛名称进行分类,例如属于A类、B类等,对每一类竞赛的国赛、省赛、校赛按获奖等级和学生排名顺序设置学生免试推荐研究生综合加分,以及指导教师获得奖项后的工作量课时。
竞赛证书收集上传模块,一是用于将竞赛证书图片,通过WEB程序或小程序上传到系统;二是用于对竞赛证书经过系统识别后的信息进行确认。
具体实施时,首先由学生、指导教师通过系统提供的WEB程序或微信小程序客户端,将竞赛证书图片、学生或者指导教师姓名和学校ID进行上传;然后将竞赛证书图片提交到系统进行识别和结构化信息抽取;之后系统将自动识别抽取的文本信息填充到WEB程序和微信小程序,由学生、指导教师对识别的结构化信息进行确认,标注出识别有误或理解不一致的地方,其中系统识别出的结构化信息单独存放,用户不能修改;最后用户可以将自动识别和确认后的竞赛证书结构化信息提交到系统进行保存和计算。
竞赛证书识别抽取模块,一是用于将竞赛证书图片通过OCR技术识别出的文本转换为JSON格式的文本数据,文本数据的格式为{'Certificatetext':"竞赛证书图像经过OCR识别后的文本数据"};二是用于通过训练好的深度学习模型将文本数据抽取成结构化信息。
具体实施时,第一步,对竞赛证书图片通过OCR技术识别出JSON格式的文本,是通过调用第三方的OCR接口完成,例如百度图片文字识别,该部分并非本发明的内容。第二步,将训练好的深度学习模型将第一步的JSON格式的文本数据抽取成结构化的信息,结构化信息Certificate_Info_Str的格式为:{name:"",level:"",grade:"",date:"",student:[{sname:"",rank:""},…],adviser:[{aname:"",rank:""},…],organization:"",title:"",certificatenum:""}。其中,name为竞赛名称、level为赛事级别、grade为获奖等级、date为赛事日期、student为可表示多个获奖学生姓名sname以及排序rank的数组(例如[{张三,1},{李四,2},{王二,3},…])、adviser为可表示多个指导教师姓名aname以及排序rank的数组、organization为参赛单位、title为参赛作品名称、certificatenum为证书编号。
深度学习模型抽取结构化信息的方法,包括如下步骤:
S1:构建一个高质量的种子库,初始规则库;
S2:训练基于BERT-CRF的命名实体识别(Named Entity Recognition,NER)模型,记为NER模型;
S3:使用完成S2的NER模型预测无标注文本,并基于结果抽取对应的逻辑规则;
S4:基于逻辑规则筛选预测结果扩充种子库,开始下一轮迭代训练。
S1具体包括:
S1.1:挑选数据集D中的部分数据,进行人工标注,构建初始种子库S
文本数据s
文本数据s
则初始种子库S
S1.2:基于初始种子库,构建初始规则库R
依据初始种子库S
R
规则库的构建可由S3.3中的方法自动构建,亦可由人工手动构建。为便于之后展示初始规则库R
S2具体包括:
S2.1:将初始种子库S
S2.2:设置元优化参数α,β,NER模型参数初始化为θ,如果是初次迭代则随机初始化。
S2.3:随机从p(T)中抽取任务Ti。
S2.4:对任务T
S2.5:更新模型的参数
S3具体包括:
S3.1:使用完成S2的NER模型对数据集D进行预测,得到候选实体集C
假设以下三条数据为NER模型的预测结果:
c
c
c
则候选实体集C
S3.2:对C
对第一条预测结果c
c
c
c
对第二条预测结果c
c
c
c
对第三条预测结果c
c
c
c
其中c
其中c
其中c
实体字符的词性不具备单一性,则标注为unknow。
S3.3:对候选实体集C
S3.3.1:先对每一类的实体集中的c
首先获取每一类的实体集中的c
′你的作品
/>
由于在此仅举例,只取最高分加入规则集,即,对R
{′title′:{′Tag′:null},{′Rule
同理可得,其余类别实体的新增规则集:
{′sname′:{′Tag′:″n″},{′Rule
{′grade′:{′Tag′:″n″},{′Rule
S3.3.2:通过类似S3.3.1的方法,获取新的右字符规则集Rule′
基于类似S3.3.1的方法,对R
{′titlet′:{′Tag′:null},{′Rule
{′sname′:{′Tag′:″n″},{′Rule
{′grade′:{′Tag′:″n″},{′Rule
S3.3.3:由于同一类别的实体词性应该是相同的,所以直接统计该类别的实体中出现次数最多的c
sname的实体类别为名词(n),出现了3次;
grade的实体类别为名词(n),出现了3次;
title的实体类别为unknow,出现了3次;
所以有,
{′titlet′:{′Tag′:unknow},{′Rule
{′sname′:{′Tag′:″n″},{′Rule
{′grade′:{′Tag′:″n″},{′Rule
S3.3.4:更新规则库R
当进行到此步骤时,已经获取了新的规则库R1:
R1=[{′titlet′:{′Tag′:unknow},{′Rule
S4:基于新的规则库R
使用获取的R
使用新的种子库S
实践过程中,对一类竞赛证书通过百度OCR转换成文本文件,然后构造样本进行训练深度学习模型,训练结果如下:收集了20类竞赛证书,每类证书5个样本,共100份数据,对深度学习模型进行训练,并提供1000份测试样本进行测试,当第一轮迭代后,准确率67.45%,F1值(准确率和召回率的平均值)为52.52%;第二轮迭代后准确率80.44%,F1值为75.05%;第十轮迭代后,准确率97.30%,F1值为97.22%。当训练数据集增加到1000份时,准确率99.10%,F1值为98.87%。
实际测试中,本发明用了30类竞赛证书图片,其中6类为深度学习模型没有训练过的样式,测试结果为,24类训练过的竞赛证书图片抽取数据完全正确,6类未训练过的竞赛证书图片忠有4类抽取数据完全正确。有2类抽取竞赛名称出现错误,获奖等级没有抽取到,未训练的竞赛类别存在不确定性,不能进行识别。根据竞赛证书识别的应用场景,通常只要求对已经训练的竞赛类别能够正确识别即可,对未训练的竞赛可以不做要求,因此,本发明符合实际应用需求。
竞赛证书计算存储模块:用于对已经抽取的结构化信息按照竞赛证书规则计算学生免试推荐研究生综合加分和指导教师工作量课时数值,并将竞赛证书图片信息、竞赛证书结构化信息、学生免试推荐研究生综合加分与指导教师工作量课时数值信息存入到数据库中。
具体实施时,第一步,将经过抽取的结构化信息,按照规则计算出学生免试推荐研究生综合加分和指导教师工作量课时数值。第二步,如果用户在竞赛证书收集上传模对抽取的结构化信息进行了修改,则对该条记录做“识别与填入信息有差异”标志。第三步,系统将竞赛证书图片信息、系统抽取的竞赛证书结构化信息、用户修改后的竞赛证书结构化信息、系统计算出来的学生免试推荐研究生综合加分与指导教师工作量课时数值信息存入到数据库中。
竞赛证书查询统计模块:用于根据数据库中竞赛证书图片信息、竞赛证书结构化信息、学生免试推荐研究生综合加分与指导教师工作量课时数值信息的统计分析、查询。
具体实施时,系统提供根据学生用户名、ID号、指导教师ID、姓名、竞赛名称、竞赛级别、获奖等级等多种组合查询,以及学校创新创业教育管理部分需要的各类统计报表。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内,不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立技术方案,说明书的这种叙述方式仅仅是为了清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
- 一种基于深度学习的眼部图像处理系统
- 一种基于深度学习技术的恶意证书自动检测系统及方法
- 一种基于深度学习技术的恶意证书自动检测系统及方法