姚超
摘要:為了更加客觀且全面地了解當下各企業(yè)對大數(shù)據(jù)崗位的職業(yè)技能要求,他首先通過網絡爬蟲技術針對前程無憂網站上各個企業(yè)所發(fā)布與大數(shù)據(jù)相關的崗位進行信息提取并保存,然后通過分詞技術對提取到的崗位信息進行分詞,最后對分詞后的數(shù)據(jù)進行統(tǒng)計分析。通過分析,他得到了相對客觀的大數(shù)據(jù)崗位職業(yè)技能需求信息,這為后續(xù)地大數(shù)據(jù)人才培養(yǎng)方案制定提供了更加客觀全面的數(shù)據(jù)支撐。
關鍵詞:網絡爬蟲;大數(shù)據(jù);職業(yè)技能;信息抽取;數(shù)據(jù)分析
中圖分類號:TP319? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)27-0001-02
Abstract: In order to be more objective and comprehensive about the understanding of the various enterprises vocational skill requirements for big data posts, firstly, he extracted and saved the information of posts related to big data released by various enterprises` on 51job.com through web crawler technology, and then divided the extracted post information into words by word segmentation technology. Finally, he analyzed the data after word segmentation by statistics. Through the analysis, he obtained relatively objective information about the vocational skill demands of the big data posts, and provided more objective and comprehensive data support for the subsequent formulation of big data talent training plan .
Key words:web crawler; big data; vocational skills; Information Extraction; data analysis
2015年國務院印發(fā)的《促進大數(shù)據(jù)發(fā)展的行動綱要》[1]這一重要文件極大地加速了大數(shù)據(jù)行業(yè)及大數(shù)據(jù)職業(yè)教育的發(fā)展,同時也促使社會對大數(shù)據(jù)專業(yè)人才需求的激增。2016年,《普通高等學校高等職業(yè)教育專業(yè)(專科)目錄》增補了“大數(shù)據(jù)技術與應用專業(yè)”[2],2017年高職院校正式以“大數(shù)據(jù)技術與應用”專業(yè)開始招生。截至目前,“大數(shù)據(jù)技術與應用”專業(yè)還沒有畢業(yè)生,各高職院校的“大數(shù)據(jù)技術與應用”專業(yè)均處于探索研究階段。為了能夠更加客觀且全面地了解當下各企業(yè)對大數(shù)據(jù)崗位的職業(yè)技能要求,從而實現(xiàn)對當前高職院?!按髷?shù)據(jù)技術與應用”專業(yè)人才培養(yǎng)方案的修訂與完善,本文將通過網絡爬蟲等技術從前程無憂招聘網站上獲取有關大數(shù)據(jù)崗位相關信息并做分析。
1 整體設計
為了實現(xiàn)獲取大數(shù)據(jù)崗位信息并進行分析,本文的功能涉及三個模塊:網絡爬蟲、數(shù)據(jù)儲存和數(shù)據(jù)處理與分析。其中網絡爬蟲的實現(xiàn)方案有很多,因為Scrapy框架具體高效和功能強大等特點[3],本文采用Scrapy框架實現(xiàn)網絡爬蟲以獲取的大數(shù)據(jù)崗位相關信息。由于MongoDB具有高性能、易部署、易使用、存儲數(shù)據(jù)非常方便等特點[4],本文的數(shù)據(jù)存儲模塊采用MongoDB來保存獲取到的大數(shù)據(jù)崗位信息。因為通過爬蟲獲取到的崗位信息數(shù)據(jù)均是中文文本信息,本文需要對中文文本信息進行分詞處理然后再分析,jieba模塊是目前最好的Python中文分詞組件[5],因此本文采用jieba模塊來對崗位描述的文本信息進行處理并使用pyecharts模塊來對分析的結果進行展示。具體的設計方案如圖1所示。
2 大數(shù)據(jù)崗位信息獲取與存儲
2.1 網絡爬蟲的設計與實現(xiàn)
1) 明確爬蟲目標。
根據(jù)需求,本文將關注的焦點放在前程無憂招聘網站上有關??茖W歷的大數(shù)據(jù)崗位信息。如果只搜索以上信息,將會出現(xiàn)大量與大數(shù)據(jù)崗位不符合的信息,如:銷售員、電話客服等。為避免此種情況出現(xiàn),本文將搜索范圍限定在有1-3年工作經歷的招聘崗位上,此時得到的信息將更加符合大數(shù)據(jù)專業(yè)。具體的搜索結果如圖2所示,其中被矩形框標記的內容則是本文所需要的部分信息。在圖2中可以發(fā)現(xiàn)其中仍然包含有極少量無效信息,因此本文將在后面的數(shù)據(jù)處理過程中對這些數(shù)據(jù)進行更深入地篩選過濾。此外,以上頁面的內容并不能滿足本文用于職業(yè)技能分析的要求,還需要將每個崗位的詳細信息提取出來,詳細頁面如圖3所示,其中矩形框標記的內容則是本文所需要的核心信息。
2) 分析待解析的頁面信息。
通過第1步得到兩個待解析的頁面:大數(shù)據(jù)崗位搜索結果頁面、崗位詳情頁面。這里可以通過瀏覽器所提供的“查看元素”功能來分析整個頁面的文檔結果及要爬取信息在頁面中的位置。通過分析可以得到每個頁面上所要爬取信息如下:搜索結果頁面的職位名、公司名、工作地點、薪資、崗位詳情鏈接、下一頁鏈接等;崗位詳情頁面的職位信息。
2.2 大數(shù)據(jù)崗位信息儲存
當scrapy獲取到數(shù)據(jù)后,這些數(shù)據(jù)將會被傳遞到pipeline中進行下一步處理。本文通過編寫實現(xiàn)pipeline中的process_item(self, item, spider)方法,將傳遞過來的數(shù)據(jù)通過MongoDB的insert()方法直接寫入MongoDB數(shù)據(jù)庫中。為了能夠讓數(shù)據(jù)可以被傳遞到pipeline中,這里需要提前設置好setting.py中的“ITEM_PIPELINES”信息,要確保該參數(shù)存在且未被注釋。
3? 大數(shù)據(jù)崗位信息處理與分析
3.1 數(shù)據(jù)篩選
在2.1節(jié)中已經發(fā)現(xiàn)爬取到的數(shù)據(jù)中還有少量崗位信息為客服和銷售崗,因此在進行數(shù)據(jù)處理與分析前,要把這些信息從有效數(shù)據(jù)中過濾掉。這里最直接的思路是在查詢數(shù)據(jù)庫是將這些數(shù)據(jù)過濾掉,但是MongoDB數(shù)據(jù)庫在查詢過濾功能與其他數(shù)據(jù)庫不同,它所采用的是正則表達式。本文所需要的數(shù)據(jù)中其崗位名稱不包含“銷售”和“客服”等字符,結合正則表達式相關語法規(guī)則設計出符合該功能的正則表達式為“^((?!銷售|客服).)*$”[6]。
3.2 數(shù)據(jù)處理與分析
常見的數(shù)據(jù)處理包含:數(shù)據(jù)錯誤處理、缺失值處理、離群值處理、中文jieba分詞、去停用詞處理等[7]。本文主要采用中文jieba分詞和去停用詞處理兩種數(shù)據(jù)處理方法。如果不采用去停用詞處理,這里將得到大量與最終要求無關的統(tǒng)計信息,如:優(yōu)先、熟悉、掌握等。去停用詞處理可以節(jié)省存儲空間和提高搜索效率,停用詞專指在處理自然語言數(shù)據(jù)或文本時自動過濾掉的字或詞[8]。
大數(shù)據(jù)崗位信息處理完成后,本文采用TF-IDF(term frequency-inverse document frequency)[9]統(tǒng)計方法來對其進行分析,以確定各種計算機專業(yè)相關的職業(yè)技能在大數(shù)據(jù)崗位中的重要程度。
3.3 結果展示
通過3.2節(jié)中對大數(shù)據(jù)崗位信息的處理,并使用TF-IDF統(tǒng)計方法進行分析后,為了更加清晰明了地展現(xiàn)分析后的結果,本文采用pyecharts模塊中的柱狀圖Bar來呈現(xiàn)結果,具體如圖4所示。通過該分析結果可以非常明顯看出:對于大數(shù)據(jù)崗位來說,數(shù)據(jù)庫、數(shù)據(jù)分析、Java、MySQL、Linux、Python、Hadoop等是非常重要的職業(yè)技能;此外可視化等相關技術、數(shù)據(jù)結構、網絡爬蟲等職業(yè)技能也是較多企業(yè)對大數(shù)據(jù)人才的要求。
4? 結束語
以前,我們要想知道指定崗位所需要的職業(yè)技能都是通過調查部分企業(yè)來實現(xiàn)的。通過這種方式,我們所得到的結果不全面,有時還會因為企業(yè)給出的信息較隨意使得結果不客觀,甚至會出現(xiàn)偏差。本文通過網絡爬蟲技術爬取前程無憂網站上各個企業(yè)所發(fā)布與大數(shù)據(jù)相關的崗位進行信息并保存到MongoDB中,同時使用中文jieba分詞、去停用詞處理等對數(shù)據(jù)進行處理并使用TF-IDF統(tǒng)計方法對處理后的數(shù)據(jù)進行分析,最后得到了一組相對客觀的大數(shù)據(jù)崗位職業(yè)技能需求信息,這為后續(xù)地大數(shù)據(jù)人才培養(yǎng)方案制定提供了更加客觀全面的數(shù)據(jù)支撐。
參考文獻:
[1] 中華人民共和國國務院.促進大數(shù)據(jù)發(fā)展行動綱要[Z].北京:中華人民共和國國務院,2015.
[2] 中華人民共和國教育部.《普通高等學校高等職業(yè)教育(專科)專業(yè)目錄》2016年增補專業(yè)[Z].北京:中華人民共和國教育部,2016.
[3] 黑馬程序員.解析Python網絡爬蟲:核心技術、Scrap框架、分布式爬蟲[M].北京:中國鐵道出版社,2018:175-178.
[4] 百度百科.mongodb[DB/OL].[2019-07-10].https://baike.baidu.com/item/mongodb.
[5] Gaius_Yao.簡明jieba中文分詞教程[M/OL].[2019-07-10].https://www.jianshu.com/p/883c2171cdb5.
[6] (美)Goyvaerts Jan, Levithan Steven.正則表達式經典實例[M].郭耀譯.北京:人民郵電出版社,2010:273-304.
[7] 李光明,潘以鋒,周宗萍.基于自然語言處理技術的學生管理論壇文本挖掘與分析[J].智庫時代,2019(29):122+127.
[8] 百度百科.停用詞[DB/OL].[2019-07-10].https://baike.baidu.com/item/停用詞.
[9] 馮勇,屈渤浩,徐紅艷,等.融合TF-IDF和LDA的中文FastText短文本分類方法[J].應用科學學報,2019,37(03):378-388.
【通聯(lián)編輯:朱寶貴】