尹晶海 陳鈺華
摘要:本文通過網(wǎng)絡爬蟲獲取招聘網(wǎng)站的詳細招聘信息,通過數(shù)據(jù)庫對爬取的信息進行清洗和標準化等預處理操作。然后使用jieba分詞對招聘信息進行文本分析,將分詞后的招聘崗位關鍵詞按照性質分為崗位、級別、領域、方向、職責等五大類,而將崗位技能要求分為年限、領域、方向、職責等四大類,最后結合關聯(lián)算法對招聘信息進行關聯(lián)分析和數(shù)據(jù)挖掘,獲取崗位名稱、崗位技能要求與招聘單位的規(guī)模、性質、待遇等相關要素的關系。通過生成的數(shù)學模型可以更好地了解Android相關崗位的具體技能要求與崗位的其他重要特征之間的聯(lián)系。
關鍵詞:文本挖掘;網(wǎng)絡爬蟲;Android;崗位數(shù)據(jù)分析
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)21-0001-03
開放科學(資源服務)標識碼(OSID):
1 引言
隨著移動互聯(lián)網(wǎng)的飛速發(fā)展以及智能手機的快速普及,市場對移動開發(fā)類軟件相關人才有著非常大的需求,而高等教育的課程體系設置和教學大綱的編寫并未能充分考慮到市場對人才的實際需求,通常在教學知識點和課程設置方面不能滿足企業(yè)對人才的實際需求,而大學生本身也亟須了解真實的人才技能需求狀況以及知識技能的選擇對用人單位性質、規(guī)模和待遇的影響,從而選擇自己的學習方向以及補充自己的短板。
近年來,有不少研究學者在這方面進行了深入的研究。夏立新等人通過對就業(yè)相關的文本進行數(shù)據(jù)挖掘,提取專業(yè)、崗位和知識點之間的關系,形成了這三者的關系集合[1]。王萍利用文本挖掘技術構建了具有擴展性的人才市場需求分析模型,創(chuàng)建了專業(yè)相關的技能詞典,并從多個角度和維度對人才市場、就業(yè)技能的需求進行了分析[2]。詹翠芬利用Python進行文本分詞并構建關鍵詞向量空間模型來完成數(shù)據(jù)預處理部分,通過K-means聚類完成崗位類型劃分[3]。張俊峰通過爬蟲技術采集招聘網(wǎng)站的崗位信息,利用NLP和機器學習等技術對招聘詞典進行構建,同時分析了招聘崗位的需求特征[4]。劉暢將數(shù)據(jù)類崗位招聘數(shù)據(jù)運用NLP技術對非結構化的招聘信息進行數(shù)據(jù)預處理;結合主題模型與詞嵌入技術構建主題詞提取模型,提取出各數(shù)據(jù)類崗位基于不同需求主題的招聘需求主題詞[5]。王召義等對職位描述信息進行分詞,統(tǒng)計關鍵詞的詞頻、詞性和詞序;再結合語言表述模式,確定核心關鍵詞;最后快速查找核心關鍵詞的鄰近詞,并對有意義的鄰近詞進行語義分析[6]。這些研究從多個角度對各類崗位所需的技能要求進行了相關的分析,但對于各項專業(yè)技能和綜合能力與崗位待遇之間的具體關系,這些研究還比較少涉足。
本文則通過網(wǎng)絡爬蟲技術從招聘網(wǎng)站中爬取詳細的招聘信息,然后對信息進行數(shù)據(jù)清洗和標準化等預處理操作。通過文本分析和數(shù)據(jù)挖掘技術對這些招聘信息進行數(shù)據(jù)建模,構建崗位關鍵詞與招聘需求關鍵詞與崗位待遇、公司性質與類別之間的復雜關系,通過準確的數(shù)據(jù)模型來指導高校制定與時俱進的培養(yǎng)計劃,指導大學生選擇最適合自己的以及性價比最高的領域和方向進行重點學習,讓學校、大學生和企業(yè)都能從中獲益。
2 信息采集與數(shù)據(jù)預處理
2.1數(shù)據(jù)獲取
在IT類崗位招聘中,提供技術崗位信息最多的網(wǎng)站就是51job.com了,本文采用基于Python的爬蟲程序逐條爬取北京、上海、廣州和深圳等四個一線城市中與Android相關的工作崗位共10097條,經(jīng)過數(shù)據(jù)清洗去掉了一些有數(shù)據(jù)缺漏的記錄,得到的完整招聘信息共9716條。
2.2數(shù)據(jù)預處理
接下來就是對數(shù)據(jù)做預處理,包括同義詞合并,比如APP、app和App,統(tǒng)一規(guī)范為App,又或者Android、android和安卓,統(tǒng)一規(guī)范為安卓等。除了崗位名稱和崗位要求等文本類數(shù)據(jù),招聘信息中還有最重要的待遇數(shù)據(jù),這些數(shù)據(jù)采用的都是基于字符串的非標準化格式進行存儲的,例如有1.8-2.5萬/月這種月薪格式的,還有12-24萬/年這種年薪格式的,同時還有12-18K/月或者10000-15000/月這類格式的,如果要將崗位待遇與其他數(shù)據(jù)進行關聯(lián)分析,則必須將這些數(shù)據(jù)標準化,本文采用SQL腳本將崗位薪資待遇統(tǒng)一設置為xxxx元/年,采用lowmoney和highmoney兩個字段分別存儲低位年薪和高位年薪,以方便后續(xù)的統(tǒng)計分析和比對。
2.3數(shù)據(jù)整理
爬蟲爬取的原始數(shù)據(jù)集包含崗位名稱、崗位薪資、公司名稱、經(jīng)驗要求、公司地址、技能要求、崗位職責、公司類型、公司規(guī)模、所在行業(yè)等10個關鍵字段,為了方便后續(xù)的數(shù)據(jù)分析,又增加了薪資上限、薪資下限、崗位類型、業(yè)務領域、崗位級別、技能列表、職責列表等輔助字段。對其中的字典型字段進行了標準化操作,例如:
經(jīng)過加工和整理后,整個數(shù)據(jù)集一共9716條記錄,每條記錄有17個字段,所有關鍵字段均已經(jīng)進行了數(shù)據(jù)清洗和標準化操作。
3 數(shù)據(jù)分析
3.1崗位名稱分詞
每個招聘崗位的名稱中包含著大量崗位相關的信息。本文選取其中幾個代表性的崗位來進行個體分析:
安卓高級測試工程師:分詞結果為安卓/高級/測試/工程師
C++/Golang服務器后端研發(fā)工程師:分詞結果為C++/Golang/服務器/后端/研發(fā)/工程師
工業(yè)App開發(fā)總監(jiān):分詞結果為工業(yè)/App/開發(fā)/總監(jiān)
從上面的個體分析中可以看出,通常崗位名稱中包含以下四類信息。
崗位類型:測試、研發(fā)、開發(fā)
業(yè)務領域:服務器、后端、工業(yè)
崗位級別:高級、總監(jiān)
技術方向:安卓、C++、Golang
基于這四大類關鍵詞,本文采用Python的jieba包首先對全部的崗位名稱進行分詞,得到的分詞內容列表再刪除停用詞,然后利用TF-IDF算法對關鍵詞進行抽取,按照TF-IDF特征值和詞頻抽取前100位的關鍵詞進行分析,發(fā)現(xiàn)其中的非崗位描述詞匯則將其加入停用詞表,如果還存在同義詞或者相同詞匯的不同書寫方式,則返回到前面進行相應的數(shù)據(jù)預處理,然后再將更新后的數(shù)據(jù)進行文本分析,具體流程如圖1所示。
最終獲取的崗位關鍵詞按照之前設定的分類規(guī)則,將排名前100的關鍵詞分為以下幾類:
崗位級別:高級、經(jīng)理、資深、專員、主程、主管、實習生、總監(jiān)、中級、項目經(jīng)理、初級、助理、中高級、專家。
崗位類型:工程師、開發(fā)、測試、設計師、軟件測試、軟件開發(fā)、研發(fā)、產品、架構師、技術、推廣、交互、運營、UX、平臺、程序員、設計、售前、程序開發(fā)、全棧、UE、運維、商務、銷售、渠道、技術支持、講師。
技術方向:安卓、Web、Java、C++、ReactNative、Unity、PHP、C#、Flutter、Framework、cocos。
業(yè)務領域(應用):App、軟件、系統(tǒng)、游戲、前端、手游、算法、手機、應用軟件、抖音、音視頻、音頻、自動化、視頻、系統(tǒng)軟件、AI……。
業(yè)務領域(技術):前端開發(fā)、UI、驅動、嵌入式軟件、客戶端、嵌入式、Linux、SDK、硬件、Framework、多媒體、FAE、逆向、BSP、Camera……。
3.2 崗位所在行業(yè)分類
這9716個崗位分屬58個行業(yè),本文對所有數(shù)據(jù)進行分類統(tǒng)計,并將崗位數(shù)量在200以下的行業(yè)全部合并到其他行業(yè)中,最后生成的圖表如圖2所示:
3.3崗位技能要求分詞
對全部的崗位技能要求進行分詞,排名在前面的關鍵詞會出現(xiàn)很多的非技術性詞匯,例如:熟悉、開發(fā)、經(jīng)驗、優(yōu)先、能力、以上學歷、工作、編程、設計、精通、相關、團隊等,這些詞匯對學生選擇學習方向和領域沒有幫助,因此本文將這些詞匯加入停用詞表,然后循環(huán)多次,直至排名靠前的關鍵詞全部變成技術性詞匯。最終的結果如圖3所示。
其中按照詞頻統(tǒng)計,除去Android以外超過1000的關鍵詞如表2所示:
這些關鍵詞都是與Android崗位密切相關的專業(yè)詞匯,在招聘單位的崗位技能要求中出現(xiàn)頻率非常高,說明精通這些技術和知識的人才,目前的市場需求非常大。
4 關聯(lián)分析
通過將崗位需求的關鍵詞與每個崗位的低位和高位收入相關聯(lián),得出每個關鍵詞所關聯(lián)崗位的高低位收入的平均值,如圖4所示:
其中高位與低位均排名第一的為引擎,而調優(yōu)、音視頻、內核、驅動等關鍵詞所關聯(lián)的收入都相對比較高。說明和這幾項技能相關聯(lián)的崗位能提供較好的待遇。而如果以行業(yè)進行劃分,將不同行業(yè)的崗位與企業(yè)所提供的待遇以及崗位數(shù)量相互關聯(lián),并去除其中提供崗位人數(shù)少于100的行業(yè),則得到圖5所示的結果,待遇最好的行業(yè)是汽車及零配件、專業(yè)服務、金融投資證券等非IT行業(yè),說明這些行業(yè)提供的IT崗位更具有吸引力,但是從需求人數(shù)來看,最優(yōu)的選擇依舊首選互聯(lián)網(wǎng)與電子商務,其次是計算機軟件,這兩個行業(yè)不但具有最多的需求人數(shù),同時也具備較高的收入水平。
5 結論
本文以前程無憂平臺的Android相關崗位為基礎數(shù)據(jù),通過文本分詞與關聯(lián)分析,挖掘了崗位招聘數(shù)據(jù)背后的一些重要信息[7-8]。分析結果顯示,與該類崗位關聯(lián)比較緊密的技能包括Java、UI、App、調試、架構、iOS、C++、Linux、網(wǎng)絡、游戲等,而從待遇的角度來看,引擎、調優(yōu)、音視頻、內核、驅動才是最值得花時間深入鉆研的領域,另外從行業(yè)角度分析,安卓開發(fā)人員選擇汽車、專業(yè)服務與金融投資證券的收入最高,而考慮到就業(yè)需求數(shù)量與穩(wěn)定性,互聯(lián)網(wǎng)、電子商務與軟件行業(yè)則是大多數(shù)人的最優(yōu)選擇。
參考文獻:
[1] 夏立新,楚林,王忠義,等.基于網(wǎng)絡文本挖掘的就業(yè)知識需求關系構建[J].圖書情報知識,2016(1):94-100.
[2] 王萍.基于Web文本挖掘的電子商務專業(yè)人才市場需求研究[D].重慶:重慶工商大學,2016.
[3] 詹翠芬.基于數(shù)據(jù)挖掘的互聯(lián)網(wǎng)行業(yè)崗位類型分析[J].計算機產品與流通,2018(7):136-138.
[4] 張俊峰.國內網(wǎng)站招聘崗位需求特征挖掘及其應用研究[D].蚌埠:安徽財經(jīng)大學,2017.
[5] 劉暢.數(shù)據(jù)類崗位招聘需求信息研究[D].蘭州:蘭州財經(jīng)大學,2019.
[6] 王召義,薛晨杰,劉玉林.基于鄰近詞分析的電子商務技能需求分析[J].信息資源管理學報,2018,8(2):113-121.
[7] 許強永.IT類招聘信息統(tǒng)計結果研究[J].計算機教育,2012(23):49-53.
[8] 張俊峰,魏瑞斌.國內招聘類網(wǎng)站的數(shù)據(jù)類崗位人才需求特征挖掘[J].情報雜志,2018,37(6):176-182.
【通聯(lián)編輯:唐一東】