楊 政 ,尹春林 ,蔡 迪 ,李慧斌
(1.云南電網(wǎng)有限責(zé)任公司電力科學(xué)研究院,云南 昆明 650217;2.西安交通大學(xué) 數(shù)學(xué)與統(tǒng)計(jì)學(xué)院,陜西 西安 710049)
針對(duì)特定領(lǐng)域的文本數(shù)據(jù),領(lǐng)域詞的詞庫(kù)構(gòu)建是最為關(guān)鍵的任務(wù)之一。傳統(tǒng)領(lǐng)域詞發(fā)現(xiàn)方法依賴互信息或鄰接熵得到候選詞集,進(jìn)而利用word2vec 進(jìn)行詞向量轉(zhuǎn)化、K-means 進(jìn)行聚類[1],最終得到行業(yè)領(lǐng)域詞。傳統(tǒng)方法對(duì)詞語(yǔ)組合規(guī)律運(yùn)用得不夠全面,因此這類方法篩選的候選詞集存在諸多不合理的詞語(yǔ)。領(lǐng)域詞發(fā)現(xiàn)分為候選詞集篩選與字符串過(guò)濾兩個(gè)步驟。
在候選詞集篩選方面,領(lǐng)域詞發(fā)現(xiàn)算法主要是基于詞語(yǔ)統(tǒng)計(jì)特性的無(wú)監(jiān)督方法或序列模式機(jī)器學(xué)習(xí)的有監(jiān)督算法?;跓o(wú)監(jiān)督的方法中,互信息和凝固度是最常見的用來(lái)篩選詞語(yǔ)的度量,劉偉童等[2]提出使用互信息初步篩選詞集,隨后用鄰接熵對(duì)詞集進(jìn)行再過(guò)濾的方法。劉昱彤等[3]使用改進(jìn)的類Apriori 算法,通過(guò)組合、統(tǒng)計(jì)頻率、過(guò)濾3 個(gè)步驟來(lái)篩選候選詞集。杜麗萍等[4]提出利用改進(jìn)的互信息,同時(shí)結(jié)合一定的構(gòu)詞規(guī)則篩選候選詞集。無(wú)監(jiān)督算法泛化性優(yōu)良,但缺少規(guī)則,會(huì)遺留有較多垃圾串與非領(lǐng)域詞?;诒O(jiān)督的機(jī)器學(xué)習(xí)詞集篩選方法有馬建紅等[5]提出的基于CNN 和LSTM 抽取詞特征,隨后使用半馬爾科夫條件隨機(jī)場(chǎng)(SCRF)來(lái)識(shí)別詞語(yǔ)邊界。Fu Guohong 等[6]在隱馬爾可夫模型(HMM)的框架下運(yùn)用命名實(shí)體識(shí)別(NER)的思路,同時(shí)結(jié)合上下文篩選出候選詞集。陳飛等[7]提出運(yùn)用條件隨機(jī)場(chǎng)來(lái)判斷分詞的詞匯邊界是否為候選詞邊界的方法。監(jiān)督方法通常需要大量標(biāo)注數(shù)據(jù)進(jìn)行訓(xùn)練,耗費(fèi)高額的人工成本。此外,部分方法選擇基于純規(guī)則的構(gòu)詞法[8-9](即漢語(yǔ)成詞規(guī)則)與一些領(lǐng)域先驗(yàn)知識(shí)結(jié)合,進(jìn)行候選詞集的篩選。這種方式雖然準(zhǔn)確性相對(duì)較高,但是規(guī)則維護(hù)復(fù)雜,基本無(wú)跨域能力。
在得到候選詞集之后還需對(duì)垃圾字符串與非領(lǐng)域詞進(jìn)行過(guò)濾。趙志濱等[10]定義了詞語(yǔ)相似度計(jì)算的Words-Avg 方法,通過(guò)與閾值對(duì)比來(lái)判斷候選詞集里的詞是否為領(lǐng)域詞。王鑫等[11]在使用word2vec 訓(xùn)練候選詞向量時(shí)加入了詞類信息,進(jìn)而得到化學(xué)領(lǐng)域詞。吉久明等[12]運(yùn)用改進(jìn)的GloVe 詞向量模型提取詞語(yǔ)向量,隨后進(jìn)行K-means 聚類,最終得到領(lǐng)域詞。
圖1 展示了本文提出的方法,共分為5 個(gè)步驟:文本預(yù)處理、候選詞篩選、文本切片算法、常用詞過(guò)濾以及譜聚類[13]。
圖1 本文所提方法流程圖
在對(duì)文本進(jìn)行候選詞集篩選前,需對(duì)電力科技文檔進(jìn)行文本預(yù)處理,處理后得到文本記為P。具體處理步驟如下:
(1)篩選出電力科技文檔中目的和意義、項(xiàng)目研究?jī)?nèi)容與實(shí)施方案三部分,避免其他電力領(lǐng)域詞很少出現(xiàn)的部分干擾最終結(jié)果,同時(shí)提升算法運(yùn)行效率;
(2)去除掉停用詞,即語(yǔ)氣助詞、副詞、介詞、連接詞(如“的”)以及標(biāo)點(diǎn)符號(hào)。
在得到預(yù)處理后的文本P 后,本文提出了一種新的候選詞集篩選度量“成詞率(Suc)”,用以對(duì)文本P 中的詞語(yǔ)進(jìn)行篩選,篩選后得到初步的詞集H1。其中設(shè)定最長(zhǎng)詞語(yǔ)長(zhǎng)度n 為4,候選詞篩選度量Suc 的閾值設(shè)定為0.62,成詞率由互信息(Mut)、左右熵(Adj)與構(gòu)詞規(guī)律(Reg)構(gòu)成。
(1)互信息(Mut):指一個(gè)隨機(jī)變量中包含的關(guān)于另一個(gè)隨機(jī)變量的信息量,即隨機(jī)變量間的聯(lián)系程度,包含的信息量越高,則變量間聯(lián)系程度越高,詞內(nèi)凝固度越高,該字符串則越容易成詞。互信息Mut 的計(jì)算公式如式(1)~式(3)所示,分別表示2、3、4 字詞的互信息,其中,x、y、z 代表單個(gè)字符。
(2)左右熵(Adj):指候選詞的自由程度,左右熵表示詞語(yǔ)搭配的不確定性。左右熵越大,詞語(yǔ)搭配的不確定性越大,即候選的詞左右搭配越豐富,成詞概率越高,計(jì)算公式如式(4)、式(5)所示,Adjl、Adjr分別為左熵和右熵,w 為字符串,wr、wl為單前綴與單尾綴。
(3)構(gòu)詞規(guī)律(Reg):通過(guò)對(duì)電力行業(yè)領(lǐng)域詞的觀察發(fā)現(xiàn),絕大多數(shù)領(lǐng)域詞依然遵循構(gòu)詞學(xué)基本原理[14]:名詞與名詞、動(dòng)詞、形容詞結(jié)合非常頻繁,其他結(jié)合方式構(gòu)成電力領(lǐng)域詞的比例約四分之一,本文定義了字符串結(jié)合成詞的構(gòu)詞規(guī)律Reg,其中a、b 為搭配成詞的兩個(gè)字符串。
(4)成詞率(Suc):用來(lái)篩選候選詞集的度量,結(jié)合了上述3 個(gè)變量的優(yōu)點(diǎn)。
其中,k1和k2將互信息與左右熵的值映射到相近的量級(jí),k1取值為Mut 均值除以Adjl的均值,k2取值為Mut均值除以Adjr的均值;m 為歸一化常數(shù)。
初步的詞集H1中仍有諸多未被篩選的電力領(lǐng)域詞,本文提出使用文本切片算法,算法步驟分為分詞和回溯,具體如下:
(1)分詞:在得到初步的詞集H1以后,本文選擇用H1對(duì)預(yù)處理后的文本P 進(jìn)行切分,旨在得到更為合理的候選詞集。在對(duì)預(yù)處理后的文本P 進(jìn)行分詞時(shí),遵循的原則為“最準(zhǔn)確切分原則”,例如:“各項(xiàng)目經(jīng)理”這個(gè)字符串,很有可能“各項(xiàng)”、“項(xiàng)目”、“經(jīng)理”、“項(xiàng)目經(jīng)理”均在H1中,那么就選擇不對(duì)此字符串進(jìn)行分詞,得到分詞后的候選詞集定義為H2。
(2)回溯:檢查候選詞集H2中的詞語(yǔ),如果詞語(yǔ)長(zhǎng)度小于n,則判斷該詞語(yǔ)是否在H1中,若不在H1中則從H2中刪除;如果詞語(yǔ)長(zhǎng)度大于n,則判斷該詞語(yǔ)內(nèi)部字符串是否有一半以上位于H1中,若沒(méi)有則從H2中刪除。例如:H2中有詞語(yǔ)“單相接地故障”,該詞語(yǔ)長(zhǎng)度大于n,則判斷“單相”、“單項(xiàng)接”、“單項(xiàng)接地”……是否在H1中,若不在H1中的詞語(yǔ)個(gè)數(shù)小于其內(nèi)部字符串組合情況總數(shù)的一半以上,則對(duì)該詞語(yǔ)予以刪除。
分詞回溯舉措中,分詞意在最大化候選集中詞語(yǔ)的準(zhǔn)確性;回溯舉措目的是進(jìn)一步確保候選詞集中的詞語(yǔ)是內(nèi)部足夠“凝固”的,提高了候選詞語(yǔ)的準(zhǔn)確性。
在得到的候選詞集H2中,需要進(jìn)一步對(duì)非領(lǐng)域詞進(jìn)行過(guò)濾。本文從中國(guó)知網(wǎng)中選擇經(jīng)濟(jì)、哲學(xué)、化工3 個(gè)領(lǐng)域分別爬取50、50、40 篇非電力領(lǐng)域科技文本,對(duì)這140 篇文檔重復(fù)第1.1~1.3 小節(jié)步驟,得到詞集H21,同時(shí)將H2過(guò)濾掉H2與H21的交集,進(jìn)而得到詞集H3,如式(8)所示。
此時(shí)得到的候選詞集H3除了電力行業(yè)領(lǐng)域詞外,還有其他領(lǐng)域詞以及不常用的非電力行業(yè)詞,諸如:“麥克斯韋方程”、“對(duì)抗樣本”、“池化層”等。因此,需要對(duì)H3中的詞語(yǔ)進(jìn)行聚類處理,此處選擇BERT[15]算法對(duì)詞集中的詞語(yǔ)進(jìn)行向量化處理,維度為512,最后運(yùn)用譜聚類進(jìn)行降維處理并聚類,最終得到電力領(lǐng)域詞集H4。
譜聚類:把所有數(shù)據(jù)看作空間中的點(diǎn),這些點(diǎn)可以用邊連接起來(lái),距離較遠(yuǎn)的兩個(gè)點(diǎn)之間的邊權(quán)重值較低,距離較近則較高。通過(guò)對(duì)所有數(shù)據(jù)點(diǎn)組成的無(wú)向圖G=(V,E)進(jìn)行切圖,讓切圖后不同的子圖間邊權(quán)重和盡可能低,子圖內(nèi)的邊權(quán)重和盡可能高,從而達(dá)到聚類的目的。其中,圖頂點(diǎn)間權(quán)重集合為E={Ai,j},鄰接矩陣為W={Ai,j},定義度D 為與當(dāng)前圖相連的所有圖的權(quán)重Ai,j之和。優(yōu)化函數(shù)如式(9)所示:
本文從中國(guó)南方電網(wǎng)有限公司云南電力科學(xué)研究院科技項(xiàng)目申報(bào)文檔數(shù)據(jù)庫(kù)中選取了140 篇項(xiàng)目可研申請(qǐng)書作為領(lǐng)域詞發(fā)現(xiàn)的語(yǔ)料庫(kù),研究主題主要包括:高電壓與絕緣技術(shù)、電機(jī)與電氣以及電力系統(tǒng)及自動(dòng)化,表1 給出了數(shù)據(jù)集的組成情況。其中語(yǔ)料中的電力領(lǐng)域詞總數(shù)為619 個(gè),例如:高壓、絕緣、電路、相位、電阻、繼電器等。
表1 語(yǔ)料庫(kù)中各類文本的數(shù)量
實(shí)驗(yàn)環(huán)境為:8 核16 線程CPU,Ubuntu20.04,Python3.6,TensorFlow-GPU 2.1.0,Nvidia 2070s 顯卡。
在得到語(yǔ)料庫(kù)后對(duì)每篇文檔做如下處理,處理前后文檔大小及本文所提算法運(yùn)行時(shí)間如表2 所示:
表2 語(yǔ)料處理前后對(duì)比
(1)抽取出文檔中目的和意義、項(xiàng)目研究?jī)?nèi)容與實(shí)施方案兩部分。
(2)對(duì)抽取出的部分做正則化處理,包括去掉通用格式、數(shù)字等對(duì)中文領(lǐng)域詞發(fā)現(xiàn)無(wú)意義的字符。
(3)將每篇文檔被抽取出的部分拼接起來(lái)并存入JSON數(shù)據(jù)庫(kù),形成需要的數(shù)據(jù)。
評(píng)價(jià)指標(biāo):本文選取的模型評(píng)價(jià)指標(biāo)為準(zhǔn)確率P′、召回率R 以及F 值,這些度量指標(biāo)用來(lái)評(píng)判電力詞領(lǐng)域詞發(fā)現(xiàn)模型效果,計(jì)算公式如下:
其中,識(shí)別到的詞語(yǔ)總數(shù)為識(shí)別出的電力領(lǐng)域詞集;語(yǔ)料中的電力領(lǐng)域詞總數(shù)為人工篩選的電力領(lǐng)域詞集;識(shí)別正確的電力領(lǐng)域詞為識(shí)別出的電力領(lǐng)域詞集與人工篩選的電力領(lǐng)域詞集重合的部分。
參數(shù)設(shè)置:k1、k2由互信息(Mut)的均值與左右熵(Adj)權(quán)重來(lái)確定。對(duì)于成詞率閾值,本文選取貪心算法進(jìn)行閾值的取值計(jì)算,設(shè)定成詞率Suc 閾值取值介于0~1 之間,步長(zhǎng)為0.1,設(shè)定k1和k2取值介于100~500 之間,步長(zhǎng)為1,m 為歸一化常數(shù),n_clusters 與gamma 為譜聚類參數(shù),具體設(shè)置如表3 所示。
表3 參數(shù)設(shè)置
首先,使用本文方法對(duì)140 篇電力科技文檔進(jìn)行領(lǐng)域詞發(fā)現(xiàn),同時(shí)將聚類效果進(jìn)行可視化。如圖2 所示,圓點(diǎn)表示電力領(lǐng)域詞,五角星為非電力領(lǐng)域詞,可以發(fā)現(xiàn),與預(yù)期的預(yù)測(cè)結(jié)果基本一致,譜聚類輸出結(jié)果中,電力領(lǐng)域詞基本被聚集在了一起。
圖2 譜聚類可視化效果
為了更加直觀展示本文提出的基于成詞率和譜聚類的領(lǐng)域詞發(fā)現(xiàn)方法的效果,進(jìn)一步對(duì)聚類后的詞語(yǔ)做部分展示,如圖3 所示。
圖3 本文方法用于電力文本領(lǐng)域詞發(fā)現(xiàn)的效果展示(部分)
從圖3 中可以發(fā)現(xiàn),篩選出的電力詞匯是具有一定可信度的,但領(lǐng)域詞中也有像“自動(dòng)化”這種經(jīng)常出現(xiàn)在電力科技文檔里的詞語(yǔ),也有“電信網(wǎng)”這種帶“電”字樣卻不是電力行業(yè)領(lǐng)域詞的詞語(yǔ);非領(lǐng)域詞中也有“相位”、“母線”這種個(gè)別被分錯(cuò)的電力領(lǐng)域詞。
為了進(jìn)一步驗(yàn)證提出方法的有效性,本文做了4 個(gè)消融實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表4 與圖4 所示??梢园l(fā)現(xiàn),本文提出的成詞率相比傳統(tǒng)運(yùn)用互信息和左右熵的方法有明顯優(yōu)勢(shì);使用文本切分算法后,各項(xiàng)指標(biāo)也有明顯提升。譜聚類方法相比傳統(tǒng)K-menas 聚類方法也有明顯優(yōu)勢(shì)。值得注意的是,聚類算法會(huì)使召回率與聚類前相比有所降低,主要原因在于聚類操作會(huì)使部分電力領(lǐng)域詞被錯(cuò)分為非領(lǐng)域詞。
圖4 實(shí)驗(yàn)結(jié)果展示
表4 實(shí)驗(yàn)結(jié)果展示
本文通過(guò)結(jié)合統(tǒng)計(jì)特征與語(yǔ)言規(guī)則,提出了成詞率這一新的過(guò)濾指標(biāo),并結(jié)合譜聚類實(shí)現(xiàn)無(wú)監(jiān)督電力科技文本領(lǐng)域詞發(fā)現(xiàn)新方法。實(shí)驗(yàn)結(jié)果表明,所提方法與現(xiàn)有傳統(tǒng)方法相比有效提升了候選詞集篩選的準(zhǔn)確性,同時(shí)在詞語(yǔ)聚類時(shí)有效地解決了詞向量維數(shù)過(guò)高的問(wèn)題。
后續(xù)研究將著眼于對(duì)成詞率指標(biāo)的改進(jìn)以及將詞嵌入過(guò)程與聚類過(guò)程更加有效的融合,使其能夠更準(zhǔn)確地過(guò)濾非電力領(lǐng)域詞,進(jìn)一步提升方法效率和精度。