劉 蔭,張 凱,王惠劍,楊冠群
(國(guó)網(wǎng)山東電力集團(tuán)公司,山東 濟(jì)南 250001)
電力領(lǐng)域不僅和人類生活息息相關(guān),更對(duì)保障國(guó)家安全和國(guó)家經(jīng)濟(jì)至關(guān)重要。為了提高電力領(lǐng)域工作效率和電力信息化程度,如何自動(dòng)解析大量半結(jié)構(gòu)化或非結(jié)構(gòu)化電力文檔是一件非常重要的工作,而命名實(shí)體識(shí)別(NER)是其中一項(xiàng)基礎(chǔ)任務(wù)。由于電力領(lǐng)域?qū)儆趥鹘y(tǒng)行業(yè),其數(shù)據(jù)基礎(chǔ)相對(duì)匱乏: 一方面,目前還沒有一個(gè)較全面的電力實(shí)體詞表[1];另一方面,在實(shí)際應(yīng)用中,高質(zhì)量的標(biāo)注數(shù)據(jù)十分匱乏,即便公司投入大量資源標(biāo)注了一些行業(yè)數(shù)據(jù)集,往往也因?yàn)槠髽I(yè)資產(chǎn)保護(hù)和數(shù)據(jù)合規(guī)等原因無法對(duì)外開放。因此,有效解決低資源條件下命名實(shí)體識(shí)別具有重要的現(xiàn)實(shí)意義,也極具挑戰(zhàn)性。
命名實(shí)體通常是一個(gè)詞或短語,可以在具有相似屬性的一組事物中清楚地標(biāo)識(shí)出某一個(gè)事物。通用領(lǐng)域命名實(shí)體一般為人名、地名、組織機(jī)構(gòu)名等,并且存在大量標(biāo)注數(shù)據(jù),研究者已經(jīng)在監(jiān)督和無監(jiān)督方法上做了大量研究和調(diào)研工作[2-6]。在電力領(lǐng)域,雖然有一些命名實(shí)體識(shí)別的研究工作,但并未公開標(biāo)注數(shù)據(jù)[7-9]。同時(shí),命名實(shí)體識(shí)別本質(zhì)上是對(duì)輸入符號(hào)(Token)序列的分類任務(wù),傳統(tǒng)的低資源文本增強(qiáng)方法,如詞語替換、隨機(jī)噪聲注入、預(yù)訓(xùn)練語言模型等,可能產(chǎn)生較多噪聲數(shù)據(jù),不適合用于具有全局結(jié)構(gòu)化預(yù)測(cè)特性的命名實(shí)體識(shí)別模型。此外,雖然在同等少量標(biāo)注樣本下,半監(jiān)督學(xué)習(xí)通常比監(jiān)督學(xué)習(xí)有更好的性能,但少量的標(biāo)注數(shù)據(jù)和海量的未標(biāo)注數(shù)據(jù)間往往存在跨資源特征表示、數(shù)據(jù)不均衡和訓(xùn)練模型間的差異等問題,導(dǎo)致泛化效果較差[9]。因此本文把電力領(lǐng)域作為一種低資源領(lǐng)域,研究從零基礎(chǔ)開始,只利用可收集到的無標(biāo)注文檔資源進(jìn)行無監(jiān)督命名實(shí)體識(shí)別,這是實(shí)際應(yīng)用中最亟待探索的技術(shù)[10]。例如,對(duì)于文本“電力網(wǎng)——是由變壓器、電力線路等變換、輸送、分配電能設(shè)備所組成的部分?!?,自動(dòng)從中識(shí)別出命名實(shí)體和類型(“電力網(wǎng)”“變壓器”等)。
首先,如何判別電力領(lǐng)域的實(shí)體詞,例如,“氨基酸”是生物實(shí)體詞,但不是電力實(shí)體詞,因此需要建立一個(gè)實(shí)體詞標(biāo)準(zhǔn)。我們通過收集和解析電力領(lǐng)域半結(jié)構(gòu)化數(shù)據(jù)獲得一個(gè)小型實(shí)體詞表,并獲得其類型的層次結(jié)構(gòu),同時(shí)利用電力語料預(yù)訓(xùn)練的詞向量模型得到每個(gè)類型的表示和代表實(shí)體詞。例如,設(shè)備類、部件類、故障類等實(shí)體類型,設(shè)備類包括“主變壓器”等代表詞。這一步相當(dāng)于為實(shí)體詞識(shí)別建立了一個(gè)標(biāo)準(zhǔn)。
由于該實(shí)體詞表規(guī)模較小,很多實(shí)體詞并沒有被覆蓋,并且文本中也會(huì)不斷出現(xiàn)一些新的實(shí)體詞,如何識(shí)別并判斷出新的實(shí)體詞及其類型是難點(diǎn),本文參考了無監(jiān)督命名實(shí)體識(shí)別方法[5],利用全詞預(yù)訓(xùn)練模型獲得詞語預(yù)測(cè),并與代表實(shí)體詞進(jìn)行相似度計(jì)算,識(shí)別出實(shí)體詞和實(shí)體類型。該工作在英文通用領(lǐng)域上進(jìn)行,實(shí)體類型采用聚類和人工標(biāo)注的方式,本文進(jìn)一步改進(jìn),通過解析結(jié)構(gòu)化數(shù)據(jù)獲取領(lǐng)域?qū)嶓w詞表,避免了人工打標(biāo)簽的工作,并針對(duì)中文特點(diǎn)采用了BERT全詞預(yù)訓(xùn)練模型,實(shí)現(xiàn)中文特定領(lǐng)域的無監(jiān)督命名實(shí)體識(shí)別。
綜上所述,本文提出了一種在低資源數(shù)據(jù)條件下,利用電力領(lǐng)域的結(jié)構(gòu)化和非結(jié)構(gòu)化文檔,其中包括技術(shù)文檔、科技文獻(xiàn)以及知識(shí)百科等,基于BERT全詞遮蓋預(yù)訓(xùn)練方法,無監(jiān)督地進(jìn)行命名實(shí)體識(shí)別,該方法在構(gòu)建領(lǐng)域知識(shí)圖譜中也具有很好的復(fù)用性。本文的主要貢獻(xiàn)包括:
(1) 針對(duì)低資源中文電力領(lǐng)域,提出了一套從零基礎(chǔ)開始,充分利用無標(biāo)注文檔資源進(jìn)行命名實(shí)體識(shí)別的方案。
(2) 利用領(lǐng)域語料、中文BERT全詞遮蓋預(yù)訓(xùn)練模型和實(shí)體詞語義相似度,解決無監(jiān)督命名實(shí)體識(shí)別的關(guān)鍵問題。
(3) 建立了面向電力故障檢測(cè)領(lǐng)域的分詞詞典和實(shí)體詞表并公開發(fā)布,供研究界使用。
1996年第六屆信息理解會(huì)議(Message Understanding Conference,MUC)上,Grishman和Sundheim最早提出了命名實(shí)體識(shí)別任務(wù)。早期NER系統(tǒng)主要基于人工規(guī)則、詞典、特征集和知識(shí)庫,并采用特征工程和機(jī)器學(xué)習(xí)方法[6,10-11]。隨著2011年Collobert提出基于神經(jīng)網(wǎng)絡(luò)方法的命名實(shí)體識(shí)別系統(tǒng),該任務(wù)開始從特征工程方法中解脫出來[2,4]。基于深度學(xué)習(xí)的命名實(shí)體識(shí)別框架一般包括分布式表示(詞向量、字向量等)、上下文編碼器(CNN、RNN、Transformer、預(yù)訓(xùn)練語言模型等)和標(biāo)簽解碼器(Softmax、CRF、RNN等)[10,12]。但目前表現(xiàn)較好的模型都是基于有監(jiān)督的統(tǒng)計(jì)學(xué)習(xí)或者深度學(xué)習(xí)方法,半監(jiān)督和無監(jiān)督命名實(shí)體識(shí)別還處于發(fā)展階段。
半監(jiān)督命名實(shí)體識(shí)別方法的基本思路為擴(kuò)大樣本集、遷移領(lǐng)域知識(shí)、提高模型特征質(zhì)量以及外部結(jié)構(gòu)化知識(shí)鏈接[13]。前三種都需要少量目標(biāo)標(biāo)注數(shù)據(jù),知識(shí)鏈接則需要使用外部知識(shí)庫補(bǔ)充標(biāo)注實(shí)體。典型的無監(jiān)督命名實(shí)體識(shí)別一般采用聚類方法,從基于上下文相似度的聚類中抽取命名實(shí)體[12],核心思想是認(rèn)為大規(guī)模語料的詞匯資源、模式和其他統(tǒng)計(jì)信息可以用來推導(dǎo)出命名實(shí)體。Lin 和Pantel[14]介紹了怎樣采用非監(jiān)督技術(shù)創(chuàng)建大規(guī)模的語義相關(guān)詞匯類簇。Nadeau等[6]提出了一個(gè)非監(jiān)督的名詞典構(gòu)建和NER系統(tǒng),通過設(shè)定人名、地名、組織三類實(shí)體種子和規(guī)則抽取網(wǎng)頁中的實(shí)體清單,然后采用簡(jiǎn)單有效的啟發(fā)式方法把實(shí)體抽取和消歧結(jié)合起來。Zhang 和Elhadad[3]提出了一種面向生物醫(yī)學(xué)領(lǐng)域的無監(jiān)督命名實(shí)體抽取方法,通過為實(shí)體類別設(shè)置代表詞,對(duì)語料提取候選詞(如名詞、名詞短語等),并計(jì)算與代表詞的語義相似度,完成命名實(shí)體識(shí)別,并在兩個(gè)主流數(shù)據(jù)集上得到53.8%和69.5%的較好效果。也有研究采用數(shù)據(jù)增強(qiáng)的方法,讓增強(qiáng)數(shù)據(jù)盡可能地在實(shí)際應(yīng)用中出現(xiàn),文本增強(qiáng)需要保證已有符號(hào)和上下文不被破壞,一般可采用截?cái)?、拼接、符?hào)替換等方法,盡量增強(qiáng)文本在實(shí)際數(shù)據(jù)中出現(xiàn)的可能性。針對(duì)半監(jiān)督方法的困難,國(guó)內(nèi)外學(xué)者提出了加入對(duì)抗特性的方法[15-16],也取得了顯著進(jìn)展。
在低資源命名實(shí)體識(shí)別中,基于規(guī)則的方法仍然被廣泛應(yīng)用。由領(lǐng)域?qū)<覙?gòu)造規(guī)則模板,然后通過模式匹配進(jìn)行實(shí)體識(shí)別,方法簡(jiǎn)單,且當(dāng)文本中的實(shí)體具有較為固定的模式時(shí),能取得較高的準(zhǔn)確率[17-18]。不過該方法存在明顯的弱點(diǎn),在實(shí)際應(yīng)用中存在諸多困難,如規(guī)則往往需要由領(lǐng)域?qū)<彝ㄟ^閱讀一定量的目標(biāo)領(lǐng)域文本總結(jié)而得,依賴知識(shí)庫和詞典,這些都需要付出很大的代價(jià)和較長(zhǎng)的建設(shè)周期。此外,不同系統(tǒng)需要專家重寫規(guī)則,可移植性差。
總的來說,數(shù)據(jù)增強(qiáng)和標(biāo)注數(shù)據(jù)依舊是非常專業(yè)的工作,而在實(shí)際應(yīng)用中,企業(yè)往往不具備相關(guān)數(shù)據(jù)、經(jīng)費(fèi)和人力資源,低資源條件下命名實(shí)體識(shí)別就愈發(fā)困難。BERT可以從海量數(shù)據(jù)中學(xué)習(xí)語法和語義知識(shí),在預(yù)訓(xùn)練階段,BRET最后一層跟遮蓋語言模型(Masked Language Model, MLM)最相關(guān),因此中間層容易遷移,而精調(diào)(Finetune)模型較低層權(quán)重能夠恢復(fù)到初始值,對(duì)模型性能的損害不會(huì)特別顯著[19-21]。因此本文參考了基于BERT預(yù)訓(xùn)練模型的命名實(shí)體識(shí)別方法(1)http://github.com/ajitrajasekharan/unsupervised_NER,利用預(yù)訓(xùn)練對(duì)詞語進(jìn)行語義聚類,并手工標(biāo)記實(shí)體類別獲得代表詞,通過計(jì)算文本中詞語和代表詞之間的相似度來判斷詞語是否為命名實(shí)體。由于在特定領(lǐng)域中自動(dòng)確定實(shí)體類型的效果差,本文方法則進(jìn)一步改進(jìn),通過結(jié)構(gòu)化領(lǐng)域數(shù)據(jù)獲取小規(guī)模實(shí)體詞及其類型作為指導(dǎo)信息,避免人工標(biāo)簽,從而使我們的工作在特定領(lǐng)域上的實(shí)現(xiàn)更加準(zhǔn)確和實(shí)用。
對(duì)于本文中電力領(lǐng)域的命名實(shí)體識(shí)別任務(wù),形式化定義如下: 對(duì)于輸入語句S,進(jìn)行分詞后得到詞語序列
圖1 命名實(shí)體識(shí)別示例
針對(duì)電力領(lǐng)域的分詞,我們通過對(duì)電力語料的串頻統(tǒng)計(jì)擴(kuò)大分詞詞典,使得實(shí)體詞盡可能涵蓋在單個(gè)詞語中。對(duì)分詞后的每個(gè)詞語wi,判斷其是否為實(shí)體詞及其類型。此時(shí)會(huì)存在兩種情況: 一是如果wi在已有實(shí)體名單中,可通過實(shí)體檢索完成實(shí)體識(shí)別任務(wù);二是如果wi不在實(shí)體名單中,則利用預(yù)訓(xùn)練模型進(jìn)行無監(jiān)督命名實(shí)體的識(shí)別。
為了從零開始進(jìn)行電力領(lǐng)域命名實(shí)體的識(shí)別,首先需要學(xué)習(xí)電力領(lǐng)域的詞語語義表示,為此收集了大量電力行業(yè)文本數(shù)據(jù),如電力百科、電力科技論文、電力規(guī)程等,基于該語料對(duì)電力領(lǐng)域的相關(guān)詞語進(jìn)行頻度統(tǒng)計(jì),并利用全詞預(yù)訓(xùn)練模型學(xué)習(xí)電力領(lǐng)域的詞語表示。同時(shí),本文進(jìn)一步利用半結(jié)構(gòu)化電力數(shù)據(jù)獲取命名實(shí)體詞表及其類型,通過解析半結(jié)構(gòu)化電力設(shè)備檢修手冊(cè),將實(shí)體詞及其上下位的結(jié)構(gòu)層次進(jìn)行提取,并依照前人方法[5],對(duì)每種實(shí)體詞獲得向量表示,得到每種類型的代表詞,從而獲取一個(gè)小規(guī)模的實(shí)體詞表。對(duì)于給定文本,我們利用全詞預(yù)訓(xùn)練模型判斷文本中的詞語,并計(jì)算它們和實(shí)體類代表詞的相似度,以預(yù)測(cè)其是否為實(shí)體詞及其類型。因此如圖2所示,本文方法包括三個(gè)模塊: ①電力領(lǐng)域全詞預(yù)訓(xùn)練表示學(xué)習(xí); ②基于半結(jié)構(gòu)化數(shù)據(jù)的實(shí)體類別代表詞表示學(xué)習(xí); ③基于預(yù)訓(xùn)練的命名實(shí)體識(shí)別和類別確定。2.3電力領(lǐng)域預(yù)訓(xùn)練表示學(xué)習(xí)由于缺少電力領(lǐng)域語料,我們收集了相關(guān)電力百科詞條、電力科技論文、電力規(guī)程等數(shù)據(jù),形成電力行業(yè)基礎(chǔ)語料。為了更好地進(jìn)行電力領(lǐng)域表示學(xué)習(xí),需要提高電力文本分詞的準(zhǔn)確性,我們對(duì)電力基礎(chǔ)語料利用串頻統(tǒng)計(jì)提取出現(xiàn)頻度大的子串,并對(duì)通用詞典中的相應(yīng)詞項(xiàng)更新頻度,同時(shí)將下文中獲取的實(shí)體詞也一起加入到分詞詞典中作為電力領(lǐng)域詞典, 以更好地對(duì)電力語 料進(jìn)行分詞處理。具體步驟如下: (1) 使用停用詞表過濾語料;(2) 設(shè)定領(lǐng)域詞典最大詞語長(zhǎng)度L,對(duì)長(zhǎng)度小于或等于L的字串進(jìn)行串頻統(tǒng)計(jì);(3) 對(duì)串頻統(tǒng)計(jì)頻度大于一定閾值的子串,如果存在于通用詞典中,則更新其詞頻為原有詞頻和串頻統(tǒng)計(jì)詞頻之和,新詞串及其頻度則直接添加到領(lǐng)域詞典中。需要說明的是,通過解析結(jié)構(gòu)化文檔獲得的實(shí)體詞也被加入到電力領(lǐng)域詞典中。這些實(shí)體詞是確定性的領(lǐng)域詞,將它們的頻度設(shè)為一個(gè)最大值,并設(shè)詞性為名詞。在領(lǐng)域語料分詞之后,我們利用Word2Vec學(xué)習(xí)詞向量表示。同時(shí),利用全詞遮蓋(Whole Word Masking,WWM)預(yù)訓(xùn)練學(xué)習(xí)詞語的上下文表示,全詞遮蓋可以看作是升級(jí)版的BERT,主要更改了預(yù)訓(xùn)練階段的訓(xùn)練樣本生成策略,如果一個(gè)完整詞的部分子詞被遮蓋,則同屬該詞的其他部分也會(huì)被遮蓋,這樣不同于原先基于子詞(WordPiece)的預(yù)訓(xùn)練中分開的子詞會(huì)隨機(jī)被遮蓋。具體而言,參考前人工作,本文對(duì)組成同一個(gè)詞的全部組成進(jìn)行遮蓋。根據(jù)上文構(gòu)建的電力領(lǐng)域詞典,對(duì)詞典中出現(xiàn)的詞語進(jìn)行全詞遮蓋處理,然后采用全詞預(yù)訓(xùn)練模型進(jìn)行二次預(yù)訓(xùn)練[19],以使模型學(xué)習(xí)到電力領(lǐng)域內(nèi)的先驗(yàn)知識(shí),得到電力領(lǐng)域全詞預(yù)訓(xùn)練模型。這里我們主要采用預(yù)訓(xùn)練任務(wù)[20]: 領(lǐng)域全詞遮蓋和下句預(yù)測(cè)(NSP)。在訓(xùn)練中,為了節(jié)省資源,采用了兩階段預(yù)訓(xùn)練方式,第一階段預(yù)訓(xùn)練最大句子長(zhǎng)度為128,第二階段預(yù)訓(xùn)練最大句子長(zhǎng)度為512。由于我們的任務(wù)是無監(jiān)督命名實(shí)體識(shí)別,所以沒有進(jìn)行任務(wù)級(jí)別(如分類)的預(yù)訓(xùn)練任務(wù)。
圖2 本文方法總體架構(gòu)圖
2.4電力實(shí)體類型及代表詞學(xué)習(xí)為了指導(dǎo)命名實(shí)體識(shí)別和實(shí)體類型確定,我們希望獲取一個(gè)準(zhǔn)確的具有類型信息的電力實(shí)體詞表。我們發(fā)現(xiàn)很難獲得大規(guī)模實(shí)體詞表,但可以獲取到小規(guī)模的相對(duì)結(jié)構(gòu)化的專業(yè)數(shù)據(jù)——電力檢修手冊(cè)。如表1所示,通過解析該數(shù)據(jù)可以得到其中的電力實(shí)體詞和相應(yīng)的實(shí)體類型,如設(shè)備、部件、故障等。這樣獲取的實(shí)體詞更加準(zhǔn)確,但受限于數(shù)據(jù)規(guī)模,實(shí)體詞表的規(guī)模也相對(duì)較小。此處構(gòu)建實(shí)體詞表的主要?jiǎng)訖C(jī)是給出一些電力實(shí)體詞及類型的示例,指導(dǎo)系統(tǒng)發(fā)現(xiàn)更多新的實(shí)體詞,并確定其類型。
表1 檢修手冊(cè)結(jié)構(gòu)化部分內(nèi)容示例
針對(duì)電力檢修手冊(cè),首先確定實(shí)體類型,并將類型進(jìn)一步細(xì)分為實(shí)體子類,對(duì)各子類分別根據(jù)所有包含的相關(guān)詞匯提取若干代表詞,作為下一步實(shí)體識(shí)別中語義計(jì)算的參考詞。最終,我們獲得五大實(shí)體類型,包括: 電力設(shè)備、設(shè)備部件、故障現(xiàn)象、故障原因、維修措施。對(duì)于每種實(shí)體類型很難給出直接的定義和語義表示,我們認(rèn)為可以通過類型中的代表詞來反映其語義內(nèi)容。為了準(zhǔn)確地選出各個(gè)類型的代表詞,我們對(duì)每種類型又進(jìn)一步細(xì)化為子類,由于各實(shí)體類都與電力設(shè)備有關(guān),如故障原因是針對(duì)某個(gè)設(shè)備發(fā)生故障的原因,設(shè)備部件是某個(gè)設(shè)備上的部件,因此我們用設(shè)備名將其進(jìn)一步細(xì)分到實(shí)體子類,再對(duì)每個(gè)實(shí)體子類選擇代表詞,幫助識(shí)別新的實(shí)體詞,如圖3所示。
圖3 實(shí)體類型層級(jí)示例
選擇代表詞時(shí),本文基于在電力領(lǐng)域語料上進(jìn)行訓(xùn)練的Word2Vec詞向量表示,而沒有采用基于BERT的向量表示,這是因?yàn)锽ERT向量反映了詞匯的上下文信息,而此處更注重實(shí)體詞本身的語義表示。具體計(jì)算時(shí),假設(shè)實(shí)體子類的詞匯數(shù)量為n,對(duì)于每個(gè)詞匯,我們計(jì)算其與其他詞匯的平均語義相似度[5],根據(jù)平均語義相似度的大小,選取前k個(gè)實(shí)體詞作為代表詞集合v(圖4),如式(1)所示。
圖4 平均語義相似度計(jì)算示例
(1)
通常文本中的實(shí)體詞為名詞或代詞,因此可以先根據(jù)分詞標(biāo)記出文本中可能的實(shí)體詞匯,然后再進(jìn)一步確認(rèn)是否為電力實(shí)體詞,以及所歸屬的實(shí)體類型。
對(duì)文本中識(shí)別出來的名詞和代詞進(jìn)行遮蓋,并利用全詞遮蓋預(yù)訓(xùn)練模型預(yù)測(cè)可能的輸出詞。我們選用Word2Vec表示輸出詞詞向量,而不用基于BERT的上下文相關(guān)嵌入表示,這是因?yàn)锽ERT詞向量包含了較多的上下文信息。
假設(shè)對(duì)于文本中的遮蓋詞語w,利用全詞預(yù)訓(xùn)練模型預(yù)測(cè)詞匯,設(shè)定閾值λ,把預(yù)測(cè)概率pi≥λ1的詞匯si取出,分別計(jì)算si與各實(shí)體類別c中所有代表詞tj的平均語義相似度。我們?cè)侔讶〕龅念A(yù)測(cè)詞匯si和實(shí)體類別c的語義相似度進(jìn)行加權(quán)平均,則可以得到遮蓋詞語w與實(shí)體類別c的語義相似度為simc(w),如式(2)所示。
(2)
(3)
這里計(jì)算Lcdc時(shí)考慮采用類別內(nèi)元素?cái)?shù)量的對(duì)數(shù),是為了降低元素?cái)?shù)量的影響權(quán)重,“+1”則保證當(dāng)元素?cái)?shù)為1時(shí),Lcdc=1。根據(jù)式(4)計(jì)算實(shí)體歸屬類型分值Scorec,設(shè)定閾值λ,如存在某個(gè)實(shí)體類別,使得Scorec(w)大于λ,則認(rèn)為詞語w為相應(yīng)的實(shí)體類別,否則認(rèn)為該詞不是實(shí)體詞。圖5示意了如何對(duì)文本內(nèi)的詞語進(jìn)行實(shí)體詞判斷和歸類的過程。
圖5 實(shí)體識(shí)別及歸類示意圖
(4)
我們采用的電力領(lǐng)域語料主要有兩個(gè)來源:
(1) 電力科技論文、電力規(guī)程等電力領(lǐng)域數(shù)據(jù),主要來自于“AIIA”杯電力專業(yè)領(lǐng)域詞匯挖掘大賽的數(shù)據(jù)(2)https://www.datafountain.cn/competitions/320,語料共95萬行,約2 000萬詞。
(2) 將結(jié)構(gòu)化數(shù)據(jù)中解析的電力設(shè)備和部件實(shí)體詞作為查詢?cè)~,取得相關(guān)百度百科詞條文本,共有詞條10 271個(gè),共約885萬詞(圖6)。我們對(duì)結(jié)構(gòu)化數(shù)據(jù)電力檢修手冊(cè)進(jìn)行了解析,共得到1 400個(gè)實(shí)體詞,5個(gè)實(shí)體類型,實(shí)體詞數(shù)量分別為“電力設(shè)備”257個(gè)、“設(shè)備部件”459個(gè)、“故障現(xiàn)象”62個(gè)、“故障原因”208個(gè)、“維修措施”414個(gè)。
圖6 百度百科搜索(top)和詞條主頁(bottom)
對(duì)電力數(shù)據(jù)分詞時(shí)采用了通用分詞詞典,包含詞性、頻度等信息。同時(shí)進(jìn)行了電力語料的串頻統(tǒng)計(jì),我們?cè)O(shè)定最大串長(zhǎng)度為12個(gè)字,得到詞串約36萬,并根據(jù)串頻統(tǒng)計(jì)對(duì)分詞詞典的頻度進(jìn)行更新,詞典部分內(nèi)容如表2所示。
表2 分詞詞典內(nèi)容示例
我們對(duì)5個(gè)實(shí)體類別分別按照對(duì)應(yīng)設(shè)備名稱進(jìn)一步細(xì)分,共得到1 487個(gè)子類。對(duì)每個(gè)實(shí)體子類內(nèi)的所有詞匯,按照式(1)分別計(jì)算其與類內(nèi)其他詞匯的平均語義相似度,取分值Top10的詞匯為子類實(shí)體代表詞,如表3所示。
“電測(cè)儀表”子類一共包含11個(gè)子類實(shí)體詞,它們都是與“電測(cè)儀表”相關(guān)的部件名稱。子類中語義分最高的代表詞為“交流電壓表”,它與子類中其余10個(gè)詞的語義相似度平均值約為0.384[參見式(1)],高于其他詞。直觀可見“交流電壓表”和“交流電流表”之間的語義相似度分值較高,從而使兩個(gè)實(shí)體詞總分排名靠前。而“同期表”和“電壓檢測(cè)儀”與其他詞語義相似度較低,從而排名靠后。此外,“直流電壓表”和“直流電流表”詞匯相近,所以二者排名也相近。在其余子類中也可以發(fā)現(xiàn)類似的直觀信息。
江西省域國(guó)土面積16.69萬km2,其中96%屬于鄱陽湖流域。常駐人口4 622萬人,企業(yè)法人單位34.41萬家。湖口站(出境)多年平均徑流量1 507億m3;最大2 646億m3(1998年);最小566.4億m3(1963年)。域外多年平均入境水量50億m3左右。
我們注意到語義相似度分值普遍較小,主要出于以下三方面原因: ①參見式(1),該分值為該詞與子類內(nèi)部所有詞的語義相似度平均值[如“高壓柜”子類中的“中性點(diǎn)間隙”,其與類內(nèi)其他詞的語義相似度總分為1.866=0.092 4×(203-1)]; ②我們訓(xùn)練的基礎(chǔ)電力語料內(nèi)容有限,各實(shí)體詞對(duì)應(yīng)的語義相似詞匯較少; ③電力檢修維修手冊(cè)中提取的實(shí)體詞很少,造成每個(gè)子類中的實(shí)體詞數(shù)量很少,如表3中僅為10~20個(gè)。如果詞匯過多,平均分值也會(huì)大大降低。
表3 實(shí)體子類屬性示例
需要說明的是,具體應(yīng)用中也可以設(shè)定代表詞閾值(如0.05),過濾掉語義分值過低的代表詞,這樣更加合理??梢钥闯?,基于詞向量和語義相似度選取的代表詞能較好地反映子類的語義、公式的合理性,以及代表詞的合理性。
對(duì)于給定文本分詞后的詞語,如果在我們的命名實(shí)體表中查詢到,則直接將其判定為實(shí)體詞,并確定其類型。我們主要針對(duì)詞語沒有出現(xiàn)在實(shí)體表中的情況,評(píng)測(cè)我們提出的命名實(shí)體識(shí)別方法的有效性。由于沒有可供比較的標(biāo)準(zhǔn)電力數(shù)據(jù)集和測(cè)試樣本,我們從實(shí)體詞表中隨機(jī)抽取約5%共298個(gè),并從表中去除這些實(shí)體詞。同時(shí)對(duì)電力文本分詞,選取包括這298個(gè)實(shí)體詞并且多于10個(gè)漢字的句子,共約14萬句作為測(cè)試語料,利用第2節(jié)中介紹的無指導(dǎo)實(shí)體識(shí)別方法發(fā)現(xiàn)實(shí)體和判定類型。
首先遮蓋預(yù)測(cè)文本句中的屏蔽詞,加載BERT-WWM-Finetune全詞預(yù)訓(xùn)練模型,設(shè)定模型預(yù)測(cè)分值閾值λ1=0.05,預(yù)測(cè)屏蔽詞,并記錄模型預(yù)測(cè)分值;然后調(diào)用文本語義相似度模型計(jì)算預(yù)測(cè)詞與子類實(shí)體代表詞的語義相似度,計(jì)算預(yù)測(cè)詞歸屬類簇分值,超過閾值λ2=0.05的標(biāo)記實(shí)體類別,并統(tǒng)計(jì)最終實(shí)驗(yàn)結(jié)果。
表4展示了模型識(shí)別的部分結(jié)果示例,首先把“開路”進(jìn)行遮蓋,我們的模型將其預(yù)測(cè)為實(shí)體詞“短路”,預(yù)測(cè)評(píng)分為0.947 01,同時(shí)對(duì)“短路”與所有實(shí)體子類中的代表詞進(jìn)行語義相似度計(jì)算,根據(jù)式(4)得到所屬的類型為“故障原因”。對(duì)于“變壓器”和“短路”,本文模型分別預(yù)測(cè)出了“電抗器”和“過載”,并通過兩個(gè)子類語義代表詞的相似度計(jì)算,分別給出了正確的實(shí)體類型“電力設(shè)備”和“故障原因”。對(duì)于“電源”,模型則準(zhǔn)確預(yù)測(cè)到了該詞及其實(shí)體類型,這是最理想的情況,但這種情況占比較少,一般僅占10%,但會(huì)隨著基礎(chǔ)訓(xùn)練語料的擴(kuò)大而提升??梢钥闯?,實(shí)體雖然預(yù)測(cè)的并不會(huì)完全準(zhǔn)確,但基本識(shí)別出了實(shí)體,并且能夠給出正確的實(shí)體類型,也可以看作完成了命名實(shí)體識(shí)別任務(wù)。
表4 命名實(shí)體發(fā)現(xiàn)結(jié)果樣例
為了更充分地比較,本文采用了3個(gè)預(yù)訓(xùn)練模型進(jìn)行實(shí)驗(yàn),分別是: ①哈工大訊飛聯(lián)合實(shí)驗(yàn)室通用中文模型“BERT-WWM”; ②使用電力文本語料直接訓(xùn)練的模型“BERT-WWM-Power”; ③使用電力文本語料精調(diào)后的全詞BERT預(yù)訓(xùn)練模型“BERT-WWM-Finetune”。
為了體現(xiàn)方法性能,本文給出命名實(shí)體發(fā)現(xiàn)的執(zhí)行過程實(shí)例,并列出代表性詞匯在三種模型下的預(yù)測(cè)結(jié)果。首先統(tǒng)計(jì)詞匯在語料中出現(xiàn)的頻度,為了提高有效性,過濾長(zhǎng)度小于200個(gè)字符的句子。共得到584個(gè)有效詞匯,表5示例了一些待預(yù)測(cè)詞匯在語料中包含該詞匯的句子數(shù)量,以及該詞匯在語料中總共出現(xiàn)的次數(shù)。
表5 預(yù)測(cè)詞匯語料頻次統(tǒng)計(jì)
我們?nèi)≌Z料句子中包含頻次最高的三個(gè)詞匯“變壓器”“電機(jī)”“電源”作為樣例,分別統(tǒng)計(jì)該詞在三種模型下的預(yù)測(cè)結(jié)果,如表6所示。
表6 三種模型詞匯預(yù)測(cè)結(jié)果統(tǒng)計(jì)
表6可以看出,“變壓器”總計(jì)預(yù)測(cè)正確663次,“BERT-WWM-Finetune”模型預(yù)測(cè)正確445次,占比67%,幾乎都是直接正確預(yù)測(cè)出屏蔽詞;“電機(jī)”總計(jì)預(yù)測(cè)正確1 804次,“BERT-WWM-Finetune”模型預(yù)測(cè)正確923次,占比51%,且“電源”也有類似的結(jié)果??傆?jì)預(yù)測(cè)正確2 967次,正確預(yù)測(cè)屏蔽詞2 615次,三種模型分別占比13%、30%和57%。三個(gè)詞匯總預(yù)測(cè)平均分為0.271,三種模型的平均分分別為0.309、0.215和0.343。由此可見,“BERT-WWM-Finetune”模型在預(yù)測(cè)準(zhǔn)確率、預(yù)測(cè)類型和預(yù)測(cè)分值上均好于其他兩個(gè)模型。
進(jìn)一步,我們統(tǒng)計(jì)了全部詞匯在各模型不同的BERT預(yù)測(cè)分值閾值λ1下,命名實(shí)體識(shí)別和實(shí)體發(fā)現(xiàn)在三種情況下的正確率: 準(zhǔn)確預(yù)測(cè)到屏蔽詞;正確預(yù)測(cè)與屏蔽詞相同類別的實(shí)體詞;預(yù)測(cè)為非已有實(shí)體詞,計(jì)算該詞與實(shí)體聚類簇代表詞的語義相似度,分值超過閾值λ2,則歸屬到類簇對(duì)應(yīng)的類別,如果該類別與屏蔽詞類別相同,則標(biāo)記為新實(shí)體發(fā)現(xiàn)正確。
我們?cè)O(shè)λ1=0.3,λ2=0.05,對(duì)三種BERT模型進(jìn)行了實(shí)驗(yàn),表7給出了三種情形分別的和總計(jì)的正確數(shù)和正確率。“BERT-WWM”模型超過λ1的有效預(yù)測(cè)數(shù)為66 079,總計(jì)實(shí)體類型預(yù)測(cè)正確率為21.37%,其中1 519個(gè)直接預(yù)測(cè)出屏蔽詞,占比2.3%,預(yù)測(cè)到同類別實(shí)體數(shù)占比2.95%,正確通過與子類實(shí)體代表詞的語義相似度方法識(shí)別出的實(shí)體類別占比16.12%。“BERT-WWM-Power”模型超過λ1的有效預(yù)測(cè)數(shù)明顯減少為10 917,但總體準(zhǔn)確率提升為32.09%,尤其是準(zhǔn)確預(yù)測(cè)出屏蔽詞占比10.25%?!癇ERT-WWM-Finetune”模型相對(duì)效果較好,預(yù)測(cè)數(shù)為47 212,總體準(zhǔn)確率最高為33.93%,得到了較好的召回?cái)?shù)和正確率。
表7 三種BERT全詞遮蓋預(yù)訓(xùn)練模型正確率統(tǒng)計(jì)
由于本文可用的電力語料只有約100萬行,約3 000萬詞,相對(duì)深度學(xué)習(xí)模型的數(shù)據(jù)需求規(guī)模較小,因此總體正確識(shí)別率不高。但仍然可以看到基于電力語料訓(xùn)練的模型正確率提升明顯,基于電力語料精調(diào)的全詞預(yù)訓(xùn)練模型表現(xiàn)最好。此外,各模型直接預(yù)測(cè)出屏蔽詞的比率大約占1/3,預(yù)測(cè)詞和屏蔽詞為同一實(shí)體類型的較少,大部分正確的實(shí)體類型都是通過計(jì)算與子類實(shí)體代表詞的語義相似度方法識(shí)別出。
不同BERT預(yù)測(cè)分值閾值λ1下各模型的預(yù)測(cè)正確率統(tǒng)計(jì)如圖7所示??梢钥闯?,三個(gè)模型的性能走勢(shì)基本一致,全詞預(yù)訓(xùn)練精調(diào)模型和使用電力文本語料直接訓(xùn)練的BERT-WWM-Power模型準(zhǔn)確率更高。另外我們也統(tǒng)計(jì)了召回率,發(fā)現(xiàn)哈工大模型和預(yù)訓(xùn)練精調(diào)模型要好于BERT-WWM-Power模型,主要原因是深度學(xué)習(xí)模型的電力訓(xùn)練語料過少,無法覆蓋大量的遮蓋詞模式。
圖7 BERT各預(yù)訓(xùn)練模型在不同閾值下NER正確率分析
本文針對(duì)電力領(lǐng)域數(shù)據(jù)標(biāo)注資源少的問題,提出了一種基于全詞遮蓋預(yù)訓(xùn)練模型的無監(jiān)督命名實(shí)體識(shí)別方法。該方法利用基礎(chǔ)通用詞典,對(duì)領(lǐng)域語料進(jìn)行串頻統(tǒng)計(jì),生成領(lǐng)域詞典,然后從收集的領(lǐng)域基礎(chǔ)語料自動(dòng)解析和判別實(shí)體類、子類和子類實(shí)體代表詞,并精調(diào)領(lǐng)域BERT預(yù)訓(xùn)練模型。對(duì)給定文本,通過遮蓋文本中的名詞進(jìn)行遮蓋詞預(yù)測(cè),然后計(jì)算預(yù)測(cè)詞與實(shí)體子類代表詞的語義相似度,進(jìn)而發(fā)現(xiàn)新實(shí)體并判斷實(shí)體類型。通過實(shí)驗(yàn)數(shù)據(jù)可以看到我們的方法在低資源數(shù)據(jù)場(chǎng)景下具有一定的有效性。由于領(lǐng)域基礎(chǔ)語料較少,而深度學(xué)習(xí)模型性能與數(shù)據(jù)量強(qiáng)相關(guān),無監(jiān)督方法的總體性能還不是很理想,只適用于較粗放的命名實(shí)體識(shí)別場(chǎng)景。但考慮到大部分實(shí)際應(yīng)用場(chǎng)景中數(shù)據(jù)標(biāo)注工作不可行,本文提出的方法仍具有很好的實(shí)用價(jià)值。
后續(xù)工作中,我們計(jì)劃進(jìn)一步擴(kuò)展基礎(chǔ)語料,收集領(lǐng)域論文、技術(shù)文檔等資料,爬取電力領(lǐng)域網(wǎng)站、其他百科網(wǎng)站的電力詞條數(shù)據(jù),分組遮蓋實(shí)體詞訓(xùn)練模型。此外,我們考慮深入研究領(lǐng)域命名實(shí)體識(shí)別的半監(jiān)督方法,標(biāo)記一定量語料作為種子數(shù)據(jù),分析在特定領(lǐng)域種子數(shù)據(jù)對(duì)模型性能的提升情況,進(jìn)而研究在有限資源投入下,如何標(biāo)注數(shù)據(jù)才能獲得較高的性價(jià)比。