文益民, 楊 鵬, 文博奚, 蔡 翔
(1.桂林電子科技大學(xué) 廣西可信軟件重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004;2.桂林電子科技大學(xué) 廣西圖像圖形智能處理重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004;3.桂林電子科技大學(xué) 商學(xué)院,廣西 桂林 541004)
近年來,隨著我國高等教育的迅猛發(fā)展,大學(xué)畢業(yè)生日益增多。盡管就業(yè)崗位的數(shù)量也在不斷增加,但中國勞動(dòng)力市場(chǎng)的供需失配的結(jié)構(gòu)性問題依然非常嚴(yán)重。根據(jù)《中國勞動(dòng)力市場(chǎng)技能缺口研究》報(bào)告,僅2016年中國就有超過1 200萬的本科和高職專科畢業(yè)生。雖然中國擁有如此龐大的勞動(dòng)力供應(yīng),但許多企業(yè)仍然很難招聘到合適的人才。因此,如何準(zhǔn)確地了解企業(yè)需求,提高人才培養(yǎng)針對(duì)性是當(dāng)務(wù)之急。隨著互聯(lián)網(wǎng)的普及,網(wǎng)絡(luò)招聘成為企業(yè)招聘人才的主流方式。招聘信息中含有企業(yè)對(duì)所招崗位專業(yè)能力的具體描述,反映了企業(yè)的需求。對(duì)網(wǎng)絡(luò)招聘數(shù)據(jù)進(jìn)行分析,以提取工作崗位要求中的專業(yè)能力需求,可以解決這一難題。如今,一些研究嘗試?yán)镁W(wǎng)絡(luò)招聘信息分析企業(yè)招聘崗位對(duì)專業(yè)能力的需求。在國外,Kim等[1]通過對(duì)數(shù)據(jù)科學(xué)家崗位的招聘信息進(jìn)行人工分析,總結(jié)出企業(yè)對(duì)數(shù)據(jù)科學(xué)家這個(gè)崗位所需的專業(yè)能力以及學(xué)歷等各方面的要求。De等[2]對(duì)2 700條大數(shù)據(jù)相關(guān)崗位信息進(jìn)行分析,結(jié)合專家判斷,將大數(shù)據(jù)相關(guān)崗位劃分為4個(gè)崗位簇,并對(duì)每個(gè)崗位簇所需的技能進(jìn)行評(píng)估。在國內(nèi),黃崑等[3]從智聯(lián)招聘網(wǎng)站上收集了2 615份有關(guān)數(shù)據(jù)分析、數(shù)據(jù)管理和數(shù)據(jù)挖掘崗位的招聘信息,從崗位基本信息、崗位職責(zé)、任職要求3個(gè)角度分析了這些崗位所招聘人才需要掌握的知識(shí)和能力要求,并對(duì)圖書館情報(bào)學(xué)科人才培養(yǎng)方案提出建議。
然而,網(wǎng)絡(luò)招聘信息往往為非結(jié)構(gòu)化文本,自動(dòng)、準(zhǔn)確地從招聘文本中抽取技能詞并非易事。為簡潔起見,將崗位對(duì)所需人才的專業(yè)知識(shí)和專業(yè)能力的要求稱為技能詞。技能詞可以看成是特定專業(yè)領(lǐng)域內(nèi)的命名實(shí)體[4]或者術(shù)語[5]。
因此,網(wǎng)絡(luò)招聘文本技能詞的抽取任務(wù)可以借鑒命名實(shí)體識(shí)別或者術(shù)語抽取的方法。但是,通過對(duì)網(wǎng)絡(luò)招聘文本中技能詞的分析,可看出技能詞抽取與命名實(shí)體識(shí)別和術(shù)語抽取相比,具有其自身的特殊性與復(fù)雜性。具體表現(xiàn)在:1)部分技能詞類似于術(shù)語,用于表達(dá)各專業(yè)領(lǐng)域的特殊概念,僅僅在該領(lǐng)域特定上下文中才表示為技能詞,如“操作系統(tǒng)”“自然語言處理”“機(jī)器學(xué)習(xí)”等。2)部分技能詞具有與命名實(shí)體相似的特點(diǎn),是文本中具有很強(qiáng)特定意義的實(shí)體,并且不受上下文影響,在任何場(chǎng)景下出現(xiàn)都表示為技能詞,如“Java”“Linux”“算法”等。3)技能詞不同于一般的命名實(shí)體(人名、地名、機(jī)構(gòu)名等),沒有明確的關(guān)于技能詞的定義,不能清晰地界定技能詞的邊界,并且技能詞形式多變,表現(xiàn)在長度、組成模式等方面,如“C#”“數(shù)據(jù)庫/表結(jié)構(gòu)索引設(shè)計(jì)”,還有類似于“Deep Learning框架”和“Neo4j”等中英文混合、數(shù)字英文混合詞語等形式。4)大量技能詞在表述時(shí)多采用英譯詞或英文縮寫,如“J2EE”和“JavaEE”等。5)已有詞表或者技能詞圖譜不足以涵蓋全部技能詞,而且隨著技術(shù)的不斷進(jìn)步,新的技能詞會(huì)不斷出現(xiàn),如“聯(lián)邦學(xué)習(xí)”“膠囊網(wǎng)絡(luò)”等。6)技能詞存在嵌套形式,如“Linux操作系統(tǒng)”,其中“Linux”和“操作系統(tǒng)”又分別作為技能詞出現(xiàn)。此外,不同于正式文本,招聘信息通常很不規(guī)范,常常包含許多拼寫錯(cuò)誤的技能詞,如將“Excel” 錯(cuò)拼為“Excle”,“Linux”錯(cuò)拼為“Liunx”等。如果直接按照詞頻進(jìn)行精確匹配,將不能識(shí)別拼寫錯(cuò)誤的技能詞,從而影響技能詞抽取的準(zhǔn)確率。目前,雖然命名實(shí)體識(shí)別的相關(guān)工作很多,但重點(diǎn)都是在正式文本中識(shí)別人名、地名和機(jī)構(gòu)名,而術(shù)語抽取的相關(guān)工作主要針對(duì)特定領(lǐng)域內(nèi)的術(shù)語識(shí)別,缺乏通用性和可移植性。由此可見,從招聘文本中抽取技能詞仍然是一項(xiàng)頗為艱巨的任務(wù)。
選取IT類網(wǎng)絡(luò)招聘數(shù)據(jù)作為研究對(duì)象,分析了技能詞的特點(diǎn),制定了相應(yīng)的標(biāo)注規(guī)則,對(duì)從招聘網(wǎng)站上獲取的招聘語料預(yù)處理后進(jìn)行人工標(biāo)注,將技能詞抽取任務(wù)轉(zhuǎn)化為序列標(biāo)注問題,充分挖掘招聘語料的各類型特征,并分析了各類語料特征對(duì)技能詞抽取結(jié)果所起的作用。
本研究的主要貢獻(xiàn)包括4個(gè)方面:
1) 提出了一種基于深度學(xué)習(xí)的序列標(biāo)注模型與語料特征相結(jié)合的網(wǎng)絡(luò)招聘文本中的技能詞抽取方法;
2) 與經(jīng)典的序列標(biāo)注模型相比,本模型引入了更多的語料特征,并將輸入層的輸出與Bi-LSTM輸出連接在一起作為CRF層的輸入,模型的性能得到了極大提高;
3) 通過實(shí)驗(yàn)評(píng)估了本模型中加入的語料特征是否能夠緩解模型對(duì)大量標(biāo)注數(shù)據(jù)的依賴;
4) 進(jìn)行了大量實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明,本模型能夠從網(wǎng)絡(luò)招聘文本中自動(dòng)、準(zhǔn)確地抽取技能詞。
本研究將技能詞抽取任務(wù)轉(zhuǎn)化為序列標(biāo)注問題,類似于命名實(shí)體識(shí)別和術(shù)語抽取。因此,回顧與技能詞抽取密切相關(guān)的研究,這些相關(guān)研究工作包括不同種類技術(shù)的命名實(shí)體識(shí)別和術(shù)語抽取方法。
命名實(shí)體識(shí)別是自然語言處理中一項(xiàng)基本任務(wù),旨在識(shí)別特殊實(shí)體并將其分類為預(yù)定義類別的任務(wù),例如產(chǎn)品名稱、旅游景點(diǎn)名稱、新聞?lì)I(lǐng)域的人名或生物醫(yī)學(xué)領(lǐng)域的疾病名稱[4]。術(shù)語抽取也是自然語言處理中一項(xiàng)基礎(chǔ)任務(wù),指從文本中自動(dòng)發(fā)現(xiàn)術(shù)語的過程[4],它可以應(yīng)用于信息檢索、關(guān)系抽取、對(duì)話生成等復(fù)雜任務(wù)領(lǐng)域。隨著信息技術(shù)的不斷發(fā)展,各領(lǐng)域數(shù)據(jù)不斷擴(kuò)張,產(chǎn)生大量的領(lǐng)域術(shù)語。這些領(lǐng)域術(shù)語在該領(lǐng)域中具有很強(qiáng)的特定意義,是構(gòu)成該領(lǐng)域?qū)I(yè)文本的信息主體[5]。與術(shù)語識(shí)別類似,命名實(shí)體識(shí)別也是從一段自然語言文本中識(shí)別特定類型的實(shí)體。因此,命名實(shí)體識(shí)別也逐漸由識(shí)別通用對(duì)象轉(zhuǎn)向識(shí)別特定領(lǐng)域術(shù)語,特定領(lǐng)域術(shù)語抽取也逐漸采用命名識(shí)別中的方法。另外,從本質(zhì)上講,如果僅僅抽取文本中術(shù)語的名稱或簡稱,不標(biāo)注術(shù)語的具體表述或評(píng)價(jià),術(shù)語抽取可被視為一類命名實(shí)體識(shí)別[6]。當(dāng)前,用于命名實(shí)體識(shí)別和術(shù)語抽取的方法可簡單地分為傳統(tǒng)方法和基于深度學(xué)習(xí)的方法。
傳統(tǒng)方法大致可分為3類:基于規(guī)則、無監(jiān)督學(xué)習(xí)和基于特征的監(jiān)督學(xué)習(xí)方法。基于規(guī)則的命名實(shí)體識(shí)別方法依賴于人工制定的規(guī)則,而規(guī)則的設(shè)計(jì)一般是基于句法、語法、詞匯的模式以及特定的領(lǐng)域知識(shí)等。例如可通過結(jié)合中文姓氏詞典與詞性特征來識(shí)別中文人名“張三”[7]。同樣,基于規(guī)則的術(shù)語抽取方法也是主要通過分析語料,制定術(shù)語抽取規(guī)則。這些規(guī)則的制定依賴于領(lǐng)域知識(shí),需要人工編制,很大程度上受限于人所具有的知識(shí)。Chen等[8]根據(jù)上下文信息和術(shù)語組成規(guī)則來實(shí)現(xiàn)術(shù)語抽取。由于不同領(lǐng)域的命名實(shí)體和術(shù)語組成方面有所差異,具有不同的特征,需要構(gòu)建各式各樣的規(guī)則,因此這類方法移植性很差。無監(jiān)督學(xué)習(xí)的命名實(shí)體方法利用上下文語義相似性,從聚集的詞組中提取命名實(shí)體。Zhang等[9]提出了一種借助語料庫統(tǒng)計(jì)信息(例如逆文檔頻率和上下文向量)和淺層語法知識(shí)(例如名詞短語分塊)來推斷命名實(shí)體?;跓o監(jiān)督學(xué)習(xí)的術(shù)語抽取方法通常先從語料庫中選取候選術(shù)語,然后利用統(tǒng)計(jì)信息(例如使用詞頻和詞長度、互信息等)計(jì)算候選術(shù)語成為術(shù)語的可能性。Pantel等[10]提出了一種基于語料庫統(tǒng)計(jì)的術(shù)語抽取方法,通過計(jì)算2個(gè)詞語或2個(gè)詞語組成的詞串之間的互信息和似然比相結(jié)合的方法,對(duì)候選術(shù)語進(jìn)行評(píng)分,從而實(shí)現(xiàn)對(duì)術(shù)語的抽取。這類方法不僅依賴中文分詞的準(zhǔn)確性,而且存在無法識(shí)別低頻命名實(shí)體和術(shù)語的缺陷?;谔卣鞯挠斜O(jiān)督學(xué)習(xí)方法是目前常用的方法,利用監(jiān)督學(xué)習(xí)將命名實(shí)體識(shí)別和術(shù)語抽取任務(wù)轉(zhuǎn)化為序列標(biāo)注問題。根據(jù)標(biāo)注好的數(shù)據(jù),研究者應(yīng)用領(lǐng)域知識(shí)與工程技巧設(shè)計(jì)復(fù)雜的特征(如單詞特征、上下文特征、詞典及詞性特征等)來表征每個(gè)訓(xùn)練樣本,然后應(yīng)用機(jī)器學(xué)習(xí)方法(如支持向量機(jī)[11-12](support vector machine,簡稱SVM),隱馬爾科夫模型[13-14](hidden Markov model,簡稱HMM),條件隨機(jī)場(chǎng)[15-16](conditional random field,簡稱CRF)等訓(xùn)練模型對(duì)詞語進(jìn)行分類。這類方法需要精細(xì)的人工特征以及大量的領(lǐng)域知識(shí),很難識(shí)別新的較長的組合型命名實(shí)體和術(shù)語。
近年來,深度神經(jīng)網(wǎng)絡(luò)已成為有效提取命名實(shí)體或術(shù)語潛在特征的主流方法。標(biāo)準(zhǔn)的做法是運(yùn)用不同的神經(jīng)網(wǎng)絡(luò)模型(卷積神經(jīng)網(wǎng)絡(luò),convolutional neural networks,簡稱CNN;長期短期記憶,long short term memory,簡稱LSTM)提取不同類型的表示形式(字符級(jí)或單詞級(jí)),將學(xué)習(xí)到的特征表示饋入頂部的CRF層中以進(jìn)行序列標(biāo)簽預(yù)測(cè),從而實(shí)現(xiàn)命名實(shí)體識(shí)別或術(shù)語抽取。Collobert等[17]利用CNN網(wǎng)絡(luò)學(xué)習(xí)單詞級(jí)特征表示,將學(xué)習(xí)到的特征表示饋入CRF進(jìn)行序列標(biāo)簽預(yù)測(cè)。Lample等[18]利用Bi-LSTM網(wǎng)絡(luò)結(jié)構(gòu)提取字符的上下文潛在特征表示,并利用CRF層進(jìn)行標(biāo)簽解碼。Huang等[19]提出了一個(gè)與LSTM-CRF類似的模型,但是加入了人工構(gòu)造的特征(例如,單詞是否以大寫字母開頭,字母的前綴和后綴等)。首先通過Bi-LSTM網(wǎng)絡(luò)提取了字符的上下文潛在特征表示,然后將其與人工構(gòu)造特征相連接,最后將其輸入到CRF層中。CNN-CRF模型與LSTM-CRF(bidirectional long short term memory-conditional random field)模型的區(qū)別在于,CNN網(wǎng)絡(luò)對(duì)提取詞的形態(tài)信息(例如詞的前綴和后綴)非常有效,主要適用于英文處理,英文單詞是由更細(xì)粒度的字母組成,這些字母潛藏著一些特征,而中文單字無法分解,在中文中可能并不適用。但CNN網(wǎng)絡(luò)在長序列輸入上特征提取能力弱,而LSTM提供了長距離的依賴,擁有較強(qiáng)的長序列特征提取能力。因此,有研究者為了充分利用這2個(gè)模型的優(yōu)點(diǎn),將兩者結(jié)合。Ma[20]提出了Bi-directional LSTM-CNNs-CRF網(wǎng)絡(luò)架構(gòu)。在該架構(gòu)中,CNN網(wǎng)絡(luò)首先用于提取單詞的字符級(jí)特征表示,將CNN網(wǎng)絡(luò)提取出的字符級(jí)特征表示與預(yù)訓(xùn)練的詞嵌入連接起來,然后再饋入LSTM網(wǎng)絡(luò)以提取單詞級(jí)的上下文潛在特征表示,最后進(jìn)入CRF層進(jìn)行標(biāo)簽解碼。這些基于神經(jīng)網(wǎng)絡(luò)的方法不需要特定于任務(wù)的特征工程,便可獲得良好的性能。
深度學(xué)習(xí)也逐漸應(yīng)用在術(shù)語抽取研究工作中。閆興龍等[21]提出了一種基于帶條件隨機(jī)場(chǎng)的雙向長期短期記憶(Bi-LSTM-CRF)的新型網(wǎng)絡(luò)安全實(shí)體識(shí)別模型,以從非結(jié)構(gòu)化文本中提取與安全相關(guān)的概念和實(shí)體。趙東玥等[22]同樣采用了Bi-LSTM模型對(duì)科技文獻(xiàn)進(jìn)行術(shù)語抽取。趙洪等[23]以Bi-LSTM-CRF模型為基礎(chǔ)框架,融入了理論術(shù)語的語料特征(例如理論術(shù)語的尾詞特征、術(shù)語的構(gòu)詞特征等),構(gòu)建了基于深度學(xué)習(xí)的理論術(shù)語抽取模型,并提出一種自訓(xùn)練算法,以實(shí)現(xiàn)模型的弱監(jiān)督學(xué)習(xí)。
另外,目前針對(duì)中文技能詞提取的研究工作非常少。俞琰等[24]從前途無憂招聘網(wǎng)站中抓取了10 000條計(jì)算機(jī)領(lǐng)域和30 000條非計(jì)算機(jī)領(lǐng)域的招聘信息,利用依存句法分析從計(jì)算機(jī)領(lǐng)域的招聘信息中選取候選技能,再利用非計(jì)算機(jī)領(lǐng)域的招聘信息計(jì)算候選技能中每個(gè)詞的領(lǐng)域相關(guān)性并與候選技能的詞頻、詞長等統(tǒng)計(jì)信息相結(jié)合得出融合領(lǐng)域相關(guān)性的C-value值,按值降序排列。最終選取前N個(gè)候選技能信息作為被抽取的技能詞進(jìn)行人工判定是否正確。
鑒于深度學(xué)習(xí)模型在序列標(biāo)注問題上的優(yōu)異性能,擬將深度學(xué)習(xí)方法應(yīng)用于技能詞抽取,并根據(jù)技能詞的特點(diǎn),充分挖掘語料的各類型特征與深度學(xué)習(xí)方法相結(jié)合,構(gòu)建面向招聘領(lǐng)域的技能詞抽取模型。由于是首次開展基于深度學(xué)習(xí)抽取技能詞的研究,采用Bi-LSTM-CRF模型[15]作為本研究技能詞抽取模型的基礎(chǔ)框架。但與之相比,文獻(xiàn)[15]針對(duì)英文正式文本的命名實(shí)體識(shí)別,而本研究的工作是針對(duì)中文招聘文本的技能詞抽取屬于非正式文本,具有更強(qiáng)的干擾性。此外,在輸入層中加入語料特征,并將輸入層的輸出與Bi-LSTM層的輸出相連接作為CRF層的輸入。而文獻(xiàn)[15]并未將人工構(gòu)造的特征經(jīng)過輸入層和Bi-LSTM層,而是直接連接到Bi-LSTM的輸出。趙洪等[23]的工作與本研究最為相似,同樣采用Bi-LSTM-CRF模型[15]作為基礎(chǔ)框架。但不同之處在于,本研究是針對(duì)招聘領(lǐng)域的技能詞抽取,輸入層中加入的語料特征的選取更多的是考慮到結(jié)合與技能詞所相關(guān)的特性,所構(gòu)造的是基于字符級(jí)的語料特征。文獻(xiàn)[23]所選取的理論術(shù)語的語料特征更多是從術(shù)語的構(gòu)詞特征考慮,并且基于詞語級(jí)的特征。此外,在進(jìn)入CRF層前,還要將輸入層的輸出與Bi-LSTM層的輸出進(jìn)行拼接以更好地提升模型的預(yù)測(cè)性能。俞琰等[24]針對(duì)網(wǎng)絡(luò)招聘數(shù)據(jù)的技能詞抽取,但采用的是無監(jiān)督學(xué)習(xí)方法,需要利用詞頻、詞長等統(tǒng)計(jì)信息來抽取技能詞,并且還需要依靠人工判定抽取出的技能詞是否準(zhǔn)確。而本研究是采用有監(jiān)督學(xué)習(xí)方法,通過學(xué)習(xí)訓(xùn)練文本特征,構(gòu)造模型來抽取技能詞,能夠彌補(bǔ)無監(jiān)督學(xué)習(xí)方法無法識(shí)別低頻技能詞的缺陷。
提出的技能詞抽取模型如圖1所示。模型由4個(gè)層次的模塊組成,即輸入層、Bi-LSTM層、特征拼接層和CRF層。在輸入層中,將每個(gè)輸入語句轉(zhuǎn)換為一系列字符特征向量,再與輸入語句中各個(gè)字符的位置特征(Seg)、輸入語句分詞后的詞性特征(Pos)和技能詞的上下文特征(Con)進(jìn)行拼接,將其輸入到Bi-LSTM層中,以將上下文信息順序編碼為固定長度的隱藏向量,接著在特征拼接層中將輸入層的輸出與Bi-LSTM層的輸出連接在一起,作為CRF層的輸入。最后由CRF層預(yù)測(cè)出最佳標(biāo)簽序列作為整個(gè)網(wǎng)絡(luò)的輸出。
圖1 基于深度學(xué)習(xí)的技能詞抽取模型
在輸入層中分為2個(gè)步驟。1)將輸入語句轉(zhuǎn)換為字符級(jí)密集向量序列。先生成包含語料庫中所有字符的字典,再用一個(gè)嵌入矩陣M∈RD×V將每個(gè)字符映射為一個(gè)密集矢量,其中D為嵌入向量維度,V為字典中所有字符的總量。輸入句子表示為S=[w1,w2,…,wn],其中n是句子的長度,wi∈RV是輸入語句中第i個(gè)字符在字典中的one-hot表示。句子的字符嵌入向量表示為[c1,c2,…,cn],其中ci∈RD。
2)加入網(wǎng)絡(luò)招聘信息中字符的各類語料特征,與字符嵌入向量拼接。語料特征主要由3種特征構(gòu)成:位置特征(Seg)、詞性特征(Pos)和上下文特征(Con)。
位置特征(Seg)是指對(duì)輸入句子進(jìn)行jieba分詞后,每個(gè)字符與所在詞語的相對(duì)位置。如“操作系統(tǒng)”是分詞后得到的詞,那么“操”的位置特征標(biāo)記為“0”,“作”的位置特征標(biāo)記為“1”,“系”的位置特征標(biāo)記為“2”,“統(tǒng)”的位置特征標(biāo)記為“3”。詞性特征(Pos)是指將輸入語句進(jìn)行jieba分詞后將每個(gè)字符的詞性標(biāo)記為所在詞語所對(duì)應(yīng)的詞性。如“具備”的詞性為“動(dòng)詞”,則“具”“備”的詞性都記為“動(dòng)詞”。根據(jù)術(shù)語特性可知,有些詞只在本領(lǐng)域流通。而本模型所抽取的技能詞大多都屬于特定領(lǐng)域,因此可考慮在技能詞抽取時(shí)加入詞語的位置特征。同樣,通過對(duì)技能詞的分析可知,雖然技能詞的構(gòu)成模式有很多種,但是大部分是名詞性短語,可見詞性對(duì)于技能詞識(shí)別是另一個(gè)重要的特征。
上下文特征(Con)是根據(jù)技能詞的上下文特點(diǎn)構(gòu)造的特征。首先,通過分析招聘語料庫,隨機(jī)抽取了1 000多條網(wǎng)絡(luò)招聘文本后發(fā)現(xiàn):包含技能詞的文本通常為動(dòng)賓結(jié)構(gòu),且技能詞大多數(shù)為“名詞/名詞性短語”,如“熟悉關(guān)系型數(shù)據(jù)庫”。技能詞在句子中的位置主要位于動(dòng)詞、形容詞/形容詞短語或“和”“或”以及“、”等之后。例如“了解自然語言處理”“常用的機(jī)器學(xué)習(xí)算法”“掌握文本挖掘、實(shí)體抽取、詞性標(biāo)注等技術(shù)”。表1統(tǒng)計(jì)了網(wǎng)絡(luò)招聘語料中技能詞出現(xiàn)的位置。通過分析技能詞出現(xiàn)的下文可發(fā)現(xiàn),其下文使用了較多的習(xí)慣語,如“掌握XX能力”和“具有XX經(jīng)驗(yàn)”等。
因此,在標(biāo)注上下文特征時(shí),首先將輸入語句進(jìn)行jieba分詞,提取每個(gè)詞的詞性,然后依據(jù)如下規(guī)則進(jìn)行標(biāo)注。
表1 網(wǎng)絡(luò)招聘語料中技能詞出現(xiàn)的位置
1)若“動(dòng)詞”之后出現(xiàn)“名詞”,則將該“動(dòng)詞”詞語組成的字符都標(biāo)注為“1”,該“名詞”詞語組成的字符都標(biāo)注為“0”。如“掌握”之后出現(xiàn)“名詞”,則“掌”和“握”都標(biāo)注為“1”。
2)若“動(dòng)詞”之后出現(xiàn)其他詞性詞語,則將該“動(dòng)詞”和其他詞性詞語組成的字符都標(biāo)注為“0”。
3)若“形容詞/形容詞短語”之后出現(xiàn)“名詞”,則將該“形容詞/形容詞短語”詞語組成的字符都標(biāo)注為“2”,該“名詞”詞語組成的字符都標(biāo)注為“0”,如“常用的”之后出現(xiàn)“名詞”,則“?!薄ⅰ坝谩焙汀暗摹倍紭?biāo)注為“2”。
4) 若“形容詞/形容詞短語”之后出現(xiàn)其他詞性詞語,則將該“形容詞/形容詞短語”和其他詞性詞語組成的字符都標(biāo)注為“0”。
5)若以并列形式,連續(xù)出現(xiàn)2個(gè)或2個(gè)以上的“名詞”,則將并列形式的連接字符,如“、”與“和”等都標(biāo)注為“3”。
6)若以“動(dòng)詞 +名詞+名詞”形式出現(xiàn),則將后一個(gè)“名詞”詞語組成的字符都標(biāo)注為“4”,該“動(dòng)詞”詞語組成的字符都標(biāo)注為“1”,第一個(gè)“名詞”詞語組成的字符都標(biāo)注為“0”,如“具有XX能力”,則“具”、“有”都標(biāo)注為“1”,“能”、“力”都標(biāo)注為“4”。
7)若非以上諸情況,輸入語句中的其他字符都標(biāo)注為“0”。關(guān)于如何給每個(gè)字符標(biāo)注上下文特征,舉一個(gè)例子,如“具備數(shù)據(jù)庫和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)?!睒?biāo)注為“具/1備/1數(shù)/0據(jù)/0庫/0和/3數(shù)/0據(jù)/0結(jié)/0構(gòu)/0基/4礎(chǔ)/4。/0”。具體技能詞的上下文特征詞如表2所示。
表2 技能詞的上下文特征詞
最后,輸入層的輸出由各輸入語句序列中每個(gè)節(jié)點(diǎn)的字符特征向量、位置特征向量(Seg)、詞性特征向量(Pos)和上下文特征向量(Con)四組特征向量構(gòu)成,即Xi=[ci,segi,coni]。例如:輸入語句為“具備數(shù)據(jù)庫和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)”,詞性特征向量表示為“0,0,1,1,1,2,1,1,1,1,1,1”,其中“0”代表動(dòng)詞,“1”代表名詞,“2”代表連詞。位置特征向量表示為“0,1,0,1,2,0,0,1,2,3,0,1”,其中“0”代表所在詞語的第一個(gè)字符,“1”代表所在詞語的第二個(gè)字符,……。上下文特征表示為“1,1,0,0,0,3,0,0,0,0,4,4”。
LSTM是一種特殊類型的遞歸神經(jīng)網(wǎng)絡(luò)(recurrent neural network,簡稱RNN),它可以捕獲長距離序列信息,并且在序列數(shù)據(jù)建模方面功能強(qiáng)大。與標(biāo)準(zhǔn)RNN的區(qū)別在于,LSTM在隱藏層的神經(jīng)元中加入細(xì)胞狀態(tài)和輸入門、遺忘門、輸出門。細(xì)胞狀態(tài)更新時(shí)需要同時(shí)使用輸入門和遺忘門結(jié)果。具體實(shí)現(xiàn)為:
it=σ(WxiVt+Whiht-1+Wcict-1+bi);
(1)
ft=σ(WxfXt+Whfht-1+Wcfct-1+bf);
(2)
ct=ft?ct-1+it?tanh(WxcXt+Whcht-1+bc);
(3)
ot=σ(WxoXt+Whoht-1+Wcoct+bo);
(4)
ht=ot?tanh(ct)。
(5)
其中:σ為logistic sigmoid激活函數(shù);?為元素的乘積。在t時(shí)刻,i、f、o和c分別代表輸入門、遺忘門、輸出門和細(xì)胞狀態(tài)。輸入門、輸出門和遺忘門由sigmoid激活函數(shù)實(shí)現(xiàn),細(xì)胞狀態(tài)由3個(gè)門控制。權(quán)重矩陣W下標(biāo)表示每個(gè)門之間的連接,b為偏置。例如,Wxi為輸入節(jié)點(diǎn)Xt與輸入門之間權(quán)重矩陣;Whi為t-1時(shí)刻隱藏層狀態(tài)ht-1與輸入門之間權(quán)重矩陣;Wci為t-1時(shí)刻細(xì)胞狀態(tài)ct-1與與輸入門之間權(quán)重矩陣。
特征拼接層將Bi-LSTM的輸出與前面輸入層中的字符嵌入特征向量、位置特征(Seg)、詞性特征(Pos)和技能詞上下文特征(Con)拼接在一起,以期更好地提升模型的識(shí)別準(zhǔn)確率。拼接后,第i個(gè)字符的特征表示為Ai=[hi,Xi]。其中,Xi為輸入層中第i個(gè)字符的輸出,hi為Bi-LSTM層中第i個(gè)字符的輸出。此外,為了避免簡單的線性組合,增強(qiáng)神經(jīng)網(wǎng)絡(luò)模型的非線性因素,提出在特征拼接層輸出前,將Bi-LSTM層與輸入層的輸出拼接后的向量Ai映射成L維向量。其中,L是技能詞標(biāo)簽集中標(biāo)簽的數(shù)量。即Oi=tanh(w*Ai+b),Oi∈RL。其中,tanh為激活函數(shù),w是映射的權(quán)重,b是偏置,將φ={w,b}記為特征拼接層中的參數(shù)集。最終,特征拼接層的輸出為O=[O1,O2,…,On]。
從特征拼接層輸出的向量可以直接用作特征,通過softmax函數(shù)輸出每個(gè)字符預(yù)測(cè)的分類標(biāo)簽。但是,在序列標(biāo)注任務(wù)中,每個(gè)輸入字符的標(biāo)簽都涉及上下文語義關(guān)系,相鄰標(biāo)簽通常具有很強(qiáng)的依賴性。而softmax計(jì)算依據(jù)的是字符分類標(biāo)簽的狀態(tài)概率,未考慮序列本身的全局最優(yōu)問題,來為每個(gè)輸入字符輸出最可能的標(biāo)簽。例如,用BIO定義字符序列的標(biāo)簽集表示,“B”表示該字符是技能詞的開頭,“I”表示字符位于技能詞的中間位置,“O”表示該字符不屬于技能詞的一部分,“I”標(biāo)簽通常在“B”或“I”之后,但不可能在“O”之后。CRF層可以約束最終的預(yù)測(cè)標(biāo)簽以確保它們有效。這些約束可以由CRF層在訓(xùn)練過程中自動(dòng)從訓(xùn)練數(shù)據(jù)中學(xué)習(xí)。
用y=[y1,y2,…,yn]表示句子S的標(biāo)簽序列,其中yi∈RL是第i個(gè)字符標(biāo)簽的one-hot表示。CRF層的輸入是特征拼接層的輸出,CRF層的輸出是標(biāo)簽序列y。輸入O的標(biāo)簽序列y的條件概率計(jì)算如下[25]:
(6)
其中:Y(S)為句子s的所有可能標(biāo)簽序列的集合;Ψ(Oi,yi,yi-1)為勢(shì)函數(shù),
(7)
其中:E∈RL×L,F(xiàn)∈RL×L為CRF層的參數(shù);θ為參數(shù)集,即θ={E,F}。CRF層的損失函數(shù):
(8)
其中corpus是訓(xùn)練數(shù)據(jù)集中的所有語句。
本研究使用學(xué)習(xí)率為0.001的小批量自適應(yīng)矩估計(jì)(Adam)優(yōu)化算法,以端到端的方式訓(xùn)練技能詞抽取模型。在訓(xùn)練期間,使用每批次20條語句訓(xùn)練100個(gè)周期。換句話說,在每個(gè)周期中,語料庫中1 006條語料被隨機(jī)分為51個(gè)批次進(jìn)行訓(xùn)練,每個(gè)批次不超過20個(gè)句子。對(duì)于每一批次,采用預(yù)先訓(xùn)練的字符嵌入而非隨機(jī)初始化的嵌入作為輸入字符的嵌入特征向量。在CRF層中,使用動(dòng)態(tài)編程來計(jì)算式(6)的結(jié)果并預(yù)測(cè)標(biāo)簽序列。最后,反向傳播時(shí)根據(jù)CRF層預(yù)測(cè)出的標(biāo)簽序列與真實(shí)標(biāo)簽序列之間的誤差,依次更新CRF層中的參數(shù)集θ、特征拼接層中的參數(shù)集φ以及Bi-LSTM層中的所有的權(quán)重矩陣和網(wǎng)絡(luò)參數(shù)并保存模型。
為了驗(yàn)證提出的技能詞抽取模型的有效性,將本模型與主流方法進(jìn)行比較。在實(shí)驗(yàn)中詳細(xì)描述數(shù)據(jù)集、標(biāo)注策略、預(yù)訓(xùn)練的字符向量、模型參數(shù)設(shè)置、結(jié)果分析。
智聯(lián)招聘是國內(nèi)最大的在線招聘網(wǎng)站之一。它擁有400萬個(gè)合作公司,每天在各個(gè)領(lǐng)域發(fā)布大量的招聘職位。為了有效地利用這些信息,設(shè)計(jì)了一種具有布隆過濾器的計(jì)算機(jī)自動(dòng)網(wǎng)絡(luò)爬蟲程序,系統(tǒng)地檢索招聘網(wǎng)頁并將其存儲(chǔ)在數(shù)據(jù)庫中,然后從檢索的網(wǎng)頁中提取特定信息。提取的信息包括職位名稱、發(fā)布時(shí)間、崗位職責(zé)要求、職位鏈接、職位類別、招聘人數(shù)、學(xué)歷要求、經(jīng)驗(yàn)要求、薪資和福利待遇、工作地點(diǎn)、公司所在地和招聘公司名稱。本研究于2017年10月開始收集數(shù)據(jù),一直持續(xù)至今。截至2018年12月31日,已獲得超過1 300萬條無重復(fù)的崗位招聘數(shù)據(jù)。其中,獲得IT行業(yè)類別數(shù)據(jù)1 364 874條。收集的數(shù)據(jù)涵蓋了中國336個(gè)城市、13個(gè)行業(yè)類別和930個(gè)職位類別。
圖2為網(wǎng)絡(luò)招聘文本示例,其中“C++”“Linux”“推薦系統(tǒng)”等為崗位所要求的專業(yè)知識(shí)或?qū)I(yè)能力。在此實(shí)驗(yàn)中,選擇IT行業(yè)類別的崗位招聘數(shù)據(jù)作為語料庫。將每條職位招聘數(shù)據(jù)中的“崗位職責(zé)要求”視為一條語句。由于時(shí)間和手工標(biāo)注成本的限制,僅標(biāo)注了1 006條“崗位職責(zé)要求”作為實(shí)驗(yàn)語料。在標(biāo)注語料時(shí),嘗試選擇句法結(jié)構(gòu)標(biāo)準(zhǔn)的句子作為研究語料,并將語句中的專業(yè)課程名稱、專業(yè)知識(shí)點(diǎn)和相關(guān)專業(yè)工具標(biāo)記為技能詞,例如“C語言程序設(shè)計(jì)”“堆排序”“SpringMVC框架”等。因此,一條語句將被標(biāo)記為:“熟/ O悉/ O機(jī)/ B-SKILL器/ I-SKILL學(xué)/ I-SKILL習(xí)/ I-SKILL與/ O自/ B-SKILL然/ I-SKILL語/ I-SKILL言/ I-SKILL處/ I-SKILL理/ I-SKILL。/O”。
圖2 網(wǎng)絡(luò)招聘文本示例
由于沒有明確的標(biāo)準(zhǔn)如何將數(shù)據(jù)集劃分為訓(xùn)練/驗(yàn)證/測(cè)試集,在實(shí)驗(yàn)中將數(shù)據(jù)集進(jìn)行兩輪交叉驗(yàn)證。首先將整個(gè)數(shù)據(jù)集劃分成5份,選擇其中的80%作為訓(xùn)練數(shù)據(jù),而將其余20%用作測(cè)試數(shù)據(jù)。然后,再次將訓(xùn)練數(shù)據(jù)劃分成10份,選擇其中的90%作為最終訓(xùn)練數(shù)據(jù),并將其余的10%用作驗(yàn)證數(shù)據(jù)。換句話說,將全部數(shù)據(jù)的72%作為訓(xùn)練數(shù)據(jù),將8%作為驗(yàn)證數(shù)據(jù),將20%作為測(cè)試數(shù)據(jù)。每次實(shí)驗(yàn)的訓(xùn)練周期為100個(gè)周期,通過驗(yàn)證集找出訓(xùn)練集在這100個(gè)周期內(nèi)最佳網(wǎng)絡(luò)模型參數(shù)后再使用測(cè)試集進(jìn)行測(cè)試,以獲得本次驗(yàn)證的結(jié)果。表3中分別展示了用于訓(xùn)練、驗(yàn)證和測(cè)試數(shù)據(jù)集的句子數(shù)、技能詞數(shù)量。值得注意的是,由于每個(gè)句子中包含的技能詞數(shù)量不同,訓(xùn)練/驗(yàn)證/測(cè)試數(shù)據(jù)集中的技能詞數(shù)量會(huì)隨著每次劃分而動(dòng)態(tài)變化,因此,技能詞數(shù)量的范圍也在表中。
實(shí)驗(yàn)采用機(jī)器學(xué)習(xí)中常用的準(zhǔn)確率(precision)、召回率(recall)指標(biāo)評(píng)價(jià)技能詞抽取模型的性能,并采用F1值指標(biāo)評(píng)價(jià)其綜合性能。
表3 數(shù)據(jù)集的統(tǒng)計(jì)信息
為了考慮批量訓(xùn)練樣本量大小(batch)和學(xué)習(xí)率對(duì)本模型的影響,通過實(shí)驗(yàn)進(jìn)行超參數(shù)選擇。首先,根據(jù)已有的參考文獻(xiàn)中批量訓(xùn)練樣本量大小和學(xué)習(xí)率的使用,確定出batch大小和學(xué)習(xí)率的選擇范圍,分別為[20、50、100]和[0.001、0.002]。其次,在交叉驗(yàn)證的實(shí)驗(yàn)方案基礎(chǔ)上,嘗試使用不同批量訓(xùn)練樣本量大小(batch)和學(xué)習(xí)率的參數(shù)組合,結(jié)果如圖3所示。
圖3 采用不同批次大小和學(xué)習(xí)率時(shí)模型的準(zhǔn)確率、召回率、F1值
從圖3可看出,當(dāng)批量訓(xùn)練樣本量大小設(shè)置為20,學(xué)習(xí)率設(shè)置為0.001時(shí),該模型可獲得最佳總體效果。因此可認(rèn)為,最合適的批次大小為20,最佳學(xué)習(xí)率為0.001。
模型的其他超參數(shù)的初始值設(shè)置:字符嵌入特征向量設(shè)置為100。本研究使用的是word2vec中的CBOW模型對(duì)中文維基百科語料預(yù)訓(xùn)練的字符向量[26],epoch次數(shù)固定為100,隱藏層維度固定為100,其他網(wǎng)絡(luò)參數(shù)包括特征拼接層中的參數(shù)集φ和Bi-LSTM層中所有權(quán)重矩陣的初始值,以及CRF層的參數(shù)集θ在[-1,1]范圍內(nèi)隨機(jī)地均勻初始化。
實(shí)驗(yàn)1為了驗(yàn)證提出的技能詞抽取模型中所加入的各類語料特征對(duì)技能詞抽取有效性的影響,進(jìn)行了本組實(shí)驗(yàn)。具體實(shí)驗(yàn)設(shè)置如下:選擇基于字符級(jí)的Bi-LSTM-CRF模型作為基線對(duì)比實(shí)驗(yàn),此時(shí)只將字符嵌入特征輸入網(wǎng)絡(luò),并不輸入字符的語料特征。然后,分別在Bi-LSTM-CRF模型的輸入層中加入不同類型的語料特征,如Model_1代表在Bi-LSTM-CRF的輸入層中加入字符的位置特征(seg)、但并未將輸出層的輸出與Bi-LSTM層的輸出進(jìn)行拼接,Model_4代表在Model_1基礎(chǔ)上加入技能詞的上下文特征(con),即在Bi-LSTM-CRF的輸入層中加入所有語料特征。Model_8代表在Bi-LSTM-CRF的輸入層中加入所有語料特征,并且將輸出層的輸出與Bi-LSTM層的輸出進(jìn)行拼接,即最終的技能詞抽取模型。
從表4可看出,在Bi-LSTM-CRF模型的輸入層中分別加入位置特征(seg)、詞性特征(pos)和技能詞的上下文特征(con)時(shí),相比于Bi-LSTM-CRF模型的F1值分別提升了0.44%、0.35%和7.66%。其中,加入上下文特征獲得的提升最大,這是因?yàn)椋河捎谡衅刚Z料的句法結(jié)構(gòu)比較單一,技能詞的上下文特征較為固定,充分挖掘技能詞上下文特征能較好地反映技能詞在語料中出現(xiàn)的位置,能有效地抽取出“……具備數(shù)據(jù)庫開發(fā)能力……”“……常用的Java、C、python等編程語言……”這類具有明顯句法結(jié)構(gòu)的技能詞,從而使訓(xùn)練出的模型更具有泛化能力。而字符的位置特征(seg)和詞性特征(pos)的加入,雖然提高了F1值,但提升的幅度不是很大。其中可能的原因是:詞語的位置特征(seg)是通過對(duì)句子進(jìn)行jieba分詞,再提取每個(gè)字符與所在詞語的相對(duì)位置而得到的。中文分詞結(jié)果的不準(zhǔn)確性影響了字符位置特征的提取,從而對(duì)技能詞的抽取帶來了一定程度的干擾。對(duì)于詞性特征(pos),則可能是因?yàn)閖ieba分詞無法標(biāo)注出英文字符的詞性,以及技能詞的構(gòu)成在詞法特征上規(guī)律性不強(qiáng)。
表4 各種語料特征加入后技能詞抽取的性能
從表4中還可看出:如果同時(shí)將字符的位置特征(seg)和詞性特征(pos)加入到Bi-LSTM-CRF模型的輸入層中,相比于Bi-LSTM-CRF,模型的F1值提升了0.5%;如果同時(shí)將字符的位置特征(Seg)和技能詞的上下文特征(con)加入到Bi-LSTM-CRF模型的輸入層中,相比于Bi-LSTM-CRF,模型的F1值提升了7.83%;如果同時(shí)將詞性特征(pos)和技能詞的上下文特征(con)加入到Bi-LSTM-CRF模型的輸入層中,相比于Bi-LSTM-CRF,模型的F1值提升了7.78%;如果同時(shí)將字符的位置特征(Seg)、詞性特征(Pos)和技能詞的上下文特征(Con)都加入到Bi-LSTM-CRF模型的輸入層中,模型的F1值能得到更進(jìn)一步的提升,從0.789 2提高到了0.870 6,提升幅度達(dá)到8.14%。因此,在模型中加入的語料特征越多,越有利于模型的技能詞抽取。
另外,在Bi-LSTM-CRF的輸入層中加入所有語料特征的同時(shí),將輸入層的輸出和Bi-LSTM層的輸出拼接,即為最終提出的技能詞抽取模型。相比于只加入語料特征的情況,又進(jìn)一步提升了模型的F1值,提升幅度達(dá)8.23%。最終可得出結(jié)論,本模型能夠有效進(jìn)行技能詞抽取,并且抽取性能得到了極大提高,加入各類語料特征也有利于技能詞抽取性能的提升。
實(shí)驗(yàn)2為了驗(yàn)證本模型中所加入的各類語料特征,在不同規(guī)模訓(xùn)練集下也是否都有利于模型抽取性能的提升,以及評(píng)估所加入的豐富的語料特征是否能夠緩解模型對(duì)大量標(biāo)注數(shù)據(jù)需求的依賴,在實(shí)驗(yàn)1的基礎(chǔ)上,進(jìn)一步從訓(xùn)練集中抽取25%、50%和75%的樣本,同時(shí)保持測(cè)試集不變,進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表5所示。
樣本抽取的具體方法如下:在每次使用兩輪交叉驗(yàn)證方法實(shí)現(xiàn)對(duì)數(shù)據(jù)的劃分后,再將訓(xùn)練數(shù)據(jù)平均分成N份,每次選擇其中若干份作為最終訓(xùn)練集,并重復(fù)進(jìn)行多次實(shí)驗(yàn)。25%訓(xùn)練集的抽取方案為:將訓(xùn)練集劃分為4份,每次選擇1份作為最終訓(xùn)練集,實(shí)驗(yàn)重復(fù)4次;50%的訓(xùn)練集抽取方案為:將訓(xùn)練集劃分成2份,每次選擇1份作為最終訓(xùn)練集,實(shí)驗(yàn)重復(fù)2次;75%的訓(xùn)練集抽取方案為:將訓(xùn)練集劃分成4份,每次選擇3份作為最終訓(xùn)練集,實(shí)驗(yàn)重復(fù)4次。本組實(shí)驗(yàn)在不同訓(xùn)練集比例下,同樣也是選擇Bi-LSTM-CRF模型作為基線對(duì)比實(shí)驗(yàn)。
表5 不同訓(xùn)練集比例下加入各類語料特征后的技能詞抽取性能
如表5所示,在不同規(guī)模的訓(xùn)練集下,本模型抽取性能相比于Bi-LSTM-CRF模型仍有較大提升,在25%、50%和75%訓(xùn)練集比例下,F(xiàn)1值分別由0.726 7、0.764 6和0.780 7提高到了0.833 6、0.851 7和0.864 6。另外,在不同比例的訓(xùn)練集下,加入的各類型語料特征也依然有利于模型抽取性能的提升,并且可以得出與實(shí)驗(yàn)1中使用全部訓(xùn)練集同樣的結(jié)論,即在模型中加入的語料特征越多,越有利于模型的技能詞抽取。例如:在25%、50%和75%訓(xùn)練集比例下,僅加入詞性特征(Pos),相比于Bi-LSTM-CRF模型的F1值分別提升了0.74%、0.18%和0.48%。若同時(shí)將字符的位置特征(Seg)和詞性特征(Pos)加入Bi-LSTM-CRF模型的輸入層,相比于Bi-LSTM-CRF模型的F1值分別提升了1.32%、0.44%、0.46%。而同時(shí)將字符的位置特征(Seg)、詞性特征(Pos)和技能詞的上下文特征(Con)都加入Bi-LSTM-CRF模型的輸入層,模型的F1值又能得到更進(jìn)一步的提升,分別從0.726 7、0.764 6和0.780 7提高到了0.826 7、0.849 1和0.862 3,提升幅度分別達(dá)到10.0%、8.45%和8.16%。
從表5還可看出:在Bi-LSTM-CRF模型的輸入層加入豐富的語料特征確實(shí)減輕了可用標(biāo)注數(shù)據(jù)的不足。例如,訓(xùn)練集比例為75%時(shí),Bi-LSTM-CRF模型的輸入層僅使用字符嵌入特征情況下的F1值為78.07%,而訓(xùn)練集比例為50%時(shí),在Bi-LSTM-CRF模型的輸入層加入位置特征(Seg)和詞性特征(Pos)情況下的F1值為76.90%;訓(xùn)練集比例為100%時(shí),Bi-LSTM-CRF模型的輸入層僅使用字符嵌入特征情況下的F1值為78.92%,而訓(xùn)練集比例僅為25%時(shí),在Bi-LSTM-CRF模型的輸入層加入技能詞的上下文特征(Con)情況下的F1值便可達(dá)81.72%。因此,可得出結(jié)論,加入豐富的語料特征本模型能夠緩解模型對(duì)大量標(biāo)注數(shù)據(jù)的依賴。
實(shí)驗(yàn)3為了說明提出的技能詞抽取模型的有效性,選取了目前主流的序列標(biāo)注模型BERT-Bi-LSTM-CRF和IDCNN-CRF模型進(jìn)行對(duì)比。雖然本模型所選擇的對(duì)比方法在英文數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn)取得不錯(cuò)的效果,但該類型框架具有通用性,受語言差異影響較小,并且在進(jìn)行實(shí)驗(yàn)時(shí)采用同樣的數(shù)據(jù)處理方式。
方法1BERT-Bi-LSTM-CRF:BERT(bidirectional encoder representations from transformers)是一種由Devlin等[27]等提出的以Transformers為主要框架的雙向編碼表征模型。BERT-Bi-LSTM-CRF是在預(yù)訓(xùn)練的BERT模型的頂部添加了用于序列標(biāo)記的Bi-LSTM層和CRF層,并且通過招聘語料數(shù)據(jù)對(duì)預(yù)訓(xùn)練的BERT模型的參數(shù)進(jìn)行調(diào)整。
方法2IDCNN-CRF:IDCNN-CRF(iterated dilated convolutional neural network-conditional random field)模型是由Emma等[28]提出的,類似于Bi-LSTM-CRF模型,采用深度學(xué)習(xí)模型進(jìn)行特征提取,再放入CRF層解碼出標(biāo)注結(jié)果。但不同于Bi-LSTM網(wǎng)絡(luò),該模型用4個(gè)結(jié)構(gòu)相同的膨脹卷積(DCNN)提取語句特征,稱之為IDCNN。
數(shù)據(jù)集的劃分同樣采用交叉驗(yàn)證的實(shí)驗(yàn)方案。同樣選擇Bi-LSTM-CRF模型作為基線對(duì)比模型,實(shí)驗(yàn)結(jié)果如表6所示。方法1中BERT-Bi-LSTM-CRF模型的超參數(shù)設(shè)置如下,初始學(xué)習(xí)率為0.001、epoch次數(shù)為50、隱藏層維度為100和批量訓(xùn)練樣本量為32。方法2中IDCNN-CRF模型的超參數(shù)設(shè)置如下,字符嵌入維度為100、初始學(xué)習(xí)率為0.001、epoch次數(shù)為100、卷積核大小為1*3和批量訓(xùn)練樣本量為20。
表6 不同網(wǎng)絡(luò)模型抽取性能對(duì)比
從表6可看出,本技能詞抽取模型的F1值遠(yuǎn)優(yōu)于方法1的BERT-Bi-LSTM-CRF模型和方法2的IDCNN-CRF模型的F1值。此外,考慮到BERT模型的訓(xùn)練使用了非常龐大的公共資源訓(xùn)練語料庫,而本技能詞抽取模型的訓(xùn)練僅使用少部分人工標(biāo)注的語料。因此,可得出結(jié)論,本技能詞抽取模型可有效地抽取技能詞,并且加入的語料特征更有利于模型的抽取性能提升。
技能詞是分析大規(guī)模招聘數(shù)據(jù)與勞動(dòng)力市場(chǎng)供求關(guān)系的基礎(chǔ)。提出了一種基于深度學(xué)習(xí)的技能詞抽取方法,實(shí)驗(yàn)結(jié)果表明,充分挖掘招聘語料的內(nèi)部特征可以提高技能詞抽取的準(zhǔn)確性。實(shí)驗(yàn)結(jié)果還表明,引入豐富的語料特征能夠緩解模型對(duì)大量標(biāo)注數(shù)據(jù)需求的依賴問題。目前,通過預(yù)訓(xùn)練的字符嵌入作為輸入字符的形式化表示,但字符嵌入的預(yù)訓(xùn)練受訓(xùn)練語料的語義影響,未來的工作包括如何利用動(dòng)態(tài)詞嵌入來更好地提取技能詞,以及如何利用大量未標(biāo)記的語料庫或遷移學(xué)習(xí)方法來減少對(duì)標(biāo)注數(shù)據(jù)的依賴性。