李志強,潘蘇含,戴 娟,胡佳佳
(揚州大學 信息工程學院,江蘇 揚州 225000)
隨著信息化的快速普及,網頁中的信息數據日益增多。面對海量的文本信息,如何準確、高效地對文章內容進行檢索,成為目前的研究熱點。對于文本的分析,一般會先從關鍵詞入手,一篇文章的關鍵詞不但可以概括文章的主題,還能反映整篇文章所表達的主要內容與情感傾向。因此,高效、準確地獲取關鍵詞,對于文本分類、自動摘要和文本檢索至關重要。
近年來,國內外研究人員在關鍵詞提取技術領域展開了大量的研究工作,同時也提出了很多關鍵詞提取算法。其中主要算法有基于隱含主題模型的關鍵詞抽取(LDA)[1]、基于TF-IDF詞頻統計的關鍵詞抽取[2]和基于詞圖模型的關鍵詞抽取(TextRank)[3]。上述三種算法因其簡單易行而應用廣泛。
其中,基于隱含主題模型的關鍵詞抽取算法是根據文檔和單詞的主題分布相似度來計算單詞的重要性,由于該方法一般依賴對語料庫內容進行訓練得到所需信息,因此,這種方法獲取到的關鍵詞的質量與訓練語料庫主題分布密切相關。基于TF-IDF算法的詞頻統計關鍵詞提取(term frequency-inverse document frequency)主要通過對詞語出現的頻次來判斷詞語對文章的重要性,是一種成熟的基于統計的提取方法。該方法在關鍵詞提取的過程中過度依賴詞頻特征,忽略了語義、上下文環境等其他特征。為此,往往會引入其他特征因子進行計算以此減少對詞頻的依賴。TextRank算法是基于圖的排序算法,利用共現窗口實現部分詞語之間的關系構建,對后續關鍵詞進行排序,直接從文本本身中提取關鍵詞。但是該方法沒有分析詞語重要性的不同是否會影響相鄰節點權值轉移的問題,并且沒有利用文檔語料庫的整體信息,詞語的權重信息并沒有實際意義,不能區分連接上的強弱。
為了進一步提高關鍵詞提取的效果與質量,許多學者對上述算法進行改進。郎冬冬等人[4]提出一種基于LDA和TextRank的文本關鍵短語抽取方法。顧益軍等人[5]結合LDA與TextRank,使候選節點詞語的重要性按文檔集主題分布進行了非均勻轉移。但是結果受訓練語料庫主題分布影響較大。張瑾等人[6]、謝晉等人[7]考慮了結合詞語位置和詞跨度的方法對TF-IDF權重進行改進,或者利用語義的連貫性,結合詞頻和詞語位置特征進行加權分析[8]。另外也有部分學者引入信息熵[9]的方法。但這些方法在應用過程中都存在一定的問題,比如計算復雜度較高,或者在文章類型和語料規模上需要相當的規模。還有一些學者結合文章綜合信息和引用新聞類別因子的方法[10-12],結合了其他特征信息進行加權,在一定程度上能夠解決詞頻依賴問題。但這些方法未考慮關鍵詞的詞性以及關鍵詞覆蓋度不同所帶來的影響。Biswas S K等人[13]、Yan Ying等人[14]提出了基于圖的關鍵詞提取方法,方法中分別考慮了詞語的上下文環境,詞語的位置,詞語的中心性,詞性等特征,修改詞語的初始權重等,得到了不錯的提取效果。
針對上述問題,基于文獻[13-14]的啟發,文中綜合考慮詞語對于單個文檔與文檔集的重要性來進行關鍵詞抽取。選用TF-IDF與平均信息熵綜合計算詞語對于單文檔與文檔集的重要性,然后計算出詞語的綜合權重來改進TextRank詞匯節點的初始權重以及概率轉移矩陣。通過多組實驗對比分析,經過改進后的方法能夠更高效、準確地獲取關鍵詞信息。
對在關鍵詞提取過程中需要用到的相關算法進行介紹,主要有TF-IDF算法與平均信息熵算法。這兩種算法主要用于詞語對單個文檔和文檔集的重要性計算。
TF-IDF算法的基本思想是:利用詞語頻次(term frequency,TF)和逆文檔頻率(inverse document frequency,IDF)相乘得到詞語的權重值[15]。根據TF-IDF算法,詞語權重WTF-IDF(i)的計算公式如下:
WTF-IDF(i)=TFi*IDFi
(1)
IDFi=log(N/DFi)
(2)
其中,TFi表示詞語i在文檔內容中出現的次數/文檔內容的總詞數,即詞語i在文檔中出現的頻率,N表示語料庫中文檔總數,DFi表示包含詞語i的文檔數,IDFi表示詞語i的主題表現能力。
根據上述公式可知,如果詞語在某一篇文檔中出現頻率較高,但是在語料庫中包含該詞的文檔數較低,則該詞根據TF-IDF算法得到的權重值WTF-IDF(i)就越高,也就是說該詞語可以在一定程度上表示文章的主題內容。反之,則說明該詞語不是重要詞語,不能表現文章的主要內容。
平均信息熵的基本思想是:根據詞頻在不同文檔中出現的頻數,結合整體語料庫計算所有詞語對于單個文檔和文檔集的重要性,通過平均信息熵可以衡量詞語在整個文檔集中分布的均衡度。根據平均信息熵算法,詞語權重WEntropy(i)的計算公式如下:
(3)
其中,fwk表示詞w在文檔k中出現的頻次,nw表示詞w在整個文檔集中出現的頻次,N表示語料庫中文檔的總數。
如果詞i在各類別文檔中出現頻率相當,則其WEntropy(i)的值接近于最小值0,表示其并不能很好地表示文檔的主題內容。反之,如果詞語i在各類文檔中出現頻率差別很大,其WEntropy(i)的值接近于最大值1,表示其對文檔主題有很好的表現力。
傳統的TextRank算法是將一篇文檔轉換成一張有向帶權的詞圖模型,是將文本進行分割,分割成基本單元,即詞語,每個基本單元看作是一個節點,每個節點之間的邊由詞節點之間的共現關系決定,而節點的重要性又由相鄰節點指向數量決定。TextRank算法的計算方式如下所示。
(4)
構建TextRank關鍵詞圖G=(V,E),其中V為節點集合,E為節點之間的邊集合;In(Vi)是節點Vi的入度點的集合,即指向節點Vi的節點集合;Out(Vj)是節點Vj的出度點集合,即節點Vj指向的所有節點的集合;Wji是節點Vj與節點Vi之間邊的權重;d是阻尼系數,一般取值為0.85,其作用是表示當前節點向其他任意節點跳轉的概率,同時能夠保證讓權重能夠穩定的傳遞至收斂,最終計算每個詞語的權重并進行排序,選取topN作為N個關鍵詞并輸出。
傳統TextRank算法中,每個節點初始權重為1或1/N,即節點的初始權重相同,且節點權值均勻轉移。但是通過研究發現,基于詞語重要性加權詞語轉移概率的方法可以有效改進關鍵詞提取的效果[16-17]。因此,文中選用TF-IDF和平均信息熵兩個特征來計算詞語的權重,用計算得到的綜合特征信息來改進TextRank詞匯節點的初始權重大小以及概率轉移矩陣。
選取任意一個詞i,定義詞i的綜合權重計算方式如下:
(5)
其中,WTF-IDF(i)是詞語通過TF-IDF計算得到的權重值,WEntropy(i)是詞語的平均信息熵權值。
根據TextRank算法,節點間的轉移概率計算公式為:
(6)
根據式(6)可知,節點的權重迭代公式如下:

