羅婉麗 張 磊
1(四川旅游學院信息與工程學院 四川 成都 610199) 2(四川省農(nóng)村信用聯(lián)合社 四川 成都 610041)
網(wǎng)絡文本數(shù)據(jù)呈爆炸式增長,且呈現(xiàn)出隨機性、模糊性及網(wǎng)絡化的特點。關鍵詞作為表達文本核心意義的最小單位,以凝練簡潔的形式對文本主題進行有效概括,能幫助人們快速地把握文檔主題及內(nèi)容[1],對關鍵詞進行提取在信息檢索、情感分析及輿情分析等領域發(fā)揮著重要作用?,F(xiàn)在主要的關鍵詞提取算法有TF-IDF、TextRank、LDA等,其中TextRank算法以思想簡單、語言弱相關、適用于單文本及多文本等優(yōu)點得到廣泛應用,但也存在忽略詞語間影響力、句子位置、文檔整體結(jié)構(gòu)等諸多不足[2]。針對TextRank算法的不足改進,大量學者做了相關研究。
國內(nèi)文獻對TextRank算法的研究多集中在特征整合、轉(zhuǎn)移概率矩陣改進等方面。李航等[3]考慮詞語平均信息熵、詞性及詞語位置三大特征,通過神經(jīng)網(wǎng)絡訓練優(yōu)化三個特征的權(quán)重分配以完成特征融合,使用融合的特征改進TextRank算法的詞語初始權(quán)重及概率轉(zhuǎn)移矩陣,提高了提取準確率;周錦章等[4]針對詞匯語義差異對TextRank算法的影響,利用FastText將文檔集進行詞向量表示,以詞語間的角余弦位距為基礎構(gòu)建轉(zhuǎn)移概率矩陣后進行迭代計算和關鍵詞抽取,取得較好的實驗結(jié)果;劉竹辰等[5]使用詞語覆蓋范圍、詞語位置、詞頻綜合加權(quán)作為詞語位置分布權(quán)值,計算概率轉(zhuǎn)移矩陣并迭代得到候選關鍵詞評分,改進的方法取得了不錯的效果;余珊珊等[6]將句子與標題相似度、特殊段落中句子位置、關鍵句子、特殊句子權(quán)重、句子長度等因素加入TextRank網(wǎng)絡圖構(gòu)造中,提出了iTextRank方法且實驗證明該方法較經(jīng)典的TextRank算法有更高準確率及更低召回率。
國外文獻關于TextRank算法的研究則以與其他方法結(jié)合提高準確率和應用創(chuàng)新為主線。Mallick[7]以句子為節(jié)點,句子間相似度作為句子間邊權(quán)值來構(gòu)造圖,使用修改后的逆句子頻率對句子中的詞賦權(quán)值,并基于一個簇內(nèi)的句子彼此相似、不同簇內(nèi)的句子各不相同的假設,對圖進行稀疏處理并劃分為不同的簇以生成文本摘要;Ashari等[8]利用TextRank算法、語義網(wǎng)絡及語料庫統(tǒng)計構(gòu)建文檔匯總系統(tǒng),其中使用TextRank提取文檔的主要短語并形成句子作為摘要的輸出,這一過程由標記化語句、圖的建立、使用語義網(wǎng)絡和語料庫統(tǒng)計的連接邊值計算、頂點值計算、排序頂點值以及摘要的創(chuàng)建等子過程組成,使用ROUGE-N方法計算總結(jié)的召回率、準確度和F-Score來測量系統(tǒng)輸出的質(zhì)量;Zhang等[9]從語料中選取與某種子詞集語義相關的詞語或與主題相關但在目標語料中未明確表述出來的詞組成子集,使用改進的TextRank構(gòu)建詞圖模型并計算語料分數(shù)給每個詞,用這些分數(shù)修改ATE計算出的分數(shù);Petasis等[10]以檢查摘要提取和觀點挖掘間是否有重疊以及摘要提取方法是否對觀點挖掘任務有積極影響為動機,將無監(jiān)督摘要提取方法TextRank應用于觀點組成識別任務,在兩個數(shù)據(jù)集上進行驗證得出基于圖的方法對觀點挖掘會產(chǎn)生積極的影響;Barrios等[11]針對自動摘要提取時TextRank算法僅根據(jù)兩個句子共享的內(nèi)容來確定相似關系,提出一種新的相似度函數(shù)來計算邊的權(quán)值,再使用PageRank計算各頂點的重要性挑選出最重要的句子,按句子在文中出現(xiàn)的順序形成摘要。
針對上述問題,本文考慮詞語詞頻及分布情況作為詞語“全局”重要性,在句子范圍內(nèi)結(jié)合拓撲勢理論改進轉(zhuǎn)移概率矩陣,提出結(jié)合拓撲勢與TextRank的關鍵詞提取方法(Topology Potential Combined TextRank,TPC-TextRank)。實驗表明該方法能有效提高關鍵詞提取準確率和召回率。
Mihalcea等[12]提出的TextRank算法主要應用于提取關鍵詞和自動摘要生成,其提取關鍵詞的基本思想為:利用詞在窗口范圍內(nèi)的共現(xiàn)關系構(gòu)造詞項連接圖,用鄰居詞向當前詞的連接表達投票關系,連接條數(shù)反映邊的權(quán)重,再通過公式迭代計算詞語重要性直至收斂,最后將詞語按重要性逆序并選擇排名高的若干詞作為關鍵詞。假設有一篇文檔D,需經(jīng)過以下步驟來實現(xiàn)TextRank算法:
(1)句子劃分。將文檔按句子劃分并對句子編號,即:D={s1,s2,…,sm}。
(2)預處理。該過程包括兩個步驟:① 用分詞工具進行分詞,即si={wi1,wi2,…,win};② 詞性標注并保留特定詞性的詞,如名詞、動詞、形容詞。
(3)詞項圖構(gòu)建。選定窗口大小為N,設詞win在句子si中的位置表示為index(win),若|index(wia)-index(wib)|≤N,則認為詞wia和詞wib存在連接邊。Mihalcea指出:句子是按一定結(jié)構(gòu)組成的,沒有十分“自然”的指向關系來描述詞之間的連接關系。實驗也表明無論詞之間的指向如何,有向圖的提取效果均低于無向圖的提取結(jié)果。因此TextRank算法提取關鍵詞時構(gòu)造的是無向圖。
(4)詞語重要性計算。Mihalcea提出的原始Text-Rank算法迭代公式為:
(1)
式中:WS(Vi)表示詞語Vi的權(quán)重值;d為阻尼系數(shù),表示保證某一詞跳到相鄰詞的概率,(1-d)則表示跳到一個新詞的概率,常取d=0.85;In(Vi)表示指向Vi的詞語集合;Out(Vj)表示Vj所指向的詞語集合;wji表示兩個詞連接邊間的權(quán)重。但算法應用于關鍵詞提取時構(gòu)造的是無權(quán)邊模型,公式變?yōu)椋?/p>
(2)
根據(jù)式(2)迭代計算詞語的重要性直至收斂,一般當兩次迭代結(jié)果差別非常小時(如:兩次結(jié)果差值小于0.000 1)則認為算法結(jié)束。
(5)將詞語按重要性逆序排列并選擇Top-K個詞作為文檔關鍵詞。
網(wǎng)絡結(jié)構(gòu)中各節(jié)點都不是相互獨立而是存在某種聯(lián)系的。法拉第為描述粒子間非接觸相互作用而提出場的概念:處于場中的任意粒子都將受到其他粒子的聯(lián)合作用[13]。文獻[14]從數(shù)據(jù)場的思想出發(fā)提出拓撲勢:節(jié)點在網(wǎng)絡結(jié)構(gòu)中的拓撲位置相當于節(jié)點所處的位勢,反映影響相鄰節(jié)點的能力,稱為拓撲勢。
真實網(wǎng)絡的模塊化特征表明節(jié)點間的相互作用具有范圍特征且節(jié)點的影響力與距離呈反比例關系,這十分符合短程場的概念。因此采用具有短程場特性且數(shù)學性質(zhì)良好的高斯函數(shù)來描述節(jié)點間的相互作用,作用大小通過拓撲勢值來表示。給定網(wǎng)絡G=(V,E)和勢場,其中V={vi|i=1,2,…,n}表示節(jié)點集合,E={(vi,vj)|vi,vj∈V}表示邊的集合。對于任意節(jié)點的拓撲勢值計算如式(3)所示。
(3)
式中:φ(Vi)表示節(jié)點Vi的拓撲勢值;n為在節(jié)點Vi影響范圍內(nèi)鄰居節(jié)點的個數(shù);mj表示節(jié)點Vj的固有屬性,在現(xiàn)實網(wǎng)絡中常設為1;dij表示兩互相連接節(jié)點的最短距離,常用跳數(shù)進行度量;σ為影響因子,主要用于控制節(jié)點的影響范圍。
(4)
TextRank算法在迭代過程中通過詞語在窗口內(nèi)的共現(xiàn)關系構(gòu)建詞項圖且連邊間權(quán)重均勻轉(zhuǎn)移,未考慮詞語的語義信息及句法結(jié)構(gòu)。本文綜合考慮詞語局部和全局重要性,提出了結(jié)合拓撲勢與TextRank算法的關鍵詞提取方法TPC-TextRank。
1)局部重要性。句子常由詞語通過語法規(guī)則組合而成,若將句子抽象為以詞為頂點的網(wǎng)絡,頂點間由于句法結(jié)構(gòu)的原因存在相互影響。拓撲勢值表示網(wǎng)絡中節(jié)點在影響范圍內(nèi)受其他節(jié)點聯(lián)合作用的大小,將其計算方式進行修改后可得到兩個單獨節(jié)點間的影響作用,以此作為詞語間的轉(zhuǎn)移概率,計算如下:
(5)
式中:σ表示影響范圍,其最優(yōu)值常根據(jù)勢熵來確定,但TextRank算法根據(jù)窗口大小N來確定共現(xiàn)關系,則可以通過下式確定σ:
(6)
dij為兩個詞語間距離。設dij=|Index(vi)-Index(vj)|,當dij>N時,dij=0;當dij≤N時,dij=|Index(vi)-Index(vj)|。計算詞語間的拓撲勢做為連接邊的權(quán)重以改進TextRank算法的轉(zhuǎn)移概率矩陣。
2)全局重要性。TextRank算法加入詞頻、詞語分布等語義信息可以消除高頻詞的影響,實現(xiàn)對節(jié)點固有屬性mj的表示,主要包括兩個部分:TF(vj)表示詞語在整個文檔中出現(xiàn)的次數(shù);DF(vj)表示詞語在句子中的分布情況。要注意的是,文章都是高度聚合的,若詞語在文中分布越廣則更有可能成為關鍵詞。TF(vj)和DF(vj)的計算如式(7)-式(8)所示:
(7)
(8)
詞語固有屬性mj表示為:
mj=TF(vj)×DF(vj)
(9)
將式(9)代入式(5),則轉(zhuǎn)移概率計算公式為:
(10)
TPC-TextRank算法的基本流程如圖1所示。
圖1 TPC-TextRank算法流程
對TPC-TextRank算法流程進行如下說明:
(1)輸入文檔D。
(2)按句子對文檔進行劃分后按句子進行分詞、停用詞去除、詞性標注等預處理。
(3)根據(jù)式(9)計算詞語全局重要性。
(4)設定滑動窗口大小為N,在窗口范圍內(nèi)通過詞在句子范圍內(nèi)的共現(xiàn)關系構(gòu)建詞項圖。
(5)結(jié)合詞語全局重要性及詞項圖使用式(10)計算詞語的拓撲勢值,作為詞語的轉(zhuǎn)移概率。
(6)結(jié)合詞項圖及轉(zhuǎn)移概率構(gòu)造轉(zhuǎn)移概率矩陣。
(7)根據(jù)式(2)迭代計算詞語重要性直至收斂。
(8)詞語按重要性逆序排列并輸出關鍵詞集合。
實驗數(shù)據(jù)選取清華大學劉知遠團隊提供的2010年6月12日至2010年12月29日網(wǎng)易新聞信息,共計13 702條。每一條新聞包括“content”“title”“tags”等14個字段。其中主要用到了表示新聞正文的“content”字段,人工標注標簽的“tags”字段。實驗環(huán)境為Windows 10,開發(fā)語言為Python 3.7,選用自然語言處理包TextRank4ZH和Jieba輔助實驗仿真。
實驗效果通過準確率(P)、召回率(R)及F值(F)進行驗證。設經(jīng)TPC-TextRank算法提取的關鍵詞集合為TPC,原始標注的關鍵詞集合為TAG,則:
(11)
(12)
(13)
為驗證TPC-TextRank算法的效果,共設計了兩組實驗。第一組實驗:因TextRank和TPC-TextRank都將受滑動窗口大小及Top-K大小的影響,為驗證TPC-TextRank算法引入詞語局部重要性對最終效果的影響,設計實驗取不同Top-K時準確率、召回率及F值隨滑動窗口大小變化的情況,實驗結(jié)果如圖2所示。其中T-precision、T-recall、T-Fvalue分別表示TextRank算法的準確率、召回率、F值,TPC-precision、TPC-recall、TPC-Fvalue表示TPC-TextRank算法的準確率、召回率、F值。第二組實驗:TF-IDF算法、TextRank算法、TPC-TextRank算法三者在Top-K值不同的情況下所得到的結(jié)果是不同的,而TextRank和TPC-TextRank又受到滑動窗口大小的影響,故設計實驗考查三種算法在滑動窗口一定的情況下準確率、召回率及F值隨Top-K取值變化的情況,實驗結(jié)果如圖3所示。
圖2 TextRank與TPC-TextRank算法不同Top-K值時對比圖
圖3 三種算法對比圖
從圖2(a)、(b)可以看出,在Top-K值較小時TPC-TextRank算法三項指標均高于TextRank算法,且TextRank算法各項指標隨著滑動窗口的增大而呈平衡趨勢,而TPC-TextRank算法效果隨滑動窗口的增大而呈上升趨勢,說明考慮詞語全局及局部重要性時窗口越大越利于挖掘詞語間的關聯(lián)關系。從圖2(c)、(d)可以看出,在Top-K值增大后,TPC-TextRank算法三項指標的起點低于TextRank算法,說明TPC-TextRank算法在窗口較小時對詞語間的關聯(lián)關系挖掘能力較弱,但隨著滑動窗口的增大其效果呈現(xiàn)上升趨勢,驗證了考慮詞語局部及全局影響對關鍵詞提取效果的提升。
由圖3可以看出,TF-IDF算法隨著Top-K取值的增加,準確率呈降低趨勢而召回率呈升高趨勢,說明候選項中提取準確的項數(shù)增速與候選項的增速不匹配,即未能有效地準確提取出關鍵字;但其余兩種算法隨著滑動窗口的增大以及Top-K取值的增加,準確率均呈現(xiàn)上升趨勢,說明滑動窗口的變化在構(gòu)建詞項圖時更加利于發(fā)現(xiàn)詞語之間的關聯(lián)關系。再結(jié)合圖2的分析結(jié)果,TPC-TextRank算法可更深層次地挖掘詞語間的語義信息并應用于TextRank算法,提取效果優(yōu)于傳統(tǒng)的TextRank算法。
由上述實驗結(jié)果可見,TF-IDF思想簡單且未考慮詞語語義信息,在實際中無法展現(xiàn)出良好的提取準確率。傳統(tǒng)的TextRank算法雖然不依賴于語料庫且是基于圖的提取方法,但其迭代過程中連接邊的權(quán)值均勻分配,同樣忽略了詞語的語義信息而使得算法效果不佳。本文提出的TPC-TextRank方法綜合考慮詞語的全局及局部重要性,使用拓撲勢的思想對轉(zhuǎn)移概率矩陣進行改進,再結(jié)合傳統(tǒng)的TextRank算法實現(xiàn)了提取準確率及召回率的提升。
關鍵詞是指能反映文本主題或主要內(nèi)容的詞語。作為自然語言處理領域的一個重要子任務,關鍵詞提取在信息檢索、情感分析、對話系統(tǒng)、文本分類等領域發(fā)揮著重要作用。本文針對傳統(tǒng)的TextRank算法提取關鍵詞時未考慮詞語的語義信息、構(gòu)建詞項圖時僅以詞語統(tǒng)計信息作為連接邊權(quán)值的考量、權(quán)值以均分的形式向相鄰節(jié)點傳統(tǒng)這些不足,使用詞頻和詞語分布情況作為詞語全局重要性指標,再結(jié)合拓撲勢場理論相計算詞語的拓撲勢值作為局部重要性,將局部重要性引入傳統(tǒng)TextRank算法實現(xiàn)轉(zhuǎn)移概率矩陣的構(gòu)建,實驗結(jié)果表明該方法實現(xiàn)了關鍵詞提取準確率和召回率的提升。
TPC-TextRank算法在考慮詞語的全局重要性的基礎上結(jié)合拓撲勢思想形成了詞語的局部重要性考慮,但與傳統(tǒng)TextRank算法相結(jié)合后仍需要進行多次迭代計算,使得算法的時間復雜度較高。本研究的后續(xù)工作將探討使用預先聚類、局部游走等方法降低TPC-TextRank算法的時間復雜度。