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