于臘梅 楊良斌
(國際關(guān)系學(xué)院信息科技學(xué)院 北京 100091)
隨著移動互聯(lián)網(wǎng)的發(fā)展,信息大爆炸式的增長,難以從紛繁復(fù)雜的文章中精準(zhǔn)獲取所需內(nèi)容,關(guān)鍵詞可以幫助人們快速理解文章的主旨、把握文章的主體脈絡(luò)。關(guān)鍵詞抽取技術(shù)是在文章中抽取若干具有實(shí)際意義且有代表性的詞語或詞組,以便快速獲取文章主旨的重要方法,其在文獻(xiàn)檢索、自動摘要、文本聚類和文本分類等方面都有重要應(yīng)用。關(guān)鍵詞抽取主要分為如下三個步驟:1)文本預(yù)處理,包括分詞、標(biāo)注詞性、去除停用詞。2)獲取待選關(guān)鍵詞列表,一般情況下,只有具有實(shí)際意義的名詞、形容詞、動詞可以作為關(guān)鍵詞,其中形容詞一般作為英文文章的關(guān)鍵詞,動詞一般作為中文文章的關(guān)鍵詞。3)得到關(guān)鍵詞,通過調(diào)節(jié)權(quán)重等手段給2)中獲取的待選關(guān)鍵詞打分、排序,根據(jù)實(shí)際需求,截取分?jǐn)?shù)最高的N個關(guān)鍵詞。
關(guān)鍵詞的抽取既可以僅根據(jù)文章內(nèi)容和結(jié)構(gòu)特征實(shí)現(xiàn),也可以通過大量訓(xùn)練語料構(gòu)建模型實(shí)現(xiàn),由于前者不需要大量的訓(xùn)練,更為簡單有效,因此更受歡迎,最具有代表性的是TextRank[1]算法。
TextRank是基于分詞的一種關(guān)鍵詞提取算法,而分詞本身的不準(zhǔn)確會影響最終的關(guān)鍵詞提取準(zhǔn)確率。本文基于信息熵可以發(fā)現(xiàn)文本中聚合度很高的新詞,結(jié)合TextRank算法就可以提高提取文本關(guān)鍵詞的準(zhǔn)確度。
中文關(guān)鍵詞抽取按照是否標(biāo)記語料分類可以分為有監(jiān)督關(guān)鍵詞抽取和無監(jiān)督關(guān)鍵詞抽取兩種。很多研究者把有監(jiān)督關(guān)鍵詞抽取看做二分類問題[2~3],需要預(yù)先人工標(biāo)注文檔的關(guān)鍵詞,然后判斷文檔中的詞是否為關(guān)鍵詞,人工成本較高。也有很多研究者從事無監(jiān)督關(guān)鍵詞抽取研究。
現(xiàn)在較為常見的無監(jiān)督關(guān)鍵詞抽取分為如下三種:基于TF-IDF[4~7]詞頻統(tǒng)計(jì)的關(guān)鍵詞抽取、基于LDA[8~10]主題的關(guān)鍵詞抽取、基于詞圖的關(guān)鍵詞抽取。其中,基于TF-IDF 的詞頻統(tǒng)計(jì)關(guān)鍵詞抽取沒有考慮到低頻但重要的詞語,并且忽略了詞匯間以及詞匯與主題間的關(guān)系,在短文本關(guān)鍵詞抽取領(lǐng)域效果不佳;基于LDA 主題的關(guān)鍵詞抽取需要通過大量的語料訓(xùn)練獲得“文檔-主題”和“主題-詞匯”的概率矩陣,關(guān)鍵詞抽取效果與語料中主題的分布強(qiáng)相關(guān)。孫明珠等[11]提出利用LDA 對語料做主題建模,獲得候選關(guān)鍵詞的主題詞分布和語料主題分布,結(jié)合候選關(guān)鍵詞主題分布計(jì)算詞圖各節(jié)點(diǎn)權(quán)重,獲得“文檔-主題”和“主題-詞匯”作為隨機(jī)跳轉(zhuǎn)概率以構(gòu)建新的概率轉(zhuǎn)移矩陣;基于詞圖的關(guān)鍵詞抽取以TextRank 算法為代表,由于TextRank算法構(gòu)建詞圖時(shí)沒有考慮權(quán)重,因此很多研究者通過加權(quán)提高關(guān)鍵詞抽取的準(zhǔn)確度。夏天[12]提出詞語位置加權(quán),綜合考慮詞語的覆蓋影響力、位置影響力和頻度影響力三個方面構(gòu)建候選關(guān)鍵詞概率轉(zhuǎn)移矩陣,結(jié)合抽稅機(jī)制改善關(guān)鍵詞抽取結(jié)果。夏天[13]后又提出詞向量聚類加權(quán),先使用Word2Vec模型訓(xùn)練文本獲得詞向量并聚類,然后依據(jù)詞向量的分布情況對TextRank詞圖節(jié)點(diǎn)非均勻加權(quán),獲得了較好的關(guān)鍵詞抽取效果。劉竹辰等[14]提出利用TextRank構(gòu)建候選關(guān)鍵詞詞圖,結(jié)合文檔寫作中詞位置分布情況構(gòu)建概率轉(zhuǎn)移矩陣,迭代計(jì)算候選關(guān)鍵詞得分,取得分高的N個關(guān)鍵詞。
上述關(guān)鍵詞抽取方法都注重改進(jìn)關(guān)鍵詞抽取的步驟2),獲取待選關(guān)鍵詞列表與步驟3)待選關(guān)鍵詞打分、排序,忽視了步驟1)文本預(yù)處理,但是實(shí)際上步驟1)才是關(guān)鍵詞抽取的基礎(chǔ),當(dāng)語料中出現(xiàn)新詞作為關(guān)鍵詞時(shí),上述方法就束手無策。本文在分詞前,先用信息熵的方式提取文章的關(guān)鍵新詞,加入到分詞字典中,讓分詞器能自主識別出新詞,以增強(qiáng)文章關(guān)鍵詞提取的準(zhǔn)確性。
TextRank 算法可以看做PageRank[15]算法的升級版。PageRank 最初是由谷歌的兩位創(chuàng)始人佩奇和布林借鑒學(xué)術(shù)界評判論文重要性的方法提出用同樣的方法判斷網(wǎng)頁的重要性,因此PageRank 算法的核心思想就產(chǎn)生了:若多個網(wǎng)頁鏈接到同一個網(wǎng)頁,則該網(wǎng)頁較為重要,PageRank 值相對較高;若PageRank 值高的網(wǎng)頁鏈接到一個其他網(wǎng)頁,則被鏈接到的網(wǎng)頁的PageRank 值也會相應(yīng)提高。同樣地,用PageRank 算法的思想來解釋TextRank 算法的核心思想,若某詞匯出現(xiàn)在很多詞匯之后,則該詞匯較為重要,TextRank 值相對較高;TextRank值高的詞匯后面接著的一個詞匯的TextRank 值也會相應(yīng)提高。
根據(jù)TextRank算法提取關(guān)鍵詞的基本思想,提取一篇語料的關(guān)鍵詞,首先需要對語料分詞,然后把每個詞語當(dāng)做無向詞圖的節(jié)點(diǎn),最后計(jì)算出詞語的權(quán)重并取分?jǐn)?shù)最高的N 個關(guān)鍵詞。其具體步驟描述如下。
1)對給定的語料T進(jìn)行分詞,即T=[w1,w2,…,wn];
2)去除T 中的停用詞、標(biāo)注詞性并保留重要詞性詞,如名詞、動詞,即V=[w1,w2,…,wm];
3)構(gòu)建候選關(guān)鍵詞圖G=(V,E),其中V 為節(jié)點(diǎn)集,是步驟2)中得到的候選關(guān)鍵詞的集合,E?V×V,對關(guān)鍵詞圖中的任意一個節(jié)點(diǎn)vi,j∈V,vi,j+1∈V,有 <vi,j,vi,j+1>∈E。 令:In(vi)=「vj|<vj,vi>∈E」;Out(vi)=「vj|<vi,vj>∈E」。In(vi)代表指向節(jié)點(diǎn)vi的節(jié)點(diǎn)的集合,Out(vi)代表節(jié)點(diǎn)vi指向的節(jié)點(diǎn)的集合。用其中ωji表示節(jié)點(diǎn)vi指向節(jié)點(diǎn)vj所在邊的權(quán)重,可以理解為兩個節(jié)點(diǎn)之間的邊連接的重要程度,則節(jié)點(diǎn)vi的分?jǐn)?shù)WS(vi)的計(jì)算方法,同時(shí)也是TextRank 算法的核心公式,如式(1)如下:
可以看出,步驟1)對給定的語料T進(jìn)行分詞是TextRank算法提取關(guān)鍵詞的基礎(chǔ),作者將把信息熵加入TextRank算法的分詞器,使分詞器可以識別新詞以改善分詞效果,完成關(guān)鍵詞抽取。
1948 年香農(nóng)提出“信息熵”,它是信息論中的一個重要概念,用來描述信息的不確定度,其計(jì)算過程如式(2)所示,其中w表示某事件,P(x)表示事件發(fā)生的概率。
根據(jù)式(2),信息熵大小與事件可能出現(xiàn)的結(jié)果數(shù)量有關(guān),在概率均等的情況下,存在的可能越多,信息熵越大。而一篇語料中的關(guān)鍵詞必定具備這樣的特點(diǎn),即能夠與之匹配的詞語有很多,根據(jù)香農(nóng)信息熵的公式給出一個詞語信息熵的計(jì)算公式,如式(3)所示,其中w表示某詞語,p 表示詞語左右不同詞語的數(shù)量。
例如,若在某篇語料中出現(xiàn)三次X W Y 組合,一次M W N 組合,則w左側(cè)的信息熵H( )w左=表示X 在四次中出現(xiàn)三次,表示M 在四次中出現(xiàn)一次。若在某篇語料中出現(xiàn)三次X W Y組合,一次M W Y組合,則w左側(cè)的信息熵不變,而右側(cè)的信息熵H(w右)= -1 log 1=0。
對語料中去除停用詞后剩下的詞語分別計(jì)算其左右信息熵,若某個詞語的左右信息熵都很大,則此詞大概率是關(guān)鍵詞。進(jìn)一步,若某個詞語的左側(cè)信息熵很大,右側(cè)信息熵很小,而該詞語右側(cè)詞語的左側(cè)信息熵很小,右側(cè)信息熵很大,則可以把該詞語及其右側(cè)詞語的整體作為一個關(guān)鍵詞,具體描述為M X Y N 型組合,X 和Y 常常共同出現(xiàn),而M和N 不定,故可以把X 和Y 組合起來看做一個新的關(guān)鍵詞。譬如,“張三向李四安利了一款防曬霜”,其中的“安利”本是一個公司的品牌名稱,后因其“安利式銷售”不厭其煩等特點(diǎn)慢慢演變成為最近網(wǎng)絡(luò)流行的詞語,意為推薦。
如下給出作者所提修改TextRank 算法分詞器部分核心代碼的偽代碼。
算法TextRank算法融合信息熵的分詞器部分偽代碼
Input:語料
Output:關(guān)鍵詞候選列表
1:function GetKeywordList(article)
2:nodeTree ←[]
3:mutualInfo ←search_bi(nodeTree)
4:leftRightEntropy ←search_leftRight
5:combination ←calculateCombinedWordScore
6:TopN ←sorted(combination)
7:return TopN
8:end function
作者實(shí)驗(yàn)的運(yùn)行環(huán)境是Inter Core i7,內(nèi)存是16GB,操作系統(tǒng)是Mac OS,編程環(huán)境是Python3.5,算法的實(shí)驗(yàn)程序采用TextRank4zh 開源代碼,中文分詞使用常用的jieba分詞代碼庫。
目前被廣大研究者認(rèn)可的常見語料集主要有中科院自動化所的中英文新聞?wù)Z料庫、各版本的搜狗中文新聞?wù)Z料庫、南方周末網(wǎng)站語料庫等,作者在各個語料庫中各選取一篇語料,對比后認(rèn)為自帶關(guān)鍵詞的南方周末網(wǎng)站語料庫較為適合做關(guān)鍵詞提取,故選取文獻(xiàn)[10]中的數(shù)據(jù)集做數(shù)據(jù)來源。由于作者著眼于新詞發(fā)現(xiàn)的關(guān)鍵詞提取,故誠邀了五名實(shí)驗(yàn)室成員對語料進(jìn)行人工核查,遴選出具有如下標(biāo)準(zhǔn)的語料1000 篇左右:1)關(guān)鍵詞個數(shù)3 個~5個。2)語料文字?jǐn)?shù)量在300 個~700 個。3)關(guān)鍵詞需在語料中出現(xiàn)且與主題相關(guān)。4)10%以上語料的關(guān)鍵詞包含新詞。
作者選用TF-IDF 算法、TextRank 算法與本文的融合信息熵的TextRank 算法En-TextRank 對關(guān)鍵詞抽取結(jié)果做對比,目前較為廣大研究者接受和認(rèn)可的判斷關(guān)鍵詞抽取算法的指標(biāo)為準(zhǔn)確率P、召回率R、F值,它們的計(jì)算公式如式(4)~(6)所示:
三種算法在抽取3個和5個關(guān)鍵詞時(shí)上述三個指標(biāo)的表現(xiàn)如表1所示。
表1 3種算法準(zhǔn)確率、召回率、F值對比
針對上表結(jié)果,分析得出如下結(jié)論。
1)TF-IDF 算法抽取關(guān)鍵詞結(jié)果要略遜色于TextRank和En-TextRank算法。
2)TextRank算法抽取關(guān)鍵詞結(jié)果較為平穩(wěn)。
3)由于En-TextRank 算法著眼于新詞發(fā)現(xiàn),抽取包含新詞的語料中的關(guān)鍵詞時(shí)準(zhǔn)確率并無明顯提升。
為展示出En-TextRank 算法在抽取包含新詞的語料的關(guān)鍵詞的優(yōu)勢,表2以27號文檔為例給出TextRank 算法與En-TextRank 算法抽取關(guān)鍵詞結(jié)果。
表2 TextRank、En-TextRank算法抽取關(guān)鍵詞結(jié)果
從表2可以看出En-TextRank算法在抽取關(guān)鍵詞時(shí)更善于發(fā)現(xiàn)新詞,“株式會社”指向廣泛,而“三井株式會社”是有具體指向的,“海事法院”也比“法院”更具象。南方周末標(biāo)注的關(guān)鍵詞中不包含“海事法院”,但在認(rèn)真研讀該篇語料后研究人員普遍認(rèn)為“海事法院”也應(yīng)當(dāng)作為關(guān)鍵詞。
綜上所述,En-TextRank 算法在抽取包含新詞的語料的關(guān)鍵詞時(shí)較傳統(tǒng)的TextRank 算法更具優(yōu)勢,但是在發(fā)現(xiàn)新詞方面還有可改進(jìn)之處,譬如,表2 中的“三井株式會社”,雖然要比“株式會社”具象,但是未抽取出“商船三井株式會社”,這也是作者后續(xù)研究的重點(diǎn)。
現(xiàn)如今的互聯(lián)網(wǎng)信息十分發(fā)達(dá),各種文化不斷碰撞,活躍在網(wǎng)絡(luò)社區(qū)的網(wǎng)民數(shù)量日益攀升,造新詞的速度、數(shù)量也隨之加快,因此抽取關(guān)鍵詞的算法在抽取新詞方面的研究必須要與時(shí)俱進(jìn)。實(shí)驗(yàn)結(jié)果顯示,En-TextRank 算法在抽取包含新詞的語料的關(guān)鍵詞方面有一定貢獻(xiàn),但在準(zhǔn)確性方面還有待提升,因此,在后續(xù)研究中,作者將著眼于提升包含新詞語料關(guān)鍵詞抽取的準(zhǔn)確性,同時(shí),也希望更多的研究者投身于此類研究。