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