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