關(guān)于 簡歷解析 的點(diǎn)滴 - 來自小析簡歷解析首席數(shù)據(jù)科學(xué)家

在當(dāng)前求職布告軟件和社交招聘盛行的環(huán)境下,每個空缺職位可能有數(shù)以百計(jì)的申請。企業(yè)需要對大量簡歷進(jìn)行評估。從而挑選正確的簡歷/履歷是所有公司的一項(xiàng)關(guān)鍵招聘業(yè)務(wù)決策。如果出現(xiàn)錯誤的候選人信息或者時間過久可能意味著將會錯過合格的求職者,不相匹配的求職者,或者變得缺乏競爭力。

至于簡歷解析到底是做什么的,具體的我就不太多說了??傮w來說,是對非結(jié)構(gòu)化的簡歷文本實(shí)現(xiàn)準(zhǔn)確、高效的關(guān)鍵信息抽取,自動識別簡歷中個人的基本信息、工作經(jīng)驗(yàn)、教育經(jīng)歷等內(nèi)容,實(shí)現(xiàn)簡歷的結(jié)構(gòu)化處理,降低人力整理的成本,簡化用戶錄入簡歷過程,提升人力資源管理軟件與求職網(wǎng)站的核心競爭性。

我們最近也研發(fā)了自己的產(chǎn)品,做了一些市場調(diào)研,將一些就我們自己的產(chǎn)品思路和搭建理念想和大家分享下,畢竟現(xiàn)在這個需求也越來越大,可是HR或者人力市場貌似并不是很了解這是怎么一個東西:

首先我想說,簡歷解析的技術(shù)壁壘可以說是低,任意幾個程序員就能做到,也可以說非常高,因?yàn)橐龅綕M意的結(jié)果非常難。 簡歷解析系統(tǒng)可以作為一個計(jì)算機(jī)本科生的畢業(yè)設(shè)計(jì),也可以是幾個教授幾年的心血。

在討論不同簡歷解析系統(tǒng)的設(shè)計(jì)前,我先說一下解析的大概思路

對于一個簡單的版本,可以這樣做:

1. 使用網(wǎng)上任意的庫 - 例如很多庫都能起到pdf,word 等格式轉(zhuǎn)txt的結(jié)果

但是對于每種情況,最優(yōu)的庫經(jīng)常是不一樣的,如果我們打算用一兩個庫處理所有的格式,我們將會得到完全無法. 這里文本的轉(zhuǎn)化嚴(yán)重關(guān)系的之后解析的結(jié)果

2. 設(shè)置很多關(guān)鍵詞 - 例如人眼看了很多簡歷以后,尋找關(guān)鍵詞,如教育背景,學(xué)習(xí)經(jīng)歷,學(xué)生經(jīng)歷等。 然后設(shè)置規(guī)則,靠關(guān)鍵詞提取。

但這種看似合理的方法有一些不太好的地方,例如沒有關(guān)鍵詞,關(guān)鍵詞打錯字,關(guān)鍵詞沒有在詞庫里,更常見的是用了網(wǎng)上的模版,如智聯(lián)招聘,單相關(guān)內(nèi)容填錯了,例如工作經(jīng)歷填寫到了項(xiàng)目經(jīng)歷里面了。這些都是無法解決的

3. 使用關(guān)鍵行來對大段進(jìn)行劃分 - 例如在工作經(jīng)歷中,寫出時間,公司名,部門名的規(guī)則表達(dá)式,來判斷一行是否屬于該屬性 。 然后再寫一大堆規(guī)則來利用這些信息把大段分為多個小段

但是1:很多公司不是有標(biāo)準(zhǔn)后綴的,例如騰訊科技,網(wǎng)易云音樂等 。2:并不是所有公司名都是表達(dá)公司名,例如在阿里巴巴做市場營銷工作期間談到百度做為客戶,百度這個詞就出現(xiàn)了。是否能說明是公司名字呢還是經(jīng)歷? 3:即使你成功預(yù)測到了公司名,時間和職位順序也非常影響劃分,假如利用時間進(jìn)行切割時, 上一段的公司名就很容易分到了這一段的時間里。

4.使用規(guī)則來進(jìn)行分割

