基于Python的个性化教学资源分享平台
2021-01-14宋永生黄蓉美
宋永生 黄蓉美
摘 要:目前教师主要借助于QQ等社交软件对教学资源进行分享,教学资源通常没有添加水印及加密,容易被随意传播和使用,教学资源的内容由人工审核,容易有疏漏。通过Python构建个性化教学资源分享平台,可以方便教师分享教学资源,同时可以对教学资源进行内容审核、格式转换、添加水印及加密。平台会自动将教学资源的链接、密码等发送到学生邮箱,记录访问该资源的用户信息,教学资源会得到合理的使用及有效的保护。
关键词:教学资源;分享;审核;水印;加密
中图分类号:TP311;G434 文献标识码:A文章编号:2096-4706(2021)14-0121-03
Abstract: At present, teachers mainly share teaching resources with the help of QQ and other social software. Teaching resources are usually not watermarked and encrypted, which is easy to be spread and used at will. The content of teaching resources is reviewed manually, which is easy to be omitted. Building a personalized teaching resource sharing platform through Python can facilitate teachers to share teaching resources. At the same time, it can audit the content, convert the format, add watermark and encrypt the teaching resources. The platform will automatically send the links and passwords of teaching resources to the student mailbox, record the user information accessing the resources, and the teaching resources will be reasonably used and effectively protected.
Keywords: teaching resources; share; review; watermark; encrypt
0 引 言
在教学过程中,无论是线上教学还是线下教学,教师通常需要分享一些教学资源给学生,比如课程的PPT、课程的知识总结和练习题。教师在分享教学资源时,通常没有对这些教学资源添加水印及加密。教学资源分享的平台通常是班级的QQ群、微信群。学生可能会在不经意间将这些教学资源流传出去,一些人会未经允许使用或篡改这些教学资源,教师的辛勤劳动成果付诸东流。Word文档及PPT文档在教师的教学过程中都非常常用,但Word文档及PPT文档等教学资源相较于PDF文档容易被修改,造成教师辛辛苦苦准备的教学资源被未经允许使用及侵权。教学资源的格式转换、添加水印及加密等显得非常重要,然而很多教师不会这些操作。教师通常会对教学资源进行内容审核,以防教学资源中存在一些涉黄、涉恐等内容,然而百密可能会有一疏,因此教学资源内容审核的自动化也势在必行。
Python程序设计语言凭借其简洁优雅、可以跨平台运行、非常丰富的第三方扩展库、开发效率高等优势,近年来被人们广泛使用,特别是各类科研人员、技术人员、教师及学生群体。本文利用Python设计开发了个性化教学资源分享平台。教师可以将Word文档、PPT文档及PDF文档等教学资源上传到教学资源分享平台,平台首先对这些资源中的文本内容进行审核,合规的教学资源自动转化为PDF格式,添加水印及加密,然后进行分享,教学资源的链接、密码等信息将自动发送到学生邮箱。学生可以访问并评价这些教学资源,平台会记录访问者的信息。平台自动对教学资源进行内容审核、添加水印及加密,教师可以很方便地进行教学资源的分享,教学资源将得到合理的使用和有效的保护,提高了教学资源分享的便捷性和安全性。
1 平台总体架构
本文利用Python构建个性化教学资源分享平台,包括教学资源管理、用户管理、分享管理等模块,总体架构如图1所示。
教学资源管理模块包含内容审核、格式转换、添加水印、加密等子模块;用户管理包含教师管理、学生管理和群组管理等子模块;分享管理模块包含邮件发送、访问记录、评价反馈等子模块。平台的用户分为管理员、教师和学生,其中管理员可以对教师用户进行管理,教师用户可以对学生用户及群组进行管理。个性化教学资源分享平台借助Python中的微型Web框架Flask及其插件Flask-Bootstrap構建Web系统,读取Word文件内容采用Python-docx,读取PPT文件内容采用Python-pptx,读取PDF文件内容、添加水印及加密采用PyPDF2,生成水印采用Reportlab,内容审核借助于百度AI内容审核平台,Word、PPT转PDF借助于pywin32及微软Office,发送邮件借助于Flask-Mail,集成开发环境选用PyCharm2018。
2 数据处理流程
平台对教学资源数据的处理流程如图2所示。
教师将教学资源上传,平台读取其文本内容,调用百度AI平台内容审核接口对文本内容进行审核,不合规的教学资源返回审核不通过原因,无法在平台分享;合规的教学资源判断其是否为PDF文件,如不是则将其转换为PDF,然后对教学资源添加水印及加密;添加了水印并加密了的教学资源就可以在平台上分享,同时将资源的链接地址、密码等发送邮件到学生邮箱。学生在平台上访问资源时,系统会记录其用户名、IP地址及访问时间等信息。学生可以对教学资源进行评价,帮助教师改进教学资源。
3 相关技术
3.1 Flask及Bootstrap
Flask是一个采用Python开发的微型Web框架,它基于Werkzeug WSGI工具箱和Jinja2 模板引擎构建。Flask的内核非常简单,但Flask具有强大的扩展库,可以按需选择合适的扩展来添加相应的功能。Bootstrap是Twitter公司推出的一款基于HTML、CSS、JavaScript的开源客户端框架,利用它可以方便快捷的创建简洁优雅且兼容性较好的Web页面。在Flask中使用Bootstrap框架,最简便的方案就是使用Flask-Bootstrap扩展。通过Flask及Flask-Bootstrap可以方便快捷的搭建出个性化教学资源分享平台的基本框架。
3.2 Python-docx及Python-pptx
课程总结及练习题等教学资源常以Word文档的形式呈现。要对Word文档进行内容审核,首先要读取其文本内容。Python-docx是一個处理Word文档的第三方函数库,利用它可以读取、查询及修改doc、docx等格式的Word文档,并可以对Word文档进行常用的格式设置。通常先利用Python-docx中的Document对象打开Word文档,然后获取Word文档中正文部分的所有段落对象Paragraph[1],最终可以获取段落对象中的文字信息。
教学课件通常以表达能力较为丰富的PPT呈现。PPT文档中文本内容的读取通常采用Python-pptx库。Python-pptx可以实现PPT文件的读写、图形图像处理以及表格图表内部数据的抽取等。通常利用Python-pptx中的Presentation对象打开PPT文档,先获取全部页面slides[2],然后获取页面中的Shape对象,再判断Shape对象中是否含有文字,如含有文字,则获取文字内容。
3.3 PyPDF2
PyPDF2是由纯Python构建的第三方PDF文件处理库,利用它可以提取PDF文档中的元数据和图片[3]、读写文档、拆分文档、合并文档、裁剪页面、将多个页面合并、添加水印、加密和解密PDF文档。PyPDF2可以在内存中对PDF进行操作,因此可以方便操作Web上的PDF。PyPDF2库中最常用的是PpdfFileReader和PdfFileWriter对象,利用PyPDF2可以方便读取PDF格式教学资源中的文本内容、添加水印及加密。
3.4 内容审核
内容审核主要是对教学资源的内容方面是否含有色情、暴恐违禁、政治敏感、低俗辱骂、恶意推广等方面内容进行审核。教师通常会对教学内容进行细致的审核,为防止百密一疏,因此在教师分享教学资源时,平台应该自动对教学资源的内容再次进行审核。本文只针对Word、PPT及PDF文档中的文本内容进行审核,对图片等内容暂不进行审核。
利用Python-docx、Python-pptx及PyPDF2分别读取Word、PPT及PDF文档中的文本内容,调用百度AI开放平台的文本审核接口,对文档中的文字进行色情、暴恐、政治敏感、恶意推广等识别[4],判断文本内容是否合规。如果合规,则对教学资源进行格式转换、添加水印及加密等操作,然后分享给学生。如果不合规,则无法进行分享,返回不合规的原因,有助于教师修改教学资源。
3.5 文件格式转换
PDF文档相较于Word文档及PPT文档,不易于修改,方便对教学资源进行保护。教学资源分享平台会将教师上传经过内容审核的Word文档、PPT文档统一转换为PDF文档。本文选用pywin32库,只要在Windows操作系统上安装好Office套件及pywin32,Python程序就可以调用Windows底层组件对Word、PPT等进行操作,实现Word、PPT到PDF文件的转换。
3.6 添加水印
水印是对作品进行知识产权保护的有效手段,通常有文字水印及图片水印两种形式,本文选用文字水印。为了防止教学资源被别人不经允许使用和篡改,可以为教学资源添加水印。首先根据教师设置的水印内容创建水印文件,然后将水印文件逐页叠加到现有PDF文件上。
Reportlab是一个久负盛名的创建PDF文档的Python库,利用它可以快速方便地创建PDF格式文档,实现复杂的页面布局、写入文本、绘制图形、生成条形码及二维码等。本文首先利用Reportlab根据教师设置的水印内容绘制水印文件,然后利用PyPDF2将水印文件叠加到教学资源的PDF文件每一页上。
3.7 发送邮件
封装了smtplib库的Flask-Mail扩展[5]提供了一个简便的接口,只需配置好SMTP,就可以方便地发送邮件。使用Flask-Mail发送邮件时,资源分享平台连接到简单邮件传输协议SMTP服务器,把邮件交给该服务器发送。发送邮件的邮箱需要将POP3/SMTP/IMAP等服务开启,并在Flask中设置发送邮件的服务器域名、端口号、SSL、用户名、邮箱的授权码等。当有新资源分享时,平台自动将资源的链接地址、密码等群发邮件到学生邮箱,提醒学生访问该教学资源。
4 实验分析
本文选用的测试服务器硬件配置为4核CPU,16 GB内存,500 GB SSD磁盘,50 Mbps带宽,操作系统选用Windows 7
64位,安装了Microsoft Office 2010,Python3.5、Flask1.0、Flask-Bootstrap3.3、Python-docx0.8、Python-pptx0.6、PyPDF2 1.26、Reportlab 3.5、pywin32 227、requersts2.22、Flask-Mail0.9及其他相关第三方库,选用Flask内置的服务器来部署个性化教学资源分享平台软件,借助于开通了POP3/SMTP/IMAP等服务的163邮箱发送邮件。
教师可以将Word、PPT及PDF等文檔上传到教学资源分享平台,如图3所示,设置资源名称、分享范围、水印内容及加密密码等信息。平台首先进行资源内容审核,审核通过后,如是Word或PPT文档,则自动转换为PDF文档,为教学资源添加水印并加密,在平台上进行分享,生成包含资源链接及密码的邮件群发到学生邮箱,提醒学生查看该教学资源。教师可以新建、修改及删除学生群组。学生登录资源分享平台浏览老师分享的,添加水印并加密的教学资源,如图4所示,平台将记录访问者的用户名、IP地址及访问时间等。平台上的教学资源统一转换为PDF文档,并且添加了水印并加密,对教学资源起到了很好的保护作用。学生可以对教学资源进行评价,提出自己的意见或看法,帮助教师改进教学资源。
5 结 论
本文利用Python开发了个性化的教学资源分享平台,可以方便教师进行教学资源分享,并帮助教师完成教学资源的内容审核,通过内容审核的教学资源会统一转化为不易修改的PDF格式,然后为教学资源添加水印及加密。添加了水印并加密的资源才可以进行分享,平台自动发送教学资源分享链接及密码到学生的邮箱。当学生访问教学资源时,平台会记录其用户名、IP地址及访问时间等信息。内容审核可以防止教学资源中出现一些违规内容,水印及加密可以防止未经允许对教学资源传播、使用和篡改,教学资源得到了有效的保护。
在后续的研究中,可以将分享者信息和访问者信息一起作为水印内容添加到教学资源,不同学生看到的教学资源的水印不同,从而可以更为有效地杜绝教学资源的恶意泄露。由于本文只针对教育资源中的文本内容进行审核,后续还应该对图片内容进行审核。
参考文献:
[1] 吴为民.OXML结构化格式的Word试卷智能处理系统 [J].现代计算机,2020(34):105-107.
[2] 谢志庆,张晓天,闫秋艳,等.实现对教育课件关键信息的提取——以“数据库原理”课程为例 [J].无线互联科技,2019,16(12):66-69.
[3] 黄昇.基于Python的高校电子文档管理系统 [J].计算机系统应用,2021,30(4):69-76.
[4] 百度AI开放平台.内容审核平台 [EB/OL].(2021-06-15).https://ai.baidu.com/ai-doc/ANTIPORN/Vk3h6xaga.
[5] GRINBERG M. Flask Web开发:基于Python的Web应用开发实战:第2版 [M].安道,译.北京:人民邮电出版社,2018.
作者简介:宋永生(1984—),男,汉族,江苏徐州人,教师,高级工程师,硕士,研究方向:机器学习及物联网技术。