任丹 黎盛
(西南大學(xué)食品科學(xué)學(xué)院,重慶 400715)
大數(shù)據(jù)時(shí)代已經(jīng)到來,在商業(yè)、經(jīng)濟(jì)及其他領(lǐng)域基于大數(shù)據(jù)挖掘分析、發(fā)現(xiàn)問題并作出科學(xué)、客觀的預(yù)測(cè)或決策尤為重要[1]。大數(shù)據(jù)的典型特征為數(shù)據(jù)海量(包括各種半結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù))和數(shù)據(jù)處理流程相對(duì)復(fù)雜。因此,常規(guī)統(tǒng)計(jì)軟件已無法對(duì)大數(shù)據(jù)進(jìn)行及時(shí)有效的存儲(chǔ)、運(yùn)用及分析[2]。Python 語言是目前最接近自然語言的通用編程語言,非計(jì)算機(jī)專業(yè)的學(xué)生容易上手;同時(shí)是一種解釋型、面向?qū)ο?、免費(fèi)開源、動(dòng)態(tài)數(shù)據(jù)類型的高級(jí)程序設(shè)計(jì)語言,擁有豐富的第三庫(kù)(包括數(shù)據(jù)處理和挖掘分析的pandas庫(kù)、sklearn 庫(kù)等;數(shù)據(jù)可視化的Matplotlib 庫(kù)、wordcloud 庫(kù)等)[3]。目前,Python 已經(jīng)廣泛用于人工智能、大數(shù)據(jù)、云計(jì)算等。
在大數(shù)據(jù)驅(qū)動(dòng)創(chuàng)新發(fā)展的背景下,西南大學(xué)包裝工程專業(yè)結(jié)合學(xué)分制改革,以“新工科”為導(dǎo)向,培養(yǎng)學(xué)生具備“工程教育認(rèn)證標(biāo)準(zhǔn)”中要求的應(yīng)用信息技術(shù)對(duì)復(fù)雜問題進(jìn)行預(yù)測(cè)、模擬和求解的能力[4],2020 年春季增設(shè)了“大數(shù)據(jù)與包裝”課程,面向?qū)ο鬄榘b工程專業(yè)大學(xué)二年級(jí)學(xué)生。文中主要探討了“大數(shù)據(jù)與包裝”的課程設(shè)置與教學(xué)案例的整體設(shè)計(jì),以及基于Python 某電商平臺(tái)果汁飲料市場(chǎng)分析教學(xué)案例的構(gòu)建。
新開設(shè)的“大數(shù)據(jù)與包裝”課程,應(yīng)以“新工科”為導(dǎo)向,致力于培養(yǎng)學(xué)生應(yīng)用信息技術(shù)解決工業(yè)問題的能力,同時(shí)以工程教育專業(yè)認(rèn)證為參考,提升學(xué)生解決實(shí)際問題的能力。本課程結(jié)合所在食品科學(xué)學(xué)院,選擇果汁飲料為研究對(duì)象,基于Python 程序語言構(gòu)建某電商平臺(tái)果汁飲料的市場(chǎng)分析,銷售前十的果汁飲料的營(yíng)養(yǎng)成分分析,包裝材料、結(jié)構(gòu)等分析,再到銷售前十的包裝裝潢設(shè)計(jì)分析等一系列案例,以期指導(dǎo)整體包裝設(shè)計(jì)。通過案例教學(xué)激發(fā)學(xué)生的學(xué)習(xí)興趣,讓學(xué)生利用Python 豐富的第三方庫(kù)進(jìn)行可視化繪圖、數(shù)據(jù)預(yù)處理,還能利用聚類、分類等多元統(tǒng)計(jì)方法對(duì)實(shí)際問題進(jìn)行分析與建模。同時(shí),針對(duì)非計(jì)算機(jī)專業(yè)的學(xué)生,以“能力”驅(qū)動(dòng)“知識(shí)”的漸進(jìn)式教學(xué)方式,提升學(xué)生計(jì)算機(jī)編程能力。
西南大學(xué)本科“學(xué)分制”改革后,新增設(shè)的“大數(shù)據(jù)與包裝”課程的總學(xué)時(shí)為45 學(xué)時(shí),理論課程為18 學(xué)時(shí),實(shí)驗(yàn)課程為27 學(xué)時(shí),具體的教學(xué)內(nèi)容見表1。
表1 “大數(shù)據(jù)與包裝”案例教學(xué)課程內(nèi)容的設(shè)置
圖1 “大數(shù)據(jù)與包裝”的課程考核
圖2 搭建爬蟲環(huán)境流程圖
圖3 果汁飲料價(jià)格與銷量的關(guān)系
“大數(shù)據(jù)與包裝”課程的第一部分,即Python 基本語法,采用混合式教學(xué)模式,結(jié)合現(xiàn)有網(wǎng)絡(luò)的“慕課”,以線上課堂引導(dǎo)式、啟發(fā)式為主[5],既充分發(fā)揮學(xué)生線上學(xué)習(xí)的自主性和積極性,又充分體現(xiàn)教師在教學(xué)過程中引導(dǎo)、監(jiān)督的主導(dǎo)作用[6]。
本課程的后面4 部分內(nèi)容均采用案例教學(xué)法。案例教學(xué)法由美國(guó)哈佛商學(xué)院提出,是指在教師的指導(dǎo)下,根據(jù)教學(xué)目的的要求,組織學(xué)生對(duì)案例的分析、討論和交流等活動(dòng)[7]。案例教學(xué)法既能鍛煉學(xué)生分析和解決問題的能力,也能加深學(xué)生對(duì)基本原理和概念的理解[8]。黃天羽等[9]以圖形牽引興趣為出發(fā)點(diǎn),設(shè)置了一系列Python 教學(xué)案例,包括入門案例和基于turtle 庫(kù)的相關(guān)圖形案例。趙光輝[10]基于“新工科”背景,針對(duì)非計(jì)算機(jī)專業(yè)的學(xué)生設(shè)置了一系列與學(xué)生專業(yè)相關(guān)的教學(xué)案例,并以材料專業(yè)學(xué)生為例,構(gòu)建了基于Python 實(shí)現(xiàn)X 射線衍射圖譜、態(tài)密度、能譜帶等數(shù)據(jù)的可視化。文一憑等[11]進(jìn)一步提出針對(duì)非計(jì)算機(jī)專業(yè)學(xué)生,設(shè)置應(yīng)用驅(qū)動(dòng)的漸進(jìn)式Python 教學(xué)案例,并以商學(xué)院學(xué)生為例,構(gòu)建了圖書推薦基礎(chǔ)案例和銷量預(yù)測(cè)的進(jìn)階案例。因此,本課程設(shè)置與本專業(yè)相關(guān)的難度合適、貫穿Python 基礎(chǔ)學(xué)習(xí)過程的應(yīng)用案例,激發(fā)學(xué)生的學(xué)習(xí)興趣。
針對(duì)包裝工程專業(yè)的學(xué)生,“大數(shù)據(jù)與包裝”課程側(cè)重于培養(yǎng)學(xué)生借助計(jì)算機(jī)編程來解決實(shí)際問題的能力。通過一學(xué)期的教學(xué)實(shí)踐,發(fā)現(xiàn)選用與本專業(yè)相關(guān)的教學(xué)案例開展Python 程序語言的學(xué)習(xí),有助于學(xué)生在短時(shí)間內(nèi)理解變量、語句與函數(shù)、程序控制等基本語法知識(shí),同時(shí)激發(fā)學(xué)生自主學(xué)習(xí)與實(shí)踐的動(dòng)力與愿望。本課程的考核方式設(shè)置為考察了,學(xué)生的成績(jī)由平時(shí)實(shí)驗(yàn)作業(yè)、課堂研討活躍度以及課程論文三部分構(gòu)成,見圖1?!捌綍r(shí)試驗(yàn)作業(yè)”部分,通過每位學(xué)生編寫的各類商品的分析案例,考察學(xué)生對(duì)Python 語言的基礎(chǔ)語法、數(shù)據(jù)獲取及可視化、數(shù)據(jù)挖掘分析的掌握程度?!罢n堂研討活躍度”部分,考察學(xué)生在課堂中的有效參與程度[12]?!罢n程論文”部分,要求學(xué)生整合平時(shí)試驗(yàn)課的案例,基于大數(shù)據(jù)分析設(shè)計(jì)某款商品的整體包裝方案。
在某電商平臺(tái)上以“果汁飲料”為關(guān)鍵詞進(jìn)行搜索,在Anacoda 配置的Spyder 開發(fā)環(huán)境,導(dǎo)入Python 第三方庫(kù)resquests、re、time 和pandas 庫(kù),搭建爬蟲環(huán)境,具體過程如圖2 所示。共獲取某平臺(tái)40 頁(yè)共計(jì)1 740 件商品的基本信息,包括商品序號(hào)、價(jià)格、商品標(biāo)題名稱、發(fā)貨地以及銷量,存儲(chǔ)在“果汁飲料.xlsx”文件內(nèi)。選取銷量第一的某款果汁飲料,搭建爬蟲環(huán)境,獲取用戶評(píng)價(jià)信息272 條,存儲(chǔ)在“用戶評(píng)價(jià).txt”文本中。逐行講解代碼,讓學(xué)生采取爬蟲的方式獲取自己感興趣的大數(shù)據(jù)。
圖4 Pandas 和Matplotlib 庫(kù)實(shí)現(xiàn)數(shù)據(jù)可視化流程圖
圖5 果汁飲料的口味分析
圖6 果汁飲料的包裝規(guī)格分析
圖7 果汁飲料用戶評(píng)價(jià)的詞頻統(tǒng)計(jì)
圖8 果汁飲料用戶評(píng)價(jià)的詞云展示
首先對(duì)“果汁飲料.xlsx”進(jìn)行去除重復(fù)數(shù)據(jù)處理,最終獲得1 670 條有效數(shù)據(jù)。采用Matplotlib 庫(kù)繪制價(jià)格與銷量的關(guān)系圖,如圖3 所示。Pandas 和Matplotlib 庫(kù)實(shí)現(xiàn)數(shù)據(jù)可視化的流程如圖4 所示,進(jìn)一步逐行講解代碼的含義,讓學(xué)生對(duì)數(shù)據(jù)可視化的概念及操作形成初步認(rèn)識(shí)。通過分析圖中的價(jià)格與銷量的分布規(guī)律,可以讓學(xué)生了解果汁飲料如何定價(jià)更有利于提高其銷量。
其次,對(duì)果汁飲料的標(biāo)題內(nèi)容進(jìn)行分析。當(dāng)下流行“標(biāo)題黨”,通過統(tǒng)計(jì)標(biāo)題里面的關(guān)鍵詞語,分析消費(fèi)者對(duì)果汁飲料的關(guān)注點(diǎn)。具體分解為兩步:第一步,把“果汁飲料.xlsx”中標(biāo)題的內(nèi)容序列單獨(dú)存為一個(gè)“果汁飲料標(biāo)題內(nèi)容.txt”文本,導(dǎo)入jieba 和pandas 庫(kù),采用jieba.lcut()函數(shù)對(duì)標(biāo)題內(nèi)容進(jìn)行自動(dòng)分詞,而后設(shè)計(jì)for 循環(huán)函數(shù)進(jìn)行詞頻統(tǒng)計(jì),存儲(chǔ)在“標(biāo)題內(nèi)容詞頻統(tǒng)計(jì).xlsx”文件中,關(guān)注哪些詞語在標(biāo)題里出現(xiàn)的頻率高。第二步,關(guān)鍵詞信息歸類及數(shù)據(jù)可視化,選取果汁飲料的口味及規(guī)格作為案例進(jìn)行分析。具體為在“標(biāo)題內(nèi)容詞頻統(tǒng)計(jì).xlsx”提取與口味有關(guān)的詞語及對(duì)應(yīng)的頻率次數(shù),譬如“檸檬”“橙汁”“芒果”等;以及與規(guī)格相關(guān)的詞語及對(duì)應(yīng)的頻率次數(shù),譬如“1 000 mL”“300 mL”“840 mL”等。對(duì)圖4 所示Matplotlib 實(shí)現(xiàn)數(shù)據(jù)可視化流程稍作修改,采用matplotlib.pyplot.bar()函數(shù)實(shí)現(xiàn)果汁飲料的口味分析(見圖5)及包裝規(guī)格分析(見圖6)的數(shù)據(jù)可視化。設(shè)置課后作業(yè),讓學(xué)生實(shí)現(xiàn)果汁飲料的品牌分析。
消費(fèi)者滿意程度在一定程度上可以反映產(chǎn)品的好壞。因此,本課程對(duì)某平臺(tái)銷量第一的果汁飲料進(jìn)行用戶評(píng)價(jià)分析。導(dǎo)入jieba 和pandas 庫(kù),采用jieba.lcut()函數(shù)對(duì)標(biāo)題內(nèi)容進(jìn)行自動(dòng)分詞,而后設(shè)計(jì)for 循環(huán)函數(shù)對(duì)上述爬取的“用戶評(píng)價(jià).txt”文本進(jìn)行詞頻統(tǒng)計(jì)分析,刪除一些中性詞語,譬如“非?!薄皷|西”“真的”“這個(gè)”“可以”“一直”等。然后對(duì)圖4 所示Matplotlib 實(shí)現(xiàn)數(shù)據(jù)可視化流程稍作修改,采用matplotlib.pyplot.bar()函數(shù)實(shí)現(xiàn)排名前二十的詞頻統(tǒng)計(jì)可視化(見圖7)。通過數(shù)據(jù)分析,學(xué)生們可以了解用戶對(duì)果汁飲料的關(guān)注點(diǎn)在哪些方面,譬如絕大多數(shù)人會(huì)關(guān)注果汁飲料的口感,認(rèn)為果汁飲料好喝,其中桃子口味的果汁飲料深受人們的喜愛;部分人會(huì)關(guān)注果汁飲料的包裝。
結(jié)合現(xiàn)在學(xué)生喜歡的個(gè)性化圖片展示,設(shè)置了用戶評(píng)價(jià)的個(gè)性化詞云展示(見圖8),圖中的字體越大,表明出現(xiàn)的頻率越高,可以直觀反映用戶對(duì)哪些方面比較關(guān)注。本案例選擇了五角星作為背景圖片,學(xué)生可以選擇自己喜歡的個(gè)性化圖片進(jìn)行嘗試。首先導(dǎo)入jieba 和wordcloud 第三方庫(kù),且從imageio 庫(kù)中導(dǎo)入imread()函數(shù)。然后采用imread()函數(shù)創(chuàng)建五角星輪廓,接著用open()函數(shù)打開“用戶評(píng)價(jià).txt”文本,進(jìn)而用jieba.lcut()函數(shù)對(duì)用戶評(píng)價(jià)進(jìn)行自動(dòng)分詞,最后采用wordcloud.WordCloud()函數(shù)實(shí)現(xiàn)詞云展示。從學(xué)生的角度出發(fā),持續(xù)激發(fā)學(xué)生們的學(xué)習(xí)興趣,讓枯燥深?yuàn)W的程序語言變得生動(dòng)有趣。
通過對(duì)大數(shù)據(jù)獲取、數(shù)據(jù)預(yù)處理、數(shù)據(jù)可視化以及數(shù)據(jù)分析等一系列的學(xué)習(xí)和訓(xùn)練,學(xué)生可以熟練地運(yùn)用這些知識(shí)分析自己感興趣的專業(yè)問題,從而實(shí)現(xiàn)能力培養(yǎng)落到實(shí)處的目的。此外,學(xué)生具備了“新工科”人才的特點(diǎn),即應(yīng)用信息化技術(shù)解決工業(yè)問題的能力。
包裝工程專業(yè)增設(shè)的“大數(shù)據(jù)與包裝”課程立足于時(shí)代特點(diǎn)和學(xué)校的專業(yè)特色,以“新工科”的指導(dǎo)思想培育學(xué)生用信息化技術(shù)解決工業(yè)問題的能力。通過一學(xué)期的實(shí)踐,初步取得一定成果,但是距離真正的“新工科”專業(yè)建設(shè)的要求相差甚遠(yuǎn)。需要在現(xiàn)有的基礎(chǔ)上繼續(xù)推進(jìn),一方面教學(xué)老師自身的程序編程能力需要不斷提升,力爭(zhēng)引入一些先進(jìn)的、完善的算法融入到教學(xué)內(nèi)容中,提高數(shù)學(xué)模型的可靠性;同時(shí),提高自身在試驗(yàn)課上順利解決學(xué)生們遇到的各類程序語言問題的能力。另一方面,通過學(xué)生反饋的信息,不斷更新案例設(shè)置的內(nèi)容及框架,始終堅(jiān)持以學(xué)生為本,持續(xù)激發(fā)學(xué)生的學(xué)習(xí)興趣,快樂輕松地學(xué)習(xí)程序編程語言。