(7)
其中,W(Vj,Vi)表示節點Vj到節點Vi邊的轉移概率,即通過式(6)計算所得,WWeight(Vi)表示由式(5)得到的綜合權重值。
基于改進的TextRank關鍵詞提取算法的提取流程如圖1所示。

圖1 基于改進的TextRank關鍵詞提取算法的提取流程
輸入需要提取關鍵詞信息的文本內容,關鍵詞提取步驟如下:
第一步:文本預處理。對文本中的內容進行分詞,詞性標注,只保留名詞、專有名詞、動詞、形容詞和副詞,并刪除文本中的停用詞。
第二步:權重計算。計算得到文本中每個詞語的WTF-IDF,WEntropy,并計算綜合權重WWeight。
第三步:關鍵詞提取。構建基于詞語綜合權重的加權節點初始值及節點概率轉移矩陣改進的TextRank模型,最終計算選擇前N個權重比較大的詞語作為關鍵詞并輸出。
文中的實驗數據是在各大門戶網站中隨機抽取的包含多種主題的新聞數據、新聞內容字數、主題等信息。將每一篇新聞保存為一個文檔,共500個文檔組成語料庫。對于數據集,采用多人人工交叉標注的形式提取關鍵詞,每一個文檔分別提取5,7,10個關鍵詞。
對于相同的數據集,提取不同數量的關鍵詞,實驗中分別采用傳統的TF-IDF算法、TextRank算法和改進的TextRank算法(共現窗口大小一個為5,一個為7)進行交叉對比。采用精度P(Precision)、召回率R(Recall)和F1值(F1-Measure)作為評價關鍵詞提取的性能指標,指標計算公式如下:
(8)
(9)
(10)
實驗結果如表1所示。根據表1的實驗結果分析可以發現,文中提出的方法在關鍵詞提取方面優于傳統的TF-IDF和TextRank算法。

