尹 紅,陳 雁,李 平
(西南石油大學 計算機科學學院 智能與網絡化系統(tǒng)研究中心,四川 成都 610500)
互聯(lián)網的快速發(fā)展,使得文檔數(shù)量迅速增長。大量文檔可為知識獲取帶來紅利,但同時也給信息獲取帶來了挑戰(zhàn)。關鍵短語反映了文檔主題或主要內容,能夠幫助用戶快速理解文檔并獲取文檔關鍵信息,它攜帶的重要信息可廣泛用于自然語言處理和信息檢索領域任務上,例如,聚類、分類、自動摘要、話題監(jiān)測、問答系統(tǒng)、知識發(fā)現(xiàn)等[1-4],因此人們一直對關鍵短語提取技術有著極大興趣,并提出了大量新穎的方法。
關鍵短語提取方法主要沿著監(jiān)督和無監(jiān)督兩個方向不斷推進[5]。在監(jiān)督方法中,通常將關鍵短語提取作為一個二分類問題[6-7],利用機器學習中的分類算法學習分類模型。在無監(jiān)督方法中,常見做法是將其作為一個基于圖的排序問題,把單個文檔轉換為圖,利用具體的排序算法[8-9]對節(jié)點進行排序,取前K個短語作為關鍵短語。由于監(jiān)督方法需要大量的人工標注數(shù)據,而人工標注是一個耗時耗力的任務,因此本研究集中于無監(jiān)督方法上。
傳統(tǒng)的基于圖的方法通過詞語間的緊密程度和詞語本身在文檔中具有的影響力來計算詞語得分。當前,在衡量詞匯間的緊密程度方面,研究者們大都采用詞匯間的語義關系以及共現(xiàn)頻率來表示詞語間的緊密性;在詞語影響力方面,研究者們大多利用詞的位置信息以及詞對主題的偏好程度來表示詞語本身的影響力。對于如何表示詞對主題的偏好程度,目前研究都局限于利用詞的主題分布與文檔主題分布的相似度來表示。據我們所知,詞的主題分布是針對整個語料集,不因文檔的不同而產生差異,而每篇文檔中的相同詞可能對相同的主題有不同的偏好性,因此現(xiàn)有的方法不能準確的表示詞對主題的偏好程度。針對現(xiàn)有方法的不足,本文提出了EntropyRank算法,它借助主題模型中的文檔—主題分布和主題—詞分布來表示詞在具體文檔中特定的主題分布,并提出用詞主題分布的熵值來表示詞的主題偏好程度。最后,融合熵值來提取關鍵短語。
根據機器學習中的算法分類可將關鍵短語提取算法分為監(jiān)督和無監(jiān)督兩種,監(jiān)督關鍵短語提取方法通常將關鍵短語提取作為一個二分類問題,將關鍵短語與非關鍵短語分開標注,采用機器學習中的分類算法學習到一個分類模型,利用學習到的分類模型去判斷一個新的詞語是否為關鍵短語[7]。而無監(jiān)督關鍵短語[10-17]提取方法不需要對樣本進行標注,僅利用文檔本身的信息就可以實現(xiàn)關鍵短語的提取。由于監(jiān)督方法需要事先標注好的高質量數(shù)據,人工預處理代價高,所以目前國內外對于關鍵短語提取算法的研究主要集中在無監(jiān)督方法上。
在無監(jiān)督方法中,較為流行的一種方法是基于統(tǒng)計信息,最具代表性的方法TF-IDF于1988年由KS Jones等人提出,它利用詞頻和詞出現(xiàn)在所有文本中的頻率來計算詞在文檔中的重要性。該方法沒有考慮到語義特征,導致忽略了一些重要的低頻詞匯,并且實現(xiàn)過程需要大量語料。因此,另一種流行的基于圖排序的方法引起了研究者們的重視。其中TextRank[13]作為最經典的算法于2004年提出,它通過隨機游走方法計算圖中每個節(jié)點的分數(shù)值,對節(jié)點分數(shù)值進行排序,并取前K個詞為關鍵詞。TextRank方法在進行隨機游走時指出節(jié)點得分由相鄰節(jié)點的得分和節(jié)點自身影響力共同決定,它默認圖中節(jié)點邊權為1,即認為節(jié)點得分會均勻轉移到相鄰節(jié)點,并且也默認節(jié)點影響力為節(jié)點數(shù)的倒數(shù)。該方法沒有考慮到節(jié)點得分的轉移概率會受詞語間的相關關系的影響,也沒有考慮到詞語影響力存在差異的情況。
隨后,針對詞語間相關關系,Wan和Xiao[14]在2008年提出了SingleRank算法,他指出邊權由兩節(jié)點的共現(xiàn)次數(shù)決定。同時,他提出的ExpandRank算法首次考慮利用除文檔本身之外的其他額外信息來對文檔建模,2014年Collapalli和CorageesSujatha根據Wan和Xiao[14]的想法提出Cite-TextRank[15]算法,利用科技文獻中的引用關系尋找額外文檔來對文檔建模,同年顧益軍提出節(jié)點在隨機游走時會以更大的概率跳轉到更重要的節(jié)點參考文獻以及近幾年提出的WeightedTextRank[16]、AttractionRank[17]融合共現(xiàn)關系和詞語間的相似性、相互吸引力來表示詞語間的相關關系。
對于如何計算詞語影響力,F(xiàn)lorescu等提出了positionRank[18],利用詞的位置信息來表示詞語影響力,他們認為詞語出現(xiàn)的位置越靠前詞語影響力越大,然后統(tǒng)計每個詞在文檔中出現(xiàn)的位置,對每個位置的影響力求和作為詞語影響力;Liu等提出了TPR算法[19],認為每個詞語都有一定的主題偏好性,累積詞對所有主題的偏好性當作詞語影響力,在此基礎上,Sterckx、Teneva又相繼提出了STPR[20]和SR[21]算法,這兩種算法都是在TPR算法上做出的改進,其中STPR算法通過計算詞語主題分布和文檔主題分布的相似度作為詞語影響力,SR算法則是在STPR算法基礎上加入了詞語的語料特性,最后融合主題相似度與語料特性共同作為詞語影響力。除此之外,Liu等、Bougouin和Chage等人考慮用聚類的方法進行關鍵短語提取,將候選關鍵短語進行聚類,并把每個類別當作一個節(jié)點,類與類之間進行全連接構成圖,其中類別之間的關系通過類別中的詞來刻畫,最后選取每個類別中最具代表性的短語作為關鍵短語。
綜上所述,已有的算法中,沒有研究者考慮詞在具體文檔中特定的主題分布情況,而一個詞的主題分布可刻畫詞對主題的偏好性,若詞的主題分布越均勻,那么詞對每個主題的偏好性都相同,對于整個文檔來說,這個詞不能很好地去刻畫文檔的主題分布情況,反之則能很好地去刻畫文檔的主題分布情況。因此本文提出的EntropyRank算法采用信息熵來表示詞語特定的主題分布情況,這樣可以很好地捕捉到主題分布明顯的詞語,并以較為簡潔的方式改善關鍵短語提取效果。
LDA[22]在2003年由D M Blei等人提出,是一種基于概率圖模型的主題模型算法,用來識別語料庫中的潛在主題信息。在LDA模型中,認為文檔主題服從多項分布,而每個主題又是在多個詞上的多項分布,則文檔d可由以下過程生成: 首先以一定的概率從主題分布θd中選擇某個主題t∈T(T為大小為M的主題集合),接下來從該主題的詞分布φt中以一定概率選擇某個詞w,重復上述過程可生成蘊含多個主題的文檔,由于文檔都是經過上述過程獲得,于是對于大量文檔集來說,可通過LDA模型訓練得到一個文檔—主題分布矩陣θ和主題—詞分布矩陣φ。
(1)
信息論將信息的傳遞作為一種統(tǒng)計現(xiàn)象來考慮,給出了估算通信信道容量的方法,其中信息熵能夠表示隨機變量的不確定性,若隨機變量分布越均勻,則它的不確定性越大,信息熵越大,反之不確定性越小,信息熵越小。
關鍵短語提取技術關鍵在于能提取出代表文檔主題的詞,本研究認為詞的主題分布情況能刻畫詞的主題表達力。若詞的主題分布明顯,表明該詞的主題表達力強,能更清楚的表示文檔主題,則更可能是文檔關鍵短語;若詞的主題分布比較均勻,表明該詞的主題表達力較弱,不能清楚的表示文檔主題,成為關鍵短語的可能性就較小。當計算詞語影響力時,我們利用詞語的主題表達力來刻畫詞語影響力,這里我們將詞的主題表達力稱作主題熵。當詞語的主題表達力越強,對應的主題熵越小;反之對應的主題熵越大。于是,我們采用主題熵的倒數(shù)來表示詞語影響力,為保證詞語影響力的計算具有意義,在計算詞語影響力時將主題熵加1。因此,對于文檔d中的詞語w,令ti(w)表示詞語影響力,其計算方式如式(2)所示。
(2)
其中,pj(wd)表示文檔d中的詞語w在第j個主題下的概率值。
采用圖排序方式對文檔進行關鍵短語提取時,將文檔看做一個詞序列S=(ω1,ω2,…,ωs),ωs表示詞序列中的第s個詞。接下來根據S構建能夠代表文檔和體現(xiàn)詞之間相互關系的詞圖G=(V,E),其中V=(w1,w2,…,wq)為S構成的大小為q的候選詞集合,E為具有權值的邊集合。我們使用大小為λ的窗口對詞序列S進行遍歷,并統(tǒng)計兩個詞在窗口中的共現(xiàn)次數(shù)來作為邊權。在詞圖構建過程中,連邊既可以是有向的也可以是無向的,但Mihalcea和Tarau[14]在實驗過程中發(fā)現(xiàn)詞圖類型對實驗效果的影響較小,因此本文在實驗中構建無向圖。
采用上述詞圖構建方法將文檔表示成詞圖G,令M表示G的鄰接矩陣,mij∈M表示連邊(wi,wj)權重,在詞圖上利用隨機游走方法計算節(jié)點得分,按照式(3)迭代直至收斂,最后得到每個節(jié)點最終得分。
(3)
(4)
為防止在收斂結束時出現(xiàn)每個節(jié)點值都為0或者僅存在一個節(jié)點值為1的情況,在公式中加入了阻尼系數(shù)α保證每個節(jié)點都會收斂到一個正常值,因此節(jié)點得分計算公式修改后如式(5)所示。
(5)
(6)
則一個具體的詞wi,最終得分如式(7)所示。
(7)
Adj(wi): 節(jié)點wi的所有鄰居節(jié)點集合。
通過EntropyRank得到每個詞語得分之后,開始對候選關鍵短語進行排序。Hulth等人指出大多數(shù)的已標注關鍵短語為名詞性短語,因此本文將從文檔中篩選出名詞短語作為候選關鍵短語。
本文按照以下方法獲得文檔的候選關鍵短語。首先對文檔進行分詞處理,再進行詞性標注,最后選擇形如(形容詞)*(名詞)+格式的名詞短語參考文獻,它表示零個或多個形容詞后可接一個或多個名詞。本文將這種形式的名詞短語當作候選關鍵短語。
當識別出候選關鍵短語之后,使用Entropy-Rank計算出的詞語得分來計算候選關鍵短語得分,因此候選關鍵短語的得分計算方式如式(8)所示。
(8)
隨后對候選關鍵短語的得分進行降序排序得到一個降序候選關鍵短語列表,并取前K個短語作為文檔關鍵短語。
為驗證算法的性能,本次實驗在6個數(shù)據集上進行了實驗。
500N-KPCrowd[23]數(shù)據集包括500篇新聞文檔,每個類別包含50篇新聞,關鍵短語由亞馬遜工作人員所標注;Inspec數(shù)據集[7]包括2 000篇科學論文摘要,其中關鍵短語由作者和讀者分別標注;DUC[24]數(shù)據集包括308篇新聞標題及新聞文檔,其中關鍵短語由作者和讀者分別標注;NUS[25]數(shù)據集包括211篇會議論文,且每篇論文長度在4至12頁之間,其中關鍵短語由作者和讀者分別標注;Krapivin[26]數(shù)據集包括2 304篇科技論文,其中關鍵短語由作者和讀者分別標注;KP20K[27]數(shù)據集包括200篇科技論文摘要及其標題,其中關鍵短語由作者和讀者分別標注。經過Mihalcea和Tarau[13]中的描述分析,對Inspec數(shù)據集我們采用讀者標注的作為文檔的標注關鍵短語,其他數(shù)據集均采用作者標注的作為文檔的標注關鍵短語。對數(shù)據集的詳細描述,如表1所示。
表1 數(shù)據集介紹
因為數(shù)據集中包含的新聞或者期刊摘要、論文內容都較少,不足以學習到好的主題。因此,本文使用英文維基百科數(shù)據來學習主題模型。通過去除長度小于1 000的文檔并去掉停用詞,最終保留了4 614 519篇文檔。對于主題模型中的缺省詞,我們將詞的主題分布設置為均勻分布。
本研究選取了準確率P、召回率R、F1作為評價指標。其中P是指算法抽取出的關鍵短語列表中標注關鍵短語所占比例,R則是標注關鍵短語被抽取出的比例,而F1是對P和R的一個綜合考慮。下面給出了3個評價標準的具體定義:
其中,ccorrect是算法提取出的正確的關鍵短語個數(shù),cextract是提取出的關鍵短語個數(shù),cstandard則是標注關鍵短語的個數(shù)。上述三個評價指標可以分別衡量實驗效果。由于P、R指標有時會出現(xiàn)互相矛盾的情況,因此本文利用綜合評價指標F1對提出的方法進行評估,可以得到相對客觀的評價。
EntropyRank算法中存在兩個參數(shù)可能會影響算法性能,包括窗口λ和主題數(shù)目M。因為6個數(shù)據集上平均標注關鍵短語數(shù)量不同,因此在討論參數(shù)λ和M時,將關鍵短語固定為所有數(shù)據集的平均標注短語個數(shù)。于是,當討論主題數(shù)目M對算法的影響時,我們將窗口λ固定為3,關鍵短語個數(shù)K固定為15;當討論窗口對算法的影響時,我們將主題數(shù)目M固定為5,關鍵短語個數(shù)K固定為15。
4.3.1 窗口大小
為分析窗口大小對關鍵短語提取性能的影響,本研究在6個數(shù)據集上進行實驗,實驗結果如圖1所示。隨著窗口的取值不斷增大,算法性能逐漸提升,而在某些特定的數(shù)據集上,當窗口增大到一定程度時,算法性能開始下降。
圖1 K=15,F1值隨窗口λ的變化情況
當窗口λ=18、21時,Inspec數(shù)據集和KP20K數(shù)據集上的F1值逐漸減小,而其他數(shù)據集上F1值仍然增大。這是因為Inspec和KP20K數(shù)據集由論文標題及摘要構成,文檔長度較短,若在實驗過程中窗口設置過大,則該文檔構成的詞圖將會是一個完全圖,可能會出現(xiàn)所有連邊邊權相等的情況,這樣在進行關鍵短語提取時將無法捕捉到詞語的局部結構信息。
4.3.2 主題數(shù)目
本研究分析了LDA模型中的主題數(shù)目對關鍵短語提取性能的影響,在6個數(shù)據集上分別進行了實驗,實驗結果如圖2所示,隨著M的變化,6個數(shù)據集上的F1值變化比較平穩(wěn),這表明文檔的語義信息僅集中于某幾個主題。
圖2 K=15,F(xiàn)1值隨主題數(shù)目M的變化情況
本研究一共選取了8種對比方法衡量本文方法的有效性。包括TextRank、WeightedTextRank、SingleRank、AttractionRank、PositionRank、TPR、STPR、SR算法,它們都采用隨機游走的方法計算短語得分,其中TextRank、WeightedRank、AttractionRank算法僅考慮進一步去尋找節(jié)點間的語義關系,未考慮到詞語本身具有差異性的情況。TPR、STPR、SR和PositionRank算法都考慮到了詞語本身具有特異性,但在通過隨機游走方法計算詞語得分時,PositionRank算法將詞語的位置信息作為詞語自身影響力,未考慮到詞語的主題信息,其他3個算法則利用整個語料庫上的詞主題分布與文檔主題分布進行相似性計算并將其作為詞語自身影響力,未考慮到相同詞在不同文檔下會有不同的主題分布的情況。
為驗證EntropyRank算法的性能,我們固定窗口λ=3,主題數(shù)目M=5,分別在6個數(shù)據集上與其他算法進行了對比。如圖3所示,在所有數(shù)據集上EntropyRank算法性能優(yōu)于其他對比算法。例如,在500N數(shù)據集上,當K=10時,EntropyRank算法F1值平均提升了3.59%,與WeightedRank、AttractionRank算法相比平均提升3.87%,相比于TPR、STPR、SR、PositionRank算法,F(xiàn)1值提升了1.81%,在其他數(shù)據集上的F1值提升情況與500N數(shù)據集上相似。
圖3 λ=3,M=5時,EntropyRank與其對比方法隨著K的變化F1值的變化情況
綜上所述,EntropyRank算法在所有數(shù)據集上的F1值都有了提升,同時與考慮到詞語主題信息的方法相比,效果提升更明顯。因此,我們可得出: ①在計算詞的主題表達力時,利用詞在具體文檔中的主題分布比LDA模型中的主題分布更有效。②與詞語主題分布和文檔主題分布的相似性作為詞語影響力的方法相比,詞語的主題熵能更準確的刻畫詞語影響力。③可同時適用于摘要(短文本)與論文、新聞(長文本)。
本文算法與其他算法相比,性能上有了顯著提升,但在模型效率上,本文算法的時間復雜度較高。我們將EntropyRank算法的時間復雜度分為兩部分,第一部分為O(λnall)+O(n2),第二部分為O(MN)+O(Mn),其中第一部分為詞圖構建和詞語分數(shù)計算的時間復雜度,第二部分為主題模型訓練與詞主題分布的時間復雜度。第一部分與傳統(tǒng)的TextRank算法的時間復雜度相同,因此,EntropyRank算法多出的時間復雜度為O(MN)+O(Mn)。其中λ表示窗口大小,nall表示文本長度,m表示主題數(shù)目,n表示詞圖的節(jié)點數(shù)目,N表示維基百科詞典大小。
本文提出利用主題模型訓練得到的文檔—主題分布矩陣和主題—詞分布矩陣來表示詞在具體文檔中的主題分布,并采用信息熵來表示詞的顯著性,并基于隨機游走算法計算每個詞語的最終得分,最后利用得分計算候選短語得分,提取前K個短語作為關鍵短詞。其中在隨機游走過程中設置節(jié)點會以更大的概率隨機跳轉到更重要的節(jié)點上,從而使得一些低頻詞不被忽略。與其他8種對比算法相比,該算法在6個公開數(shù)據集上的F1值有了顯著提升。
考慮到詞之間的關系即邊權可以通過詞語間的語義關系和網絡科學中圖的性質來刻畫,下一步工作將會挖掘詞圖中的節(jié)點間的結構關系以及節(jié)點本身在詞圖中的結構性質,將其與詞語間的語義關系相融合來修改節(jié)點邊權,以進一步提高關鍵短語的準確性以及多樣性。