洪 東
(廣西交通職業(yè)技術(shù)學(xué)院 信息工程系,廣西 南寧 530023)
《關(guān)于深化產(chǎn)教融合的若干意見》中簡述了深化產(chǎn)教融合的原則——統(tǒng)籌協(xié)調(diào),共同推進(jìn);服務(wù)需求,優(yōu)化結(jié)構(gòu);校企協(xié)同,合作育人.根據(jù)《意見》,深化產(chǎn)教融合的主要目標(biāo)是:逐步完善多元化辦學(xué)體制,提高行業(yè)企業(yè)參與辦學(xué)的程度,全面推進(jìn)校企合作育人.[1]由此可見,國家層面對校企協(xié)同育人非常重視,所以,通過SSM 框架技術(shù)搭建Web服務(wù)端,結(jié)合云計(jì)算技術(shù)完成Hadoop分布式服務(wù)器構(gòu)建,利用大數(shù)據(jù)技術(shù)對數(shù)據(jù)資源進(jìn)行分類、篩選、分析等,為校企雙方管理都提供可視化的管理模式.
企業(yè)需要什么樣的人才? 學(xué)校培養(yǎng)出對應(yīng)的人才進(jìn)行服務(wù).作為高職院校,實(shí)踐動(dòng)手能力強(qiáng)是學(xué)生的特色.因此,在實(shí)踐教學(xué)環(huán)節(jié)中,職業(yè)院校會讓學(xué)生走進(jìn)企業(yè)并在一線環(huán)境中學(xué)習(xí)新知識、新技術(shù).但是,職業(yè)院校作為育人的主體與企業(yè)對接不緊密,而企業(yè)因本身的經(jīng)濟(jì)發(fā)展也忽略對職業(yè)院校人才的培養(yǎng).
校企合作的深度不夠,雙方未根據(jù)學(xué)院專業(yè)特色,企業(yè)用人的特點(diǎn),對人才的需求進(jìn)行分類培養(yǎng).在引企入校,雙導(dǎo)師授課,企業(yè)入駐課堂等模式,雙方只停留于淺表層面,未能深入探究.協(xié)同育人過程出現(xiàn)問題雙方未能及時(shí)解決,制度政策不完善,缺乏雙向管理.
目前,企業(yè)與職業(yè)院校簽訂協(xié)同育人協(xié)議后,大部分都是停留在“一紙協(xié)議”的模式,協(xié)同育人過程中,企業(yè)的積極性不高,職業(yè)院校教學(xué)質(zhì)量無法與企業(yè)聯(lián)合,畢業(yè)生和企業(yè)崗位不能無縫對接.[2]針對上述的問題,缺乏信息平臺或大數(shù)據(jù)技術(shù)進(jìn)行數(shù)據(jù)記錄、跟蹤、管理、分析等,導(dǎo)致合作雙方對人才培養(yǎng)的過程管理無法掌控.
職業(yè)院校的教育教學(xué)要突出“職業(yè)特色”,校企合作教育則成為職業(yè)教育適應(yīng)區(qū)域經(jīng)濟(jì)發(fā)展和社會資源共享的必然選擇,各職業(yè)院校根據(jù)自身的辦學(xué)特點(diǎn)及當(dāng)?shù)貐^(qū)域經(jīng)濟(jì)的發(fā)展,探索和實(shí)踐企業(yè)行業(yè)特色的校企合作人才培養(yǎng)模式.[3]職業(yè)院校從專業(yè)設(shè)置、課程體系、教學(xué)內(nèi)容、課堂活動(dòng)、課程開發(fā)等方面與企業(yè)需求進(jìn)行對接,在協(xié)同育人的過程中,與知名企業(yè)合作,提高育人的標(biāo)準(zhǔn),促進(jìn)教學(xué)質(zhì)量的提升,教師能力水平和科研能力的提高,服務(wù)企業(yè)項(xiàng)目的實(shí)力增強(qiáng).
采用“企業(yè)入駐課堂,雙導(dǎo)師授課”等模式,使教學(xué)經(jīng)驗(yàn)豐富的校內(nèi)專職教師和項(xiàng)目經(jīng)驗(yàn)豐富的企業(yè)工程師共同授課,共同管理.學(xué)生在接收理論知識的同時(shí)也能接收實(shí)踐性強(qiáng)、實(shí)用性泛的新興技術(shù).合作企業(yè)還承擔(dān)課程體系中的專業(yè)見習(xí),頂崗實(shí)習(xí)和畢業(yè)實(shí)習(xí)任務(wù),真正融入企業(yè)讓學(xué)生的專業(yè)技能得到更高的提升,形成“理論與案例相結(jié)合,實(shí)踐與應(yīng)用相結(jié)合”的課堂教學(xué)特色.
企業(yè)引入新興的生產(chǎn)流程和技術(shù),把優(yōu)秀的企業(yè)管理理念和文化引入校園,讓學(xué)生提前接觸和適應(yīng)社會.通過校企協(xié)同育人,學(xué)院在創(chuàng)新工作室、實(shí)訓(xùn)課堂、校內(nèi)專業(yè)見習(xí)等引入企業(yè)文化、企業(yè)制度、經(jīng)營理念、企業(yè)項(xiàng)目等,使學(xué)生零距離接觸企業(yè)生產(chǎn)、管理的真實(shí)環(huán)境,提升學(xué)生綜合素質(zhì).
(1)搭平臺記錄數(shù)據(jù).采用SSM 框架搭建校企協(xié)同育人平臺,記錄學(xué)生成長軌跡,包含:在校期間每個(gè)學(xué)期每門課程的成績,參加各類技能大賽獲得成績,參與科研項(xiàng)目或企業(yè)真實(shí)項(xiàng)目的記錄等.除此之外,記錄并跟蹤往屆學(xué)生的成長軌跡,做好完整的育人體系鏈.
(2)大數(shù)據(jù)分析改革教學(xué).運(yùn)用大數(shù)據(jù)技術(shù),對就業(yè)崗位、待遇、職業(yè)發(fā)展等進(jìn)行分析,根據(jù)學(xué)生各維度情況,智能推薦企業(yè)及工作崗位.同時(shí),將綜合分析出的情況反哺教學(xué),對人才培養(yǎng)方案進(jìn)行修訂,課程體系改革,人才培養(yǎng)模式完善,培育出更多優(yōu)秀應(yīng)用型人才.
(3)打造數(shù)字資源庫.校企共同構(gòu)建數(shù)字資源庫,融合虛擬仿真平臺、操作視頻、UI界面設(shè)計(jì)素材、原理動(dòng)畫等數(shù)字媒體資源.同時(shí),可依托“數(shù)字資源平臺”形成政府、行業(yè)、企業(yè)、學(xué)校多層管理、監(jiān)督、監(jiān)控的網(wǎng)絡(luò)數(shù)據(jù)平臺,并對數(shù)據(jù)進(jìn)行分析,為項(xiàng)目的實(shí)施提供改革方向、改進(jìn)措施等.
根據(jù)上述思路,形成基于“創(chuàng)新工作室”的校企協(xié)同育人思維框架圖,如圖1所示.
圖1 基于“創(chuàng)新工作室”的校企協(xié)同育人思維框架圖Fig.1 School-enterprise collaborative education framework based on"Innovation Studio"
面向高職院校育人過程,通過數(shù)據(jù)可視化展示育人的結(jié)果、過程.開發(fā)框架采用跨平臺混合應(yīng)用開發(fā),結(jié)合大數(shù)據(jù)技術(shù)應(yīng)用對數(shù)據(jù)進(jìn)行抓取、清洗、分析、計(jì)算等.適應(yīng)不同的用戶,提供全方位的服務(wù)及個(gè)性化的設(shè)置.
該平臺采用Seed UI客戶端交互界面,MYSQL數(shù)據(jù)存儲容器,SSM+Min UI為Web服務(wù)端研發(fā)框架.
SSM 框架:Spring+Spring MVC+MyBatis即是(業(yè)務(wù)邏輯層+表現(xiàn)層+數(shù)據(jù)處理層)是經(jīng)典的Java-EE企業(yè)級框架.[4]原理:用戶通過控制器調(diào)用業(yè)務(wù)層(S)處理邏輯以完成邏輯事務(wù)處理,然后邏輯層向持久層(D)發(fā)送請求,持久層與數(shù)據(jù)庫(XML)交互,并將結(jié)果返回給完成數(shù)據(jù)的CRUD 之后,業(yè)務(wù)層,業(yè)務(wù)層將處理邏輯發(fā)送到控制器,控制器調(diào)用視圖(V)顯示數(shù)據(jù).
MiniUI前端框架:是快速開發(fā)Web界面的前端框架,可以創(chuàng)建Ajax 無刷新、B/S 快速錄入數(shù)據(jù)、CRUD、Master-Detail、菜單工具欄、彈出面板、布局導(dǎo)航、數(shù)據(jù)驗(yàn)證、分頁表格、樹、樹形表格等,可供.NET、java、php等主流編程語言配合使用.[5]
大數(shù)據(jù)技術(shù):Hadoop分布式環(huán)境,Python語言和Map Reduce技術(shù)完成數(shù)據(jù)計(jì)算程序,Hive完成數(shù)據(jù)清洗和過濾,HBase實(shí)現(xiàn)數(shù)據(jù)存儲.
基于“創(chuàng)新工作室”的校企協(xié)同育人平臺,根據(jù)校企雙方的需求,共用一個(gè)平臺,但用戶根據(jù)職責(zé)、職務(wù)、管理等劃分為企業(yè)(領(lǐng)導(dǎo)、管理者、工程師),學(xué)院(領(lǐng)導(dǎo)、教師、在校學(xué)生、往屆學(xué)生).其中企業(yè)和學(xué)院的領(lǐng)導(dǎo)查看整個(gè)育人體系中學(xué)生的總體情況,工作室總體的事務(wù)量,工程師與教師的工作銜接率,并根據(jù)數(shù)據(jù)進(jìn)行決策.企業(yè)管理者負(fù)責(zé)企業(yè)與學(xué)院的事務(wù)對接,工程師負(fù)責(zé)培養(yǎng)學(xué)生,與教師共育人才.學(xué)院教師負(fù)責(zé)工作室的日常事務(wù)管理,培養(yǎng)學(xué)生,對接企業(yè)日?;顒?dòng)等,學(xué)生(在校、往屆)負(fù)責(zé)記錄自己的成長數(shù)據(jù),查看項(xiàng)目,參與考核,獲取招聘信息.
工程師記錄參與項(xiàng)目學(xué)生的所有數(shù)據(jù)并對其進(jìn)行分類,也可查看學(xué)生在校的學(xué)習(xí)情況、參與活動(dòng)、競賽獲獎(jiǎng)等情況.教師將學(xué)生在?;虍厴I(yè)后的數(shù)據(jù)進(jìn)行記錄,按活動(dòng)類別、比賽項(xiàng)目、企業(yè)任務(wù)等多維度方面,記錄學(xué)生的所有數(shù)據(jù),通過可視化平臺進(jìn)行數(shù)據(jù)分析.工程師和教師都可以根據(jù)成長軌跡圖進(jìn)行分類專門培養(yǎng),調(diào)整培養(yǎng)的方法.學(xué)生可以看自己整個(gè)大學(xué)的學(xué)習(xí)情況軌跡,參加活動(dòng)或競賽等分析圖,調(diào)整自己的學(xué)習(xí)目標(biāo)和方向.
企業(yè)將真實(shí)項(xiàng)目發(fā)布于平臺或引入到項(xiàng)目實(shí)訓(xùn)課程里,學(xué)生成立團(tuán)隊(duì)接收項(xiàng)目,要教師和工程師的指導(dǎo)下完成項(xiàng)目的開題報(bào)告、需求調(diào)研、框架設(shè)計(jì)、程序編寫、項(xiàng)目測試、成果展示、結(jié)題歸檔,所有的步驟數(shù)據(jù)都進(jìn)入平臺的項(xiàng)目管理中心.可以查看項(xiàng)目的進(jìn)度,上傳文檔,成果演示,數(shù)據(jù)統(tǒng)計(jì)等功能.
基于Hadoop分布式環(huán)境下,通過Python語言和Map Reduce完成抓取數(shù)據(jù)程序,運(yùn)行抓取程序?qū)⒒ヂ?lián)網(wǎng)中的熱門招聘信息網(wǎng)的數(shù)據(jù)按規(guī)定的數(shù)據(jù)結(jié)構(gòu)進(jìn)行數(shù)據(jù)爬取.[6]利用Hive進(jìn)行創(chuàng)建數(shù)據(jù)倉庫并對接抓取的數(shù)據(jù),同時(shí)對數(shù)據(jù)進(jìn)行清洗,通過HBase完成數(shù)據(jù)存儲.再運(yùn)用Echear完成圖表可視化分析.
(1)抓取數(shù)據(jù),采用爬蟲技術(shù)(招聘類網(wǎng)站信息).
運(yùn)用Python語言編寫程序,采用Requests請求數(shù)據(jù),使用BeautifulSoup 解析數(shù)據(jù),運(yùn)用xlsxwriter框架保存數(shù)據(jù)到Excel文件中.核心代碼如下:
網(wǎng)頁下載器:
#設(shè)置請求頭部參數(shù),模擬瀏覽器訪問
header= {'User-Agent':r'系統(tǒng)版本,瀏覽器,瀏覽器內(nèi)核','Referer':r'訪問地址',
'Connection':'keep-alive'
}
網(wǎng)頁解析器:
#提取數(shù)據(jù)
soup= BeautifulSoup(html_content,'html.parser')
all=primary_soup.find('h3',class_="name").a.text
sala=primary_soup.find('h3',class_="name").a.span.text
job=all.replace(sala,"")
job_require=primary_soup.find('p').text
輸出Excel:
for i in range(1,row_num+1):
if i==1:
tag_pos='A%s'%i
tmp.write_row(tag_pos,tag_names)
else:
con_pos='A%s'%i
content=results[i-1]
tmp.write_row(con_pos,content)
調(diào)度器:
#循環(huán)處理抓取數(shù)據(jù)
for i in range(1,page_count+1):
time.sleep(random.uniform(1,5))
content = self.downloader.get_ page(base URL,i,keyword)
com_results=self.parser.parse(content)
for com in com_results:
all_coms.append(com)
(2)清洗數(shù)據(jù),采用正則表達(dá)式過濾.
根據(jù)數(shù)據(jù)結(jié)構(gòu)要求,完成“地區(qū)”和“薪水”數(shù)據(jù)清洗過濾,“地區(qū)”保留城市,去掉區(qū)域;處理“薪水”的最高和高低.核心代碼如下:
清洗過濾數(shù)據(jù):
#判斷待遇是否為空,并計(jì)算最低最高待遇
if salary:
result=handle_salary(salary)
low_salary=result[0]
high_salary=result[1]
else:
low_salary=high_salary=""
正則表達(dá)式提取數(shù)據(jù):
# 針對1萬~2萬/月或者10萬~20萬/年的情況,包含“-”符號
low_salary=re.findall(re.compile('(d*.? d+)'),salary)[0]
low_salary=float(low_salary)/12*10
low_salary=float(low_salary)*10
(3)提取和分析,構(gòu)建數(shù)據(jù)倉庫.
運(yùn)用Python語言編寫程序,利用xlrd讀取execl的數(shù)據(jù),提取和分析,并創(chuàng)建表;然后將生成的數(shù)據(jù)通過load到Hive表中.核心代碼如下:
構(gòu)建Hive數(shù)據(jù)倉庫:
#輸入的xls文件
book=xlrd.open_workbook(execl的文件路徑)
in_file=book.sheets()[0]
title_List=in_file.row_values(0)
title_str=','.join(title_List[i]for i in range(len(title_List)))
title=''.join(lazy_pinyin(title_str))
table_sql=str('hive-e'+'"'+title+'"')
(4)將數(shù)據(jù)存入HBase數(shù)據(jù)庫.
基于Hadoop分布式環(huán)境下,運(yùn)用shell命令完成操作,將Hive表的數(shù)據(jù)生成hfile,再通過bulkload導(dǎo)入到hbase數(shù)據(jù)庫.操作步驟如下:
第一步:啟動(dòng)Hive,導(dǎo)入需要的jar包
add jar/lib/hive-hbase-handler-2.3.3.
jar;
add jar/lib/hbase-protocol-1.1.1.jar;
add jar/lib/hbase-common-1.1.1.jar;
add jar/lib/hbase-client-1.1.1.jar;
add jar/lib/hbase-server-1.1.1.jar;
第二步:生成hfile,并存儲在HDFS目錄
STORED AS
INPUTFORMAT'org.apache.hadoop.mapred.TextInput Format'
OUTPUTFORMAT'org.apache.hadoop.
hive.hbase.Hive HFileOutput Format'
TBLPROPERTIES('hfile.family.path'='/
user/hive-hbase/jobs');
第三步:創(chuàng)建對應(yīng)的HBase表
create'hive_load','jobs'
第四步:執(zhí)行bulkhead,將數(shù)據(jù)導(dǎo)入到HBase中
bin/hbase org.apache.hadoop.hbase.mapreduce.LoadIncremental HFiles hdfs://maste:port/user/hive-hbase/jobs/hive_load
(5)可視化數(shù)據(jù)顯示.
根據(jù)數(shù)據(jù)分析需求,按數(shù)據(jù)結(jié)構(gòu),采用java+ECharts+Ajax讀取數(shù)據(jù)并繪制可視化圖表.效果如圖2、3所示.
圖2 地區(qū)職位招聘數(shù)量排行Fig.2 Top Jobs by Region
圖3 全國招聘職位最低學(xué)歷要求分布情況Fig.3 Distribution of minimum education requirements for national recruitment positions
采用“協(xié)同過濾算法”完成企業(yè)崗位的推薦,推薦過程對學(xué)生的各類數(shù)據(jù),企業(yè)崗位、崗位數(shù)量、崗位要求行進(jìn)行訓(xùn)練,在匹配計(jì)算過程中要建立學(xué)生到崗位的倒排序,在推薦數(shù)據(jù)過程中先確定學(xué)生對被推薦崗位的匹配程度值,最終推薦匹配度排位最前的崗位.[7]具體的流程如圖4所示.
根據(jù)“協(xié)同過濾算法”數(shù)學(xué)模型,求解出學(xué)生對企業(yè)崗位列表中的每個(gè)崗位匹配度的值.數(shù)學(xué)模型如下:
模型中N(u)是一個(gè)數(shù)據(jù)樣本集合,代表學(xué)生匹配的崗位,S(j,K)是數(shù)量為K 的崗位且與j匹配度較高,w ji為j與i的匹配程度值,r ui為u對i的合適值.模型計(jì)算出的值,與學(xué)生匹配崗位越接近,則該崗位越有可能最合適該學(xué)生.
運(yùn)用Python語言編寫程序,實(shí)現(xiàn)JobsCF 推薦算法,完成數(shù)學(xué)模型的訓(xùn)練.代碼如下:
#循環(huán)完成最優(yōu)推薦值
for i,wji in sorted(W[user].items(),key=itemgetter(1),reverse= True)[0:K]:
#循環(huán)訓(xùn)練
for u,rui in train[i].items():
if u in interacted_items:continue
rank[u]+= wji*rui
圖4 基于“協(xié)同過濾算法”工作崗位推薦流程圖Fig.4 Flow chart of job recommendation based on"collaborative filtering algorithm"
隨著大數(shù)據(jù)、云計(jì)算融入平臺,人工智能AI的快速成長,數(shù)據(jù)的可視更加直觀,功能也更加人性化、智能化、精準(zhǔn)化.本平臺基于“創(chuàng)新工作室”平臺,融合大數(shù)據(jù)和流行框架SSM,構(gòu)建校企協(xié)同育人數(shù)字資源平臺,解決校企合作數(shù)據(jù)存儲,育人過程記錄,智能推薦崗位,人才選拔和錄用等問題.同時(shí),雙方可以根據(jù)數(shù)據(jù)分析做改革和決策,共享、共建、共管理人才培養(yǎng)的資源.校企協(xié)同育人數(shù)字資源平臺目前還處于測試階段,功能各方面還有待進(jìn)一步完善.