但是當(dāng)面對一個正確的工作經(jīng)歷小段文本時, 假如里面并沒有識別到公司名,或有多個公司名時,這些通過規(guī)則都是非常難解決的。

大體思路和做法

小伙伴可能會想,那怎么做?其實(shí)我也不知道。首先我又要說,簡歷解析這個東西,不存在好和不好,只是怎么做到最優(yōu)。就像一幅畫,問我怎么畫出一張漂亮的畫或?qū)懗鲆皇讋尤说脑?,我也不知道。這里,我只能分享給大家一些我們當(dāng)時的大體思路和做法:

1. 學(xué)習(xí)不同庫,了解思路-學(xué)習(xí)并了解對于每種格式,如何處理會得到最優(yōu)的txt文本,特別對于一些花樣比較特殊的的簡歷格式,學(xué)習(xí)思考如何能夠得到最優(yōu)的轉(zhuǎn)化結(jié)果.

這里我舉個我們當(dāng)時的例子:當(dāng)時我們看大多數(shù)的庫都是從上至下來讀文本的,所以一旦一份簡歷的卷寫格式是從左到右的,那就會很麻煩。我們花了很多時間去學(xué)習(xí)如何不按照閱讀順序來讀簡歷

2. 當(dāng)結(jié)構(gòu)能得到保持后,需要設(shè)計(jì)算法 - 使得無論關(guān)鍵詞是否出現(xiàn),也要正確劃分每個模塊。

在討論人工智能之前,我們想想人類是如何做到這個結(jié)果的,大腦中,當(dāng)你想提取教育經(jīng)歷的內(nèi)容時,你會一行行往下讀,直到你認(rèn)為這部分以下都是討論教育的經(jīng)歷了為止。所以人類起始并不是去找他這個關(guān)鍵詞,更重要的是語言上的理解,即使不需要關(guān)鍵詞,人也能夠識別出來。這個問題在機(jī)器學(xué)習(xí)里叫做序列預(yù)測問題。如大學(xué)這個詞經(jīng)常會出現(xiàn)在教育經(jīng)歷,工資這個詞經(jīng)常出現(xiàn)在工作經(jīng)歷等,結(jié)合模塊間的跳轉(zhuǎn)概率, 如教育經(jīng)歷經(jīng)常跳轉(zhuǎn)到工作經(jīng)歷,但反過來概率很小,如技能總是放在最后等。在這里,盡量不要人手設(shè)定任何規(guī)則,全讓大數(shù)據(jù)說話,讓數(shù)據(jù)顯示規(guī)則, 讓數(shù)據(jù)顯示模式,效果會更好

3.在得到準(zhǔn)確的劃分之后,對每個模塊進(jìn)行模仿解析 - 再次回想人類潛意識會如何閱讀小段

對于算法,需要考慮的有幾個方面的特征,如上下文特征,這一行表達(dá)了什么,上一個段落信息是否已經(jīng)齊全,如果從這一行開始一個段落,在此行之后能得到一個完整的段落嗎, 等等。 要充分能夠利用上下文的信息,如上個劃分點(diǎn)到目前行信息是否齊全,本行是否有起始行的特征, 本行以后是否有足夠的信息建等等。

4.得到模塊解析之后,如何提取關(guān)鍵的信息成為關(guān)鍵 -機(jī)器學(xué)習(xí)中,這是一個典型的問題

比如給定一行文本,是公司名?時間?部門?還是描述。此處可能需要大量各種來源的樣本,對文本進(jìn)行準(zhǔn)確理解及分類。? 比如如果第一段經(jīng)歷中是先時間后公司,第二段是先公司后時間,跟進(jìn)時間來切割的就會出現(xiàn)錯位。所以需要大量簡歷樣本的支持,而不是人為提取的經(jīng)驗(yàn)規(guī)則

如果你讀到這里,請先收下我的謝謝,感謝你的時間及興趣。同時也很希望這一點(diǎn)點(diǎn)的信息可以幫助開發(fā)的小伙伴得到一絲不一向的啟發(fā),給人力行業(yè)內(nèi)的小伙伴一絲不同角度的理解。

再次謝謝大家,也期待得到大家的討論,想法,看法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容