李 俊,呂學強
(北京信息科技大學 網(wǎng)絡文化與數(shù)字傳播北京市重點實驗室,北京 100101)
隨著計算機信息技術和網(wǎng)絡技術的快速發(fā)展,各行各業(yè)每天產(chǎn)生并積累大量數(shù)據(jù),從海量數(shù)據(jù)中提取對人們有價值的信息已成為急需解決的問題。關鍵詞抽取是在對象文本中自動抽取能夠體現(xiàn)文本內(nèi)容的中心概念或者重要詞語,可幫助人們快速定位所需文檔,因此其在自然語言處理、圖書館學和情報學等領域得到廣泛應用[1]。
目前,關鍵詞抽取方法主要分為有監(jiān)督和無監(jiān)督兩種。有監(jiān)督的關鍵詞抽取方法通過二分類思想確定文檔中的候選詞是否為關鍵詞。該方法將已標注的關鍵詞數(shù)據(jù)作為訓練語料庫,通過語料庫訓練關鍵詞判別模型,并利用該模型對待處理文本進行關鍵詞提取,但是該方式需要人工提前標注大量語料,并且若在標注過程中存在誤差,則會直接影響模型性能。無監(jiān)督的關鍵詞抽取方法無須事先標注訓練語料,通過關鍵詞重要性排序實現(xiàn)關鍵詞抽取。該方法利用關鍵詞權重等量化指標進行權重計算與排序,選出綜合影響得分較高的若干詞作為關鍵詞。無監(jiān)督的關鍵詞抽取方法近年來受到學者們的廣泛關注,其中的TextRank方法[2]在構建網(wǎng)絡圖時主要利用文檔本身的結構信息,但缺少外部語義知識的支持,而基于Transformer的雙向編碼器表示(Bidirectional Encoder Representation from Transformer,BERT)語言模型能將詞語映射成高維的向量,并保留其語義上的相似關系。
本文將文檔信息與BERT詞語語義信息同時融入基于網(wǎng)絡圖的關鍵詞抽取模型中,通過詞向量進行語義表示并利用BERT詞向量加權方式計算TextRank中詞節(jié)點的概率轉移矩陣,以提升關鍵詞抽取效果。
文獻[3]利用詞圖中的度中心性、接近中心性等中心性指標,加權計算鄰接詞語所傳遞的影響力概率轉移矩陣,提升關鍵詞抽取效果。文獻[4]通過詞語覆蓋范圍權重、位置權重和頻度權重以及TextRank實現(xiàn)關鍵詞自動提取。文獻[5]提出針對中文文檔的關鍵詞抽取算法TextRank-CM。文獻[6]將TextRank與隱含狄利克雷分布(Latent Dirichlet Allocation,LDA)[7]主題模型相結合,通過融合文檔整體的主題信息及單篇文檔的結構信息來提高關鍵詞抽取效果。文獻[8]通過訓練隱馬爾可夫模型挖掘主題信息和關鍵詞,并在測試語料上取得了較好的挖掘效果。文獻[9]通過構建語義網(wǎng)絡圖并融合圖路徑轉化量、詞聚類系數(shù)以及詞窗口信息提出綜合計算指標,且在專利數(shù)據(jù)集中具有較好的性能表現(xiàn)。文獻[10]利用各種圖節(jié)點縮減算法重構語言網(wǎng)絡圖,篩選出文檔中影響得分高的節(jié)點并將其作為關鍵詞。文獻[11]提出在TextRank轉移概率計算過程中融合詞圖的邊和點信息來提升關鍵詞抽取效果。
近年來,隨著Word2Vec[12]、GloVe[13]等詞向量模型和語言模型的發(fā)展,學者們開始利用詞向量模型訓練文本庫生成詞向量獲得詞匯語義關系,并結合傳統(tǒng)TextRank方法進行關鍵詞提取。文獻[14]將詞向量融入候選詞中以增強關鍵詞抽取的語義關系。文獻[15]通過詞語的語義距離計算實現(xiàn)詞語的主題聚類,并依據(jù)聚類結果選取中心詞為關鍵詞。文獻[16]利用文本局部結構信息和文本整體的詞向量語義信息抽取關鍵詞。文獻[17]通過詞向量計算詞語的相似性,再根據(jù)詞聚類算法實現(xiàn)關鍵詞抽取。文獻[18]利用Word2Vec詞向量實現(xiàn)相似詞語的聚類,通過計算距離質心最遠的詞來更新概率轉移矩陣,并將其引入到TextRank詞圖的迭代計算過程中優(yōu)化關鍵詞抽取效率。
綜上所述,在TextRank權值分配計算中如何融合外部語義信息是TextRank方法優(yōu)化的關鍵。詞位置分布加權及LDA主題模型加權等方法均需要對待提取文本進行預處理,但對于不同數(shù)據(jù)集效果差異較大,而詞向量訓練與待抽取關鍵詞的文檔無關,若利用包含外部語義信息的詞向量對TextRank方法進行優(yōu)化,則可以更好地解決關鍵詞抽取問題。因此,本文采用基于網(wǎng)絡圖的關鍵詞抽取方法,將詞向量計算的語義信息和文本信息融入TextRank計算過程中,先利用BERT模型[19]獲取詞向量,再使用詞向量加權方式優(yōu)化TextRank中詞節(jié)點的轉移概率矩陣計算,提升關鍵詞抽取效果。
在單篇文章中通常具有多個關鍵詞,而這些關鍵詞一般不屬于同一個主題,一些學者通過LDA主題聚類進行關鍵詞抽取[6,20],因此結合理論分析和實際應用可知,不同的主題表明這些關鍵詞在語義角度存在明顯差異。傳統(tǒng)關鍵詞抽取方法通過挖掘詞語的共現(xiàn)關系構建詞的圖模型,并對文檔中詞語進行綜合影響力得分排序實現(xiàn)關鍵詞抽取,從而選擇相對重要的詞語。該方法很容易將高頻率的詞語當作關鍵詞,由于多數(shù)情況下一篇文檔中的某些關鍵詞的詞頻很低,因此此類關鍵詞容易被遺漏。為此,本文在TextRank方法的基礎上,引入關鍵詞的語義差異性優(yōu)化詞節(jié)點間的概率轉移矩陣計算,并經(jīng)過迭代計算獲取詞語在文本中的重要程度,從而完成關鍵詞的綜合影響力排序及抽取。
基于TextRank思想將一篇文檔轉換成詞圖模型,先把所有已出現(xiàn)的詞語去重并作為單獨的節(jié)點,通過詞語的共現(xiàn)窗口決定各個詞節(jié)點之間的邊并構成詞圖。單篇文檔的詞圖構建過程如下:
1)對文檔D進行分句,則D由n個句子組成,即D=[s1,s2,…,sn]。
2)對si∈D進行分詞、去停用詞和保留重要詞性等預處理,生成候選關鍵詞序列si=[w1,w2,…,wn]。
3)對關鍵詞序列進行詞圖構建G=(V,E),其中:V為候選的關鍵詞節(jié)點集合,V={v1,v2,…,vn};E為候選關鍵詞之間的鏈接集合,E中的邊由詞的共現(xiàn)關系決定,例如wi、wj在詞窗口內(nèi)共現(xiàn)時會在詞圖中新增兩條有向鏈接邊,即vi→vj和vj→vi。在生成詞圖后,可利用式(1)計算節(jié)點分數(shù):
(1)
其中:In(vi)是其他節(jié)點到詞節(jié)點vi的節(jié)點集合;Out(vj)是詞節(jié)點vj所指向的集合;wji、wjk是兩詞節(jié)點所形成邊的權值;S(vi)是節(jié)點vi的得分權重;d是平滑因子,其實際意義是詞語轉移到其他詞語的概率,并且可以保證式(1)在迭代計算時能夠穩(wěn)定傳遞并達到收斂,通常設置為0.85。
利用迭代計算式(1)完成對候選關鍵詞的重要性排序,該過程是一個馬爾可夫過程,因此最終結果與詞節(jié)點的最初權值及邊的權值無關,僅與文檔中詞節(jié)點的跳轉矩陣相關。傳統(tǒng)TextRank方法使用相同的跳轉概率表示相鄰節(jié)點之間的比重。令P(vi,vj)代表詞節(jié)點vi到詞節(jié)點vj的跳轉概率,利用式(2)計算詞節(jié)點的轉移概率[2]:
(2)
其中,deg(vi)代表詞節(jié)點vi的度。本文提出一種融合BERT向量的語義信息計算方法,優(yōu)化TextRank中的權值計算過程。
詞向量是使用向量的形式來表達詞語,此類方法中應用較廣泛的為Word2Vec模型[12]和BERT模型[19]。Word2Vec模型利用淺層神經(jīng)網(wǎng)絡進行模型學習,將詞語映射到相應的高維空間中得到詞向量。BERT模型本質是一種可微調的雙向Transformer[21]編碼器,其摒棄了循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)結構,將Transformer編碼器作為模型的主體結構,主要利用注意力機制對句子進行建?!,F(xiàn)有的Word2Vec、GloVe等詞向量模型均不能較好地處理一詞多義的情況,而BERT語言模型不僅可以生成詞向量,而且可以解決一詞多義問題。BERT模型結構如圖1所示,其中,E表示訓練向量,Trm表示Transformer編碼器。
圖1 BERT模型結構
BERT將兩個句子序列相連并作為模型輸入部分,在每個句子的開始和結束位置打上標記符號。對于每個單詞,BERT分別進行單詞位置信息編碼、單詞Word2Vec編碼和句子整體編碼3種嵌入操作。將這3種嵌入結果向量進行拼接獲得BERT詞向量。相對已有語言模型,BERT是百層左右的深度神經(jīng)網(wǎng)絡模型,其利用大規(guī)模語料進行模型參數(shù)學習,因此在BERT詞向量中融入了更多的語法、詞法以及語義信息,同時BERT以字為單位進行訓練,在一定程度上解決了Word2Vec面臨的未登錄詞問題。
本文采用BERT向量計算得到外部語義關系并將其融入文檔關鍵詞提取中。根據(jù)統(tǒng)計發(fā)現(xiàn)文檔中的多個關鍵詞不一定具有很強的關聯(lián)性,一篇文檔的關鍵詞通常代表不同的文檔主題,用于概括文檔中心內(nèi)容,例如利用LDA聚類的關鍵詞抽取方法就是針對一篇文章的多個主題提取關鍵詞并取得了較好的效果。因此,考慮到關鍵詞所屬不同主題導致的語義差異性,本文假設在TextRank詞語的權值分配計算中,若相鄰詞節(jié)點集中兩詞節(jié)點的語義差異越大,則賦予更高的轉移概率且具有更高的跳轉權重。本文選用余弦距離表征詞語的語義距離,由式(3)計算得到:
(3)
其中,ai、aj表示候選關鍵詞詞節(jié)點vi、vj的詞向量。由于語義差異越大,轉移概率越高,因此使用式(4)計算節(jié)點vi到節(jié)點vj的跳轉概率:
Psim(vi,vj)=k-sim(ai,aj)
(4)
其中,k為實驗參數(shù),實驗中需對sim(ai,aj)進行歸一化處理,使得sim(ai,aj)∈(0,1),因此令k=1。
根據(jù)馬爾可夫過程可知,節(jié)點的重要性得分與候選關鍵詞圖的轉移矩陣有關。在TextRank節(jié)點影響力得分計算中,某個節(jié)點對其相鄰節(jié)點的權重計算主要分為覆蓋范圍、位置和頻度權重三部分[4],令W表示詞節(jié)點的綜合影響力權重,α、β、γ分別表示這三部分權重所占的比重,計算公式如式(5)所示:
W=α+β+γ=1
(5)
在本文實驗中的參數(shù)設置參考文獻[4],令α=0.33、β=0.34、γ=0.33。
借鑒傳統(tǒng)TextRank方法,通過式(2)計算得到覆蓋范圍影響力Prange,而節(jié)點位置影響力Ploc由式(6)計算得到[4]:
(6)
其中,I(vj)表示詞語vj在文檔中的位置重要性權重,根據(jù)文獻[4]可知,如果vj在標題中出現(xiàn)時,則I(vj)=30,否則I(vj)=1。由于本文實驗語料為新聞文體,若考慮新聞中導語位置的重要性,則實驗效果將得到顯著改善,因此新增權重條件,若vj出現(xiàn)在導語中時,則令I(vj)=10。
根據(jù)上文詞向量語義加權影響力的定義,將一個節(jié)點對相鄰節(jié)點的權重計算優(yōu)化為詞覆蓋范圍、詞位置和詞語義加權影響力三部分。因此,利用式(7)計算得到詞節(jié)點綜合跳轉概率:
P(vi,vj)=α·Prange+β·Ploc(vi,vj)+
γ·Psim(vi,vj)
(7)
改進權重轉移矩陣M的計算公式為:
(8)
假設矩陣M中的j值代表第j個詞節(jié)點vj跳轉到其他詞節(jié)點時的比重,例如pij表示vj跳轉到第i個詞節(jié)點vj的比重,其可通過式(7)計算得到,而矩陣M的穩(wěn)定值則可通過式(9)迭代計算進行確定。
Bi=(1-d)+d×Bi-1×M
(9)
其中,Bi是第i次迭代操作結束時所有節(jié)點的綜合得分。迭代次數(shù)的上限為30,當連續(xù)兩次計算結果的收斂誤差為0.000 1時停止,而每個詞的綜合得分就是其在關鍵詞詞圖中的節(jié)點影響力得分,根據(jù)分值高低對所有詞節(jié)點進行降序排序,并選取其中前N個詞節(jié)點作為關鍵詞抽取結果。
為保證測試數(shù)據(jù)的客觀性和測試結果的可重現(xiàn)性,同時便于對不同關鍵詞抽取方法進行實驗對比,本文實驗使用搜狐校園算法大賽提供的來自搜狐網(wǎng)站的新聞語料,解析其中的新聞標題和正文內(nèi)容并將其作為文檔集,將事先標記的關鍵詞標簽作為文檔對應的人工標注關鍵詞組成測試數(shù)據(jù)集,共選取1 000篇文檔數(shù)據(jù)。本文選擇搜狐校園算法大賽數(shù)據(jù)的主要原因為:1)數(shù)據(jù)由搜狐提供,保證了真實性;2)搜狐新聞的新聞文章關鍵詞通常經(jīng)過人工篩選,具有參考性。
本文提出的關鍵詞自動抽取方法采用Python實現(xiàn),使用Jieba開源工具作為分詞和詞性分析工具。由于BERT模型對訓練條件的要求較高,因此使用Google提供的BERT模型及中文預訓練模型文件(詞向量維度為768)。
實驗使用準確率(P)、召回率(R)以及F值(F)來評價關鍵詞抽取效果并進行統(tǒng)計對比,3種指標的計算方法如式(10)~式(12)所示:
(10)
(11)
(12)
實驗分別抽取N(N取1~10)個關鍵詞作為自動抽取的關鍵詞與數(shù)據(jù)集中人工標注的關鍵詞進行對比。實驗對比方法有:1)TF-IDF,傳統(tǒng)詞頻逆文本頻率關鍵詞抽取方法;2)TextRank,傳統(tǒng)TextRank關鍵詞抽取方法[2];3)M1,利用Word2Vec進行詞向量聚類的關鍵詞抽取方法[17];4)M2,基于詞向量聚類質心與TextRank加權的關鍵詞抽取方法[18];5)BertVecRank,本文提出的關鍵詞抽取方法。
結合表1與圖2可以看出,對文檔進行關鍵詞抽取時,TextRank方法明顯優(yōu)于TF-IDF方法,抽取效果更穩(wěn)定。從F值可以看出,直接利用詞向量聚類進行關鍵詞抽取的M1方法相比M2方法效果略差,而將距離詞向量質心越遠、權重越高的詞作為關鍵詞的M2方法的抽取效果相對更好,表明關鍵詞差異性有助于提高關鍵詞抽取效率,但由于其計算聚類中心時受到外部詞向量計算的影響較大,因此聚類效果與BertVecRank方法存在一定差距。本文使用詞節(jié)點及其鄰接節(jié)點直接進行差異比較,利用BERT詞向量加權方式計算概率轉移矩陣,以減少質心計算誤差對聚類結果的影響,并且增加了不同主題詞間的跳轉概率,具有較好的關鍵詞抽取效果。
表1 5種關鍵詞抽取方法的性能對比
圖2 N取值為1~10時5種關鍵詞抽取方法的準確率、召回率和F值對比
在表1中,當N=3時,不同實驗方法的準確率、召回率和F值基本相同,在實驗過程發(fā)現(xiàn)由于抽取語料中人工提取的關鍵詞平均個數(shù)為3,因此導致關鍵詞為Top3時的準確率、召回率和F值基本一致。當關鍵詞為Top3時,BertVecRank方法與M2方法的F值均為最優(yōu),BertVecRank方法比M2方法的F值提高1.8%。當N取3、5、7和10時,BertVecRank方法的平均F值比M2方法提升2.5%,并結合圖2中F值可知,當BertVecRank方法抽取的關鍵詞數(shù)量大于Top3并不斷增加時,F值與其他方法相比具有明顯優(yōu)勢,說明BertVecRank方法抽取出的關鍵詞整體排序靠前,改進效果明顯。由圖2可看出,當關鍵詞為Top1~Top10時所有方法的準確率、召回率和F值變化情況,其中BertVecRank方法的準確率整體高于其他方法,并且其召回率與其他方法的差距不斷增加??梢?本文利用BERT詞向量獲取外部語義信息,并結合關鍵詞間的差異性加權明顯提升了重要關鍵詞的抽取效率,因此BertVecRank方法的整體抽取效果最佳。
關鍵詞抽取是快速獲取文檔核心語義的重要技術,是自然語言處理和信息檢索等領域的重要組成部分,具有較高的理論和應用價值。本文提出一種融合BERT語義加權與網(wǎng)絡圖的關鍵詞抽取方法,利用BERT詞向量獲取外部語義信息,并結合關鍵詞間的差異性加權提升重要關鍵詞的抽取效率。實驗結果表明,當關鍵詞為Top1~Top10時,本文方法的抽取準確率整體高于TF-IDF、TextRank、M1和M2這4種對比方法。后續(xù)將利用神經(jīng)網(wǎng)絡方法提取文檔的結構信息特征,進一步優(yōu)化關鍵詞抽取效率。