表1 實驗結果對比 %
實驗結果交叉對比如圖2所示。

圖2 實驗結果交叉對比
觀察對比圖可以發現,隨著提取的關鍵詞數量的增加,傳統的TF-IDF算法與TextRank算法的準確率呈現下降的趨勢;而文中提出的改進的TextRank算法,隨著關鍵詞提取的數量變化,準確率相對穩定。因為根據詞語的綜合權重進行計算,關鍵詞相對較為集中突出,權重相對較大。
此外,可以發現,傳統的TextRank算法的共現窗口大小對準確率也有影響。因為共現窗口的大小決定可權重轉移概率矩陣的稠密,從而影響關鍵詞的提取結果。當共現窗口為7的時候,提取的關鍵詞準確度要比共現窗口為5時高一些。
總之,文中提出的改進方法,在精度P(Precision)和F1值(F1-Measure)方面均高于傳統方法,召回率(Recall)基本相當。這個基本可以證明,該方法在關鍵詞信息獲取方面較傳統的TF-IDF和TextRank算法更加高效、準確。
一篇文章的關鍵詞不但可以概括文章的主題,還能反映整篇文章所表達的主要內容與情感傾向,所以對于提取的關鍵詞信息的準確率有較高的要求,這樣才能夠相對準確地表達文本的主題內容。因此,高效、準確地提取關鍵詞信息,對于文本分類、自動摘要和文本檢索至關重要。
提出了一種基于TextRank的改進算法。針對傳統TextRank算法沒有考慮詞語本身的重要性,以及文檔整體信息等不足之處,該算法選用TF-IDF算法與平均信息熵算法計算詞語的重要性,通過計算詞語的重要性對不同詞語賦予不同的權重,根據計算得到的詞語權重改進TextRank算法詞匯節點的初始權重以及概率轉移矩陣。該算法提高了關鍵詞提取的準確度,并且操作簡單,無須進行訓練和人工干預,具有較強的通用性,能夠滿足對于一般文章的關鍵詞提取需求。同時,可以結合更多的詞語特征、詞語上下文的語義環境等對該算法進行完善,這也是接下來研究的主要方向。