宋永生 黃蓉美
摘 ?要:目前教師主要借助于QQ等社交軟件對教學(xué)資源進(jìn)行分享,教學(xué)資源通常沒有添加水印及加密,容易被隨意傳播和使用,教學(xué)資源的內(nèi)容由人工審核,容易有疏漏。通過Python構(gòu)建個性化教學(xué)資源分享平臺,可以方便教師分享教學(xué)資源,同時可以對教學(xué)資源進(jìn)行內(nèi)容審核、格式轉(zhuǎn)換、添加水印及加密。平臺會自動將教學(xué)資源的鏈接、密碼等發(fā)送到學(xué)生郵箱,記錄訪問該資源的用戶信息,教學(xué)資源會得到合理的使用及有效的保護(hù)。
關(guān)鍵詞:教學(xué)資源;分享;審核;水印;加密
中圖分類號:TP311;G434 文獻(xiàn)標(biāo)識碼: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 ?引 ?言
在教學(xué)過程中,無論是線上教學(xué)還是線下教學(xué),教師通常需要分享一些教學(xué)資源給學(xué)生,比如課程的PPT、課程的知識總結(jié)和練習(xí)題。教師在分享教學(xué)資源時,通常沒有對這些教學(xué)資源添加水印及加密。教學(xué)資源分享的平臺通常是班級的QQ群、微信群。學(xué)生可能會在不經(jīng)意間將這些教學(xué)資源流傳出去,一些人會未經(jīng)允許使用或篡改這些教學(xué)資源,教師的辛勤勞動成果付諸東流。Word文檔及PPT文檔在教師的教學(xué)過程中都非常常用,但Word文檔及PPT文檔等教學(xué)資源相較于PDF文檔容易被修改,造成教師辛辛苦苦準(zhǔn)備的教學(xué)資源被未經(jīng)允許使用及侵權(quán)。教學(xué)資源的格式轉(zhuǎn)換、添加水印及加密等顯得非常重要,然而很多教師不會這些操作。教師通常會對教學(xué)資源進(jìn)行內(nèi)容審核,以防教學(xué)資源中存在一些涉黃、涉恐等內(nèi)容,然而百密可能會有一疏,因此教學(xué)資源內(nèi)容審核的自動化也勢在必行。
Python程序設(shè)計語言憑借其簡潔優(yōu)雅、可以跨平臺運(yùn)行、非常豐富的第三方擴(kuò)展庫、開發(fā)效率高等優(yōu)勢,近年來被人們廣泛使用,特別是各類科研人員、技術(shù)人員、教師及學(xué)生群體。本文利用Python設(shè)計開發(fā)了個性化教學(xué)資源分享平臺。教師可以將Word文檔、PPT文檔及PDF文檔等教學(xué)資源上傳到教學(xué)資源分享平臺,平臺首先對這些資源中的文本內(nèi)容進(jìn)行審核,合規(guī)的教學(xué)資源自動轉(zhuǎn)化為PDF格式,添加水印及加密,然后進(jìn)行分享,教學(xué)資源的鏈接、密碼等信息將自動發(fā)送到學(xué)生郵箱。學(xué)生可以訪問并評價這些教學(xué)資源,平臺會記錄訪問者的信息。平臺自動對教學(xué)資源進(jìn)行內(nèi)容審核、添加水印及加密,教師可以很方便地進(jìn)行教學(xué)資源的分享,教學(xué)資源將得到合理的使用和有效的保護(hù),提高了教學(xué)資源分享的便捷性和安全性。
1 ?平臺總體架構(gòu)
本文利用Python構(gòu)建個性化教學(xué)資源分享平臺,包括教學(xué)資源管理、用戶管理、分享管理等模塊,總體架構(gòu)如圖1所示。
教學(xué)資源管理模塊包含內(nèi)容審核、格式轉(zhuǎn)換、添加水印、加密等子模塊;用戶管理包含教師管理、學(xué)生管理和群組管理等子模塊;分享管理模塊包含郵件發(fā)送、訪問記錄、評價反饋等子模塊。平臺的用戶分為管理員、教師和學(xué)生,其中管理員可以對教師用戶進(jìn)行管理,教師用戶可以對學(xué)生用戶及群組進(jìn)行管理。個性化教學(xué)資源分享平臺借助Python中的微型Web框架Flask及其插件Flask-Bootstrap構(gòu)建Web系統(tǒng),讀取Word文件內(nèi)容采用Python-docx,讀取PPT文件內(nèi)容采用Python-pptx,讀取PDF文件內(nèi)容、添加水印及加密采用PyPDF2,生成水印采用Reportlab,內(nèi)容審核借助于百度AI內(nèi)容審核平臺,Word、PPT轉(zhuǎn)PDF借助于pywin32及微軟Office,發(fā)送郵件借助于Flask-Mail,集成開發(fā)環(huán)境選用PyCharm2018。
2 ?數(shù)據(jù)處理流程
平臺對教學(xué)資源數(shù)據(jù)的處理流程如圖2所示。
教師將教學(xué)資源上傳,平臺讀取其文本內(nèi)容,調(diào)用百度AI平臺內(nèi)容審核接口對文本內(nèi)容進(jìn)行審核,不合規(guī)的教學(xué)資源返回審核不通過原因,無法在平臺分享;合規(guī)的教學(xué)資源判斷其是否為PDF文件,如不是則將其轉(zhuǎn)換為PDF,然后對教學(xué)資源添加水印及加密;添加了水印并加密了的教學(xué)資源就可以在平臺上分享,同時將資源的鏈接地址、密碼等發(fā)送郵件到學(xué)生郵箱。學(xué)生在平臺上訪問資源時,系統(tǒng)會記錄其用戶名、IP地址及訪問時間等信息。學(xué)生可以對教學(xué)資源進(jìn)行評價,幫助教師改進(jìn)教學(xué)資源。
3 ?相關(guān)技術(shù)
3.1 ?Flask及Bootstrap
Flask是一個采用Python開發(fā)的微型Web框架,它基于Werkzeug WSGI工具箱和Jinja2 模板引擎構(gòu)建。Flask的內(nèi)核非常簡單,但Flask具有強(qiáng)大的擴(kuò)展庫,可以按需選擇合適的擴(kuò)展來添加相應(yīng)的功能。Bootstrap是Twitter公司推出的一款基于HTML、CSS、JavaScript的開源客戶端框架,利用它可以方便快捷的創(chuàng)建簡潔優(yōu)雅且兼容性較好的Web頁面。在Flask中使用Bootstrap框架,最簡便的方案就是使用Flask-Bootstrap擴(kuò)展。通過Flask及Flask-Bootstrap可以方便快捷的搭建出個性化教學(xué)資源分享平臺的基本框架。
3.2 ?Python-docx及Python-pptx
課程總結(jié)及練習(xí)題等教學(xué)資源常以Word文檔的形式呈現(xiàn)。要對Word文檔進(jìn)行內(nèi)容審核,首先要讀取其文本內(nèi)容。Python-docx是一個處理Word文檔的第三方函數(shù)庫,利用它可以讀取、查詢及修改doc、docx等格式的Word文檔,并可以對Word文檔進(jìn)行常用的格式設(shè)置。通常先利用Python-docx中的Document對象打開Word文檔,然后獲取Word文檔中正文部分的所有段落對象Paragraph[1],最終可以獲取段落對象中的文字信息。
教學(xué)課件通常以表達(dá)能力較為豐富的PPT呈現(xiàn)。PPT文檔中文本內(nèi)容的讀取通常采用Python-pptx庫。Python-pptx可以實(shí)現(xiàn)PPT文件的讀寫、圖形圖像處理以及表格圖表內(nèi)部數(shù)據(jù)的抽取等。通常利用Python-pptx中的Presentation對象打開PPT文檔,先獲取全部頁面slides[2],然后獲取頁面中的Shape對象,再判斷Shape對象中是否含有文字,如含有文字,則獲取文字內(nèi)容。
3.3 ?PyPDF2
PyPDF2是由純Python構(gòu)建的第三方PDF文件處理庫,利用它可以提取PDF文檔中的元數(shù)據(jù)和圖片[3]、讀寫文檔、拆分文檔、合并文檔、裁剪頁面、將多個頁面合并、添加水印、加密和解密PDF文檔。PyPDF2可以在內(nèi)存中對PDF進(jìn)行操作,因此可以方便操作Web上的PDF。PyPDF2庫中最常用的是PpdfFileReader和PdfFileWriter對象,利用PyPDF2可以方便讀取PDF格式教學(xué)資源中的文本內(nèi)容、添加水印及加密。
3.4 ?內(nèi)容審核
內(nèi)容審核主要是對教學(xué)資源的內(nèi)容方面是否含有色情、暴恐違禁、政治敏感、低俗辱罵、惡意推廣等方面內(nèi)容進(jìn)行審核。教師通常會對教學(xué)內(nèi)容進(jìn)行細(xì)致的審核,為防止百密一疏,因此在教師分享教學(xué)資源時,平臺應(yīng)該自動對教學(xué)資源的內(nèi)容再次進(jìn)行審核。本文只針對Word、PPT及PDF文檔中的文本內(nèi)容進(jìn)行審核,對圖片等內(nèi)容暫不進(jìn)行審核。
利用Python-docx、Python-pptx及PyPDF2分別讀取Word、PPT及PDF文檔中的文本內(nèi)容,調(diào)用百度AI開放平臺的文本審核接口,對文檔中的文字進(jìn)行色情、暴恐、政治敏感、惡意推廣等識別[4],判斷文本內(nèi)容是否合規(guī)。如果合規(guī),則對教學(xué)資源進(jìn)行格式轉(zhuǎn)換、添加水印及加密等操作,然后分享給學(xué)生。如果不合規(guī),則無法進(jìn)行分享,返回不合規(guī)的原因,有助于教師修改教學(xué)資源。
3.5 ?文件格式轉(zhuǎn)換
PDF文檔相較于Word文檔及PPT文檔,不易于修改,方便對教學(xué)資源進(jìn)行保護(hù)。教學(xué)資源分享平臺會將教師上傳經(jīng)過內(nèi)容審核的Word文檔、PPT文檔統(tǒng)一轉(zhuǎn)換為PDF文檔。本文選用pywin32庫,只要在Windows操作系統(tǒng)上安裝好Office套件及pywin32,Python程序就可以調(diào)用Windows底層組件對Word、PPT等進(jìn)行操作,實(shí)現(xiàn)Word、PPT到PDF文件的轉(zhuǎn)換。
3.6 ?添加水印
水印是對作品進(jìn)行知識產(chǎn)權(quán)保護(hù)的有效手段,通常有文字水印及圖片水印兩種形式,本文選用文字水印。為了防止教學(xué)資源被別人不經(jīng)允許使用和篡改,可以為教學(xué)資源添加水印。首先根據(jù)教師設(shè)置的水印內(nèi)容創(chuàng)建水印文件,然后將水印文件逐頁疊加到現(xiàn)有PDF文件上。
Reportlab是一個久負(fù)盛名的創(chuàng)建PDF文檔的Python庫,利用它可以快速方便地創(chuàng)建PDF格式文檔,實(shí)現(xiàn)復(fù)雜的頁面布局、寫入文本、繪制圖形、生成條形碼及二維碼等。本文首先利用Reportlab根據(jù)教師設(shè)置的水印內(nèi)容繪制水印文件,然后利用PyPDF2將水印文件疊加到教學(xué)資源的PDF文件每一頁上。
3.7 ?發(fā)送郵件
封裝了smtplib庫的Flask-Mail擴(kuò)展[5]提供了一個簡便的接口,只需配置好SMTP,就可以方便地發(fā)送郵件。使用Flask-Mail發(fā)送郵件時,資源分享平臺連接到簡單郵件傳輸協(xié)議SMTP服務(wù)器,把郵件交給該服務(wù)器發(fā)送。發(fā)送郵件的郵箱需要將POP3/SMTP/IMAP等服務(wù)開啟,并在Flask中設(shè)置發(fā)送郵件的服務(wù)器域名、端口號、SSL、用戶名、郵箱的授權(quán)碼等。當(dāng)有新資源分享時,平臺自動將資源的鏈接地址、密碼等群發(fā)郵件到學(xué)生郵箱,提醒學(xué)生訪問該教學(xué)資源。
4 ?實(shí)驗分析
本文選用的測試服務(wù)器硬件配置為4核CPU,16 GB內(nèi)存,500 GB SSD磁盤,50 Mbps帶寬,操作系統(tǒng)選用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及其他相關(guān)第三方庫,選用Flask內(nèi)置的服務(wù)器來部署個性化教學(xué)資源分享平臺軟件,借助于開通了POP3/SMTP/IMAP等服務(wù)的163郵箱發(fā)送郵件。
教師可以將Word、PPT及PDF等文檔上傳到教學(xué)資源分享平臺,如圖3所示,設(shè)置資源名稱、分享范圍、水印內(nèi)容及加密密碼等信息。平臺首先進(jìn)行資源內(nèi)容審核,審核通過后,如是Word或PPT文檔,則自動轉(zhuǎn)換為PDF文檔,為教學(xué)資源添加水印并加密,在平臺上進(jìn)行分享,生成包含資源鏈接及密碼的郵件群發(fā)到學(xué)生郵箱,提醒學(xué)生查看該教學(xué)資源。教師可以新建、修改及刪除學(xué)生群組。學(xué)生登錄資源分享平臺瀏覽老師分享的,添加水印并加密的教學(xué)資源,如圖4所示,平臺將記錄訪問者的用戶名、IP地址及訪問時間等。平臺上的教學(xué)資源統(tǒng)一轉(zhuǎn)換為PDF文檔,并且添加了水印并加密,對教學(xué)資源起到了很好的保護(hù)作用。學(xué)生可以對教學(xué)資源進(jìn)行評價,提出自己的意見或看法,幫助教師改進(jìn)教學(xué)資源。
5 ?結(jié) ?論
本文利用Python開發(fā)了個性化的教學(xué)資源分享平臺,可以方便教師進(jìn)行教學(xué)資源分享,并幫助教師完成教學(xué)資源的內(nèi)容審核,通過內(nèi)容審核的教學(xué)資源會統(tǒng)一轉(zhuǎn)化為不易修改的PDF格式,然后為教學(xué)資源添加水印及加密。添加了水印并加密的資源才可以進(jìn)行分享,平臺自動發(fā)送教學(xué)資源分享鏈接及密碼到學(xué)生的郵箱。當(dāng)學(xué)生訪問教學(xué)資源時,平臺會記錄其用戶名、IP地址及訪問時間等信息。內(nèi)容審核可以防止教學(xué)資源中出現(xiàn)一些違規(guī)內(nèi)容,水印及加密可以防止未經(jīng)允許對教學(xué)資源傳播、使用和篡改,教學(xué)資源得到了有效的保護(hù)。
在后續(xù)的研究中,可以將分享者信息和訪問者信息一起作為水印內(nèi)容添加到教學(xué)資源,不同學(xué)生看到的教學(xué)資源的水印不同,從而可以更為有效地杜絕教學(xué)資源的惡意泄露。由于本文只針對教育資源中的文本內(nèi)容進(jìn)行審核,后續(xù)還應(yīng)該對圖片內(nèi)容進(jìn)行審核。
參考文獻(xiàn):
[1] 吳為民.OXML結(jié)構(gòu)化格式的Word試卷智能處理系統(tǒng) [J].現(xiàn)代計算機(jī),2020(34):105-107.
[2] 謝志慶,張曉天,閆秋艷,等.實(shí)現(xiàn)對教育課件關(guān)鍵信息的提取——以“數(shù)據(jù)庫原理”課程為例 [J].無線互聯(lián)科技,2019,16(12):66-69.
[3] 黃昇.基于Python的高校電子文檔管理系統(tǒng) [J].計算機(jī)系統(tǒng)應(yīng)用,2021,30(4):69-76.
[4] 百度AI開放平臺.內(nèi)容審核平臺 [EB/OL].(2021-06-15).https://ai.baidu.com/ai-doc/ANTIPORN/Vk3h6xaga.
[5] GRINBERG M. Flask Web開發(fā):基于Python的Web應(yīng)用開發(fā)實(shí)戰(zhàn):第2版 [M].安道,譯.北京:人民郵電出版社,2018.
作者簡介:宋永生(1984—),男,漢族,江蘇徐州人,教師,高級工程師,碩士,研究方向:機(jī)器學(xué)習(xí)及物聯(lián)網(wǎng)技術(shù)。