李 俊,鄭 陽(yáng),湯英洹,王佳玟
(湖南工程學(xué)院 電氣與信息工程學(xué)院,湖南 湘潭411104)
就業(yè)是最大的民生,而高校畢業(yè)生是國(guó)家的重點(diǎn)人才資源,因此促進(jìn)畢業(yè)生高質(zhì)量就業(yè)成為高校的重要任務(wù)[1]。據(jù)統(tǒng)計(jì),2021 屆畢業(yè)生人數(shù)達(dá)到909 萬(wàn)[2],比2020屆畢業(yè)生人數(shù)多出35 萬(wàn),大學(xué)生就業(yè)形勢(shì)日益嚴(yán)峻。對(duì)此,有針對(duì)性地提高大學(xué)生就業(yè)率是有必要的。作者通過(guò)日常工作和研究各類文獻(xiàn)發(fā)現(xiàn)大學(xué)生從制作簡(jiǎn)歷到就業(yè),時(shí)間間隔短,一些學(xué)生沒(méi)來(lái)得及等到教師指導(dǎo)就已經(jīng)找到工作,簽訂三方協(xié)議。這樣會(huì)導(dǎo)致部分學(xué)生走彎路,簽了并不適合自己的工作崗位,不利于學(xué)生的高質(zhì)量就業(yè)。本文提出一種新的方式,輔助教師對(duì)畢業(yè)生進(jìn)行就業(yè)指導(dǎo),提高工作效率??傮w流程為,首先收集大學(xué)畢業(yè)生就業(yè)指導(dǎo)課提交的電子簡(jiǎn)歷,再建立數(shù)據(jù)提取模型將簡(jiǎn)歷數(shù)據(jù)以結(jié)構(gòu)化的形式保存在數(shù)據(jù)庫(kù)中,最后建立工作推薦模型,為每個(gè)畢業(yè)生推薦適合自己的工作,促進(jìn)大學(xué)生高質(zhì)量就業(yè)。
基于機(jī)器學(xué)習(xí)的簡(jiǎn)歷數(shù)據(jù)分析總體包括三大部分,首先是電子簡(jiǎn)歷信息的抽取,其次是簡(jiǎn)歷信息的數(shù)據(jù)挖掘,最后是工作推薦模型的評(píng)估。如圖1 所示收集電子簡(jiǎn)歷后,利用Python 編寫程序建立簡(jiǎn)歷信息抽取模型,將單個(gè)簡(jiǎn)歷中的個(gè)人基本信息(姓名、性別、電話、出生日期、畢業(yè)時(shí)間等)、求職意向、實(shí)習(xí)經(jīng)歷、組織活動(dòng)經(jīng)歷、獲獎(jiǎng)證書(shū)等信息提取出來(lái),放入MongoDB 數(shù)據(jù)庫(kù)中進(jìn)行儲(chǔ)存。將學(xué)生的簡(jiǎn)歷數(shù)據(jù)都存入數(shù)據(jù)庫(kù)后,編寫Python 程序依次讀取每份簡(jiǎn)歷的信息,進(jìn)行特征選擇和預(yù)處理后,實(shí)現(xiàn)基于內(nèi)容的互惠就業(yè)推薦算法[3],將簡(jiǎn)歷中的信息與企業(yè)招聘需求信息進(jìn)行相似度計(jì)算[4],再進(jìn)行個(gè)人和企業(yè)的匹配推薦。如學(xué)生簡(jiǎn)歷中的實(shí)習(xí)信息能夠展現(xiàn)出學(xué)生的工作能力和相關(guān)企業(yè)的勝任力。企業(yè)招聘信息展示工作內(nèi)容的部分是招聘職位信息中的“職位描述”。企業(yè)在進(jìn)行人才選拔時(shí),通常會(huì)考慮到學(xué)生的實(shí)習(xí)經(jīng)歷是否與工作職位所匹配,如果在同一條件下,那匹配度高的簡(jiǎn)歷必定會(huì)受到企業(yè)人力資源部門的重視。建立工作推薦模型后,需要對(duì)模型進(jìn)行評(píng)估,將數(shù)據(jù)集分為兩部分,一部分占總數(shù)的80%為訓(xùn)練集,另一部分占總數(shù)的20%為測(cè)試集,模型先通過(guò)訓(xùn)練集的數(shù)據(jù)進(jìn)行訓(xùn)練學(xué)習(xí),再通過(guò)測(cè)試集來(lái)測(cè)試模型的預(yù)測(cè)準(zhǔn)確率。評(píng)估完成后可以將模型應(yīng)用于大學(xué)生就業(yè)指導(dǎo)中。
圖1 簡(jiǎn)歷數(shù)據(jù)分析總體流程圖
提取電子簡(jiǎn)歷的數(shù)據(jù)主要有兩種方法,一種是基于規(guī)則的提取方法[5],通過(guò)編寫正則表達(dá)式確定規(guī)則進(jìn)行提取,這種方法提取信息的準(zhǔn)確率高,適合簡(jiǎn)歷中的個(gè)人基本信息提??;另一種是基于統(tǒng)計(jì)的提取方法[6],這種方法會(huì)結(jié)合全文的詞語(yǔ)關(guān)系,提取信息的準(zhǔn)確率也較高,適合簡(jiǎn)歷中的實(shí)習(xí)經(jīng)歷、組織及活動(dòng)經(jīng)歷、獲獎(jiǎng)證書(shū)等信息提取。針對(duì)電子簡(jiǎn)歷中不同區(qū)域的數(shù)據(jù)不同,選擇不同的提取方法,作者通過(guò)Python 調(diào)用pandas、numpy、re 等庫(kù)將兩種自然語(yǔ)言抽取方法結(jié)合起來(lái),用于抽取電子簡(jiǎn)歷中的數(shù)據(jù)。
為了建立完善的簡(jiǎn)歷抽取模型,首先需要對(duì)大學(xué)生的簡(jiǎn)歷數(shù)據(jù)類型進(jìn)行分析。通過(guò)查閱相關(guān)資料和審閱大量學(xué)生簡(jiǎn)歷,發(fā)現(xiàn)大學(xué)生簡(jiǎn)歷的內(nèi)容主要有個(gè)人基本信息、教育經(jīng)歷、求職意向、實(shí)習(xí)經(jīng)歷、項(xiàng)目經(jīng)驗(yàn)、組織及活動(dòng)經(jīng)歷、獲獎(jiǎng)證書(shū)和其他信息八個(gè)模塊。如表1 所示,每個(gè)模塊都包含了不同的屬性信息,如個(gè)人基本信息模塊包括學(xué)生姓名、性別、電話、出生日期、畢業(yè)時(shí)間等屬性信息,組織及活動(dòng)經(jīng)歷模塊包括組織名稱、擔(dān)任職務(wù)、時(shí)間、組織活動(dòng)內(nèi)容等屬性信息。分析得出八個(gè)簡(jiǎn)歷模塊中有個(gè)人基本信息、教育經(jīng)歷、獲獎(jiǎng)證書(shū)三個(gè)模塊的規(guī)則性比較強(qiáng),利用基于規(guī)則的數(shù)據(jù)提取方法比較合適,而實(shí)習(xí)經(jīng)歷、組織及活動(dòng)經(jīng)歷、項(xiàng)目經(jīng)驗(yàn)等模塊用基于統(tǒng)計(jì)的數(shù)據(jù)提取方法更合適。
表1 簡(jiǎn)歷模塊和屬性信息定義
在對(duì)簡(jiǎn)歷信息特征進(jìn)行分析后,還需要對(duì)電子簡(jiǎn)歷數(shù)據(jù)信息進(jìn)行預(yù)處理。第一步,利用Python 編寫程序,將電子簡(jiǎn)歷上的數(shù)據(jù)信息轉(zhuǎn)化為文本信息的形式,保存到CSV 文件中,這樣減少了不同簡(jiǎn)歷帶來(lái)的不同格式影響;第二步,利用Python 的pandas 庫(kù)函數(shù)的read_csv 方法讀取CSV 文件信息,導(dǎo)入re 庫(kù)編寫正則表達(dá)式將空格、感嘆號(hào)等標(biāo)點(diǎn)符號(hào)去除;第三步,利用Python 的segment 方法來(lái)實(shí)現(xiàn)NLP 分詞,對(duì)去除了標(biāo)點(diǎn)符號(hào)的文本數(shù)據(jù)進(jìn)行進(jìn)一步處理,這里NLP 分詞還會(huì)同步執(zhí)行命名實(shí)體識(shí)別和詞性標(biāo)注,命名實(shí)體識(shí)別能將文本數(shù)據(jù)中的命名實(shí)體識(shí)別出來(lái),如簡(jiǎn)歷中的專業(yè)、姓名、地址名等,而詞性標(biāo)注可以給句子里的詞語(yǔ)進(jìn)行詞性標(biāo)注;第四步,由于簡(jiǎn)歷文本信息中也會(huì)存在形容詞、助詞等沒(méi)有意義的詞,所以對(duì)其進(jìn)行去停用詞操作是有必要的,作者編寫Python 程序依次遍歷NLP 分詞后的詞語(yǔ),與哈工大停用詞表進(jìn)行比對(duì),如果出現(xiàn)了停用詞則去除。
建立簡(jiǎn)歷信息抽取模型前,還需要對(duì)文本信息進(jìn)行分塊,將同一模塊屬性信息歸為一類,作者使用的是SVM 算法[7],利用Python 編寫程序,從sklearn 機(jī)器學(xué)習(xí)庫(kù)導(dǎo)入SVM 支持向量機(jī)模塊,設(shè)置SVM 分類器中的decision_function_shape 參數(shù)為ovo 實(shí)現(xiàn)一對(duì)一分類,即對(duì)任意兩個(gè)類別之間進(jìn)行劃分,這樣提高分塊的準(zhǔn)確性,最后通過(guò)調(diào)用accuracy_score 方法計(jì)算準(zhǔn)確率。
利用SVM 算法分完塊后,根據(jù)特征分析的結(jié)果,作者采取基于規(guī)則和基于統(tǒng)計(jì)模型相結(jié)合的方法建立簡(jiǎn)歷信息抽取模型。首先,作者將利用正則表達(dá)式構(gòu)建抽取規(guī)則,對(duì)簡(jiǎn)歷模塊中的個(gè)人基本信息、教育經(jīng)歷、獲獎(jiǎng)證書(shū)和求職意向四個(gè)模塊中的屬性信息進(jìn)行提取,如姓名、專業(yè)、學(xué)校和GPA 等屬性。提取完規(guī)則性強(qiáng)的模塊后,作者將利用HMM 算法模型[8]抽取實(shí)習(xí)經(jīng)歷、活動(dòng)經(jīng)歷和項(xiàng)目經(jīng)驗(yàn)等模塊的屬性信息,由于Python 的機(jī)器學(xué)習(xí)庫(kù)里面包含的HMM 算法模型已不能使用,所以作者從hmmlearn 庫(kù)中導(dǎo)入hmm 方法,實(shí)現(xiàn)對(duì)規(guī)則性弱的文本信息的提取,如實(shí)習(xí)經(jīng)歷中的實(shí)習(xí)內(nèi)容、實(shí)習(xí)成果等。
大學(xué)生電子簡(jiǎn)歷信息抽取模型建立后,作者收集300 份大四畢業(yè)生簡(jiǎn)歷用于檢測(cè)模型的準(zhǔn)確率,如圖2所示,簡(jiǎn)歷數(shù)據(jù)抽取準(zhǔn)確率測(cè)試情況,從表中可以看出個(gè)人基本信息和教育經(jīng)歷模塊的平均準(zhǔn)確率、平均召回率和平均F1 值,明顯比實(shí)習(xí)經(jīng)歷的三個(gè)值高,說(shuō)明正則表達(dá)式提取的信息較為準(zhǔn)確,而實(shí)習(xí)經(jīng)歷、組織及活動(dòng)經(jīng)歷等文本信息因?yàn)楹袑?shí)習(xí)內(nèi)容、活動(dòng)內(nèi)容、組織及活動(dòng)取得的成果等復(fù)雜信息,提取的信息準(zhǔn)確率較低,有待改進(jìn)HMM 算法模型。簡(jiǎn)歷數(shù)據(jù)抽取模型中各個(gè)簡(jiǎn)歷模塊的平均準(zhǔn)確率、平均召回率和平均F1 值在80%以上,說(shuō)明模型整體上準(zhǔn)確率較高。
圖2 簡(jiǎn)歷數(shù)據(jù)抽取準(zhǔn)確率測(cè)試情況
大學(xué)生工作推薦模型的建立能給大學(xué)就業(yè)指導(dǎo)相關(guān)教師提供輔助決策,有利于教師更好地因材施教,針對(duì)每個(gè)學(xué)生的特點(diǎn)提出適合該學(xué)生的職業(yè)發(fā)展路線,進(jìn)行全方位的就業(yè)指導(dǎo)。作者通過(guò)簡(jiǎn)歷數(shù)據(jù)抽取模型將學(xué)生簡(jiǎn)歷的數(shù)據(jù)提取到MongoDB 數(shù)據(jù)庫(kù)中,為后續(xù)模型的建立提供數(shù)據(jù)源。
為了讓每份簡(jiǎn)歷數(shù)據(jù)與用人單位匹配,還需要建立用人單位招聘信息庫(kù)。作者利用網(wǎng)絡(luò)爬蟲(chóng)從學(xué)校就業(yè)網(wǎng)站、智聯(lián)招聘等平臺(tái)上爬取企業(yè)招聘信息,主要爬取的字段有公司名、崗位名、薪資待遇、工作內(nèi)容和地點(diǎn)等。經(jīng)研究發(fā)現(xiàn)大多數(shù)網(wǎng)站上的招聘信息都保存在網(wǎng)頁(yè)的json 字符串中,這樣首先通過(guò)調(diào)用Python 的requiests、beautifulsoup4 庫(kù),編寫網(wǎng)絡(luò)爬蟲(chóng)程序提取數(shù)據(jù),再利用json 模塊的loads 方法對(duì)json 字符串進(jìn)行解析。最后將爬取完的數(shù)據(jù)保存至MongoDB 數(shù)據(jù)庫(kù)。
由于傳統(tǒng)的推薦算法并沒(méi)有綜合應(yīng)聘者和崗位之間的關(guān)系,而是單純地用傳統(tǒng)推薦算法導(dǎo)致匹配準(zhǔn)確率很低[9],如有些學(xué)習(xí)成績(jī)一般、項(xiàng)目經(jīng)驗(yàn)少、能力較弱的學(xué)生匹配到工作崗位要求高、實(shí)力強(qiáng)的企業(yè),這樣會(huì)導(dǎo)致學(xué)生投遞簡(jiǎn)歷后,收不到企業(yè)的回復(fù),而造成一定程度上的心理壓力。對(duì)此,作者使用隨機(jī)森林算法[10]構(gòu)建互惠就業(yè)推薦模型,互惠就業(yè)推薦是綜合了學(xué)生和企業(yè)的需求來(lái)進(jìn)行匹配的[11]。
如表2 所示,學(xué)生意向?qū)?yīng)招聘崗位信息的不同屬性值,將學(xué)生滿意度設(shè)置為X1,選擇企業(yè)地點(diǎn)、崗位名稱、企業(yè)類型和崗位薪資水平四個(gè)特征屬性作為學(xué)生滿意度屬性,利用Python 調(diào)用sklearn 機(jī)器學(xué)習(xí)庫(kù)的RandomForestClassifier 方法,利用隨機(jī)森林算法計(jì)算學(xué)生的滿意度,并設(shè)置權(quán)重為W1。同理,作者選取政治面貌、學(xué)歷、專業(yè)和薪資水平作為企業(yè)滿意度屬性,設(shè)置為X2,利用隨機(jī)森林算法計(jì)算出X2值,設(shè)置權(quán)重為W2??倽M意度X 的計(jì)算公式為:
表2 招聘崗位信息和學(xué)生意向?qū)傩灾祵?duì)應(yīng)圖
計(jì)算完一份簡(jiǎn)歷數(shù)據(jù)與一條招聘信息的X 值后,作者編寫for 循環(huán)遍歷每條招聘信息,計(jì)算出該份簡(jiǎn)歷與每條招聘信息的X 值,再將X 值從大到小排列后輸出前五個(gè)值,這五條招聘信息更適合這份簡(jiǎn)歷的學(xué)生。通過(guò)觀察發(fā)現(xiàn)匹配度高的幾條招聘信息都有共同的特征,如求職意向?yàn)殡姎夤こ處?、意向工作地點(diǎn)為浙江、意向工作性質(zhì)為民營(yíng)企業(yè)、意向薪資區(qū)間為4K-7K 的學(xué)生匹配出的五條招聘信息都是浙江當(dāng)?shù)仉姎忸惖拿?,招聘崗位、薪資待遇都比較符合學(xué)生簡(jiǎn)歷所寫。
基于隨機(jī)森林算法的互惠就業(yè)推薦模型建立后,還需要進(jìn)行測(cè)試評(píng)估。作者通過(guò)計(jì)算MAE 平均絕對(duì)誤差,RMSE 方均根誤差來(lái)評(píng)估推薦模型的準(zhǔn)確率[12]。為了進(jìn)行對(duì)比,作者用傳統(tǒng)推薦算法實(shí)現(xiàn)了基于內(nèi)容的推薦就業(yè)模型。在數(shù)據(jù)方面,由于目前沒(méi)有標(biāo)準(zhǔn)的簡(jiǎn)歷推薦數(shù)據(jù)集,因此作者針對(duì)200 名大四學(xué)生做了問(wèn)卷調(diào)查,收集簡(jiǎn)歷電子版和投遞的崗位信息,以這些數(shù)據(jù)信息作為實(shí)驗(yàn)數(shù)據(jù)集,其中160 份數(shù)據(jù)作為訓(xùn)練集,40 份作為測(cè)試集。
運(yùn)行簡(jiǎn)歷數(shù)據(jù)抽取模型提取簡(jiǎn)歷數(shù)據(jù)到MongoDB數(shù)據(jù)庫(kù)Data1 中,編寫程序從Data1 庫(kù)中讀取電子簡(jiǎn)歷訓(xùn)練集數(shù)據(jù),再運(yùn)行基于隨機(jī)森林算法的互惠就業(yè)推薦模型和傳統(tǒng)推薦算法模型,兩個(gè)模型訓(xùn)練完成后,使用測(cè)試集數(shù)據(jù)分別進(jìn)行測(cè)試,并計(jì)算MAE 平均絕對(duì)誤差值和RMSE 方均根誤差值。如圖3 所示,從圖中可以明顯看出互惠就業(yè)推薦模型和傳統(tǒng)推薦模型的MAE 值都是先下降后上升最后趨于穩(wěn)定狀態(tài)的,而經(jīng)過(guò)實(shí)驗(yàn)兩種模型的RMSE 值趨勢(shì)也和MAE 值一樣,并且互惠就業(yè)推薦模型的RMSE 值更低,相比傳統(tǒng)推薦模型有一定的優(yōu)勢(shì)。
圖3 MAE 值對(duì)比折線圖
在本文中,作者建立了簡(jiǎn)歷數(shù)據(jù)抽取模型,能夠快速地提取學(xué)生的電子簡(jiǎn)歷數(shù)據(jù),并以結(jié)構(gòu)化的形式保存在數(shù)據(jù)庫(kù)中,為教師查閱簡(jiǎn)歷節(jié)省了大量時(shí)間,教師能清晰地看到每個(gè)學(xué)生的簡(jiǎn)歷關(guān)鍵點(diǎn),有更多的時(shí)間用來(lái)指導(dǎo)學(xué)生就業(yè)。而后續(xù)作者建立的基于隨機(jī)森林算法的互惠就業(yè)推薦模型能有效地為學(xué)生提供合適的就業(yè)方向。兩種模型結(jié)合使用,能讓教師更全面地了解學(xué)生就業(yè)需求,有針對(duì)性地進(jìn)行就業(yè)指導(dǎo)。