汪旭祥 韓 斌 高 瑞 陳 鵬
(江蘇科技大學(xué)計(jì)算機(jī)學(xué)院 江蘇 鎮(zhèn)江 212003)
自動(dòng)文本摘要屬于自然語(yǔ)言處理(Natural Language Processing,NLP)任務(wù)之一,旨在對(duì)文本進(jìn)行處理從而生成簡(jiǎn)潔、精煉的內(nèi)容,即概要信息。自動(dòng)文本摘要一般可以分為生成式(abstractive)摘要和抽取式(extractive)摘要[1]兩大類,前者是在理解整篇文章語(yǔ)義的基礎(chǔ)上,提取概括性信息;后者是從原文中找到與中心思想相近的一些句子作為摘要,屬于在句子的級(jí)別上生成摘要[2],從方法上可以劃分為基于統(tǒng)計(jì)信息方法、基于主題模型方法、基于圖模型方法和基于機(jī)器學(xué)習(xí)方法等。其中,基于圖模型方法的圖排序算法因其充分考慮文本圖的全局信息且不需要人工標(biāo)注訓(xùn)練集的特性,被廣泛應(yīng)用于自動(dòng)文本摘要領(lǐng)域[3-4]。TextRank算法作為一種經(jīng)典的文本圖排序算法,它利用文本本身的信息和結(jié)構(gòu)特征來(lái)實(shí)現(xiàn)文本摘要的自動(dòng)提取[5]。2004年,Mihalcea等[6]在研究自動(dòng)摘要提取過(guò)程中,借鑒Google公司的PageRank算法的思路,提出了TextRank算法,將句子間的相似關(guān)系看成是一種推薦或投票關(guān)系,由此構(gòu)建TextRank網(wǎng)絡(luò)圖[7-8],并通過(guò)迭代計(jì)算至收斂來(lái)得到句子的權(quán)重值。自TextRank算法被提出以來(lái),基于該算法的自動(dòng)文本摘要的研究受到廣泛的關(guān)注。劉志明等[9]從情感特征出發(fā),通過(guò)LDA模型收斂主題,融合傳統(tǒng)多特征和情感相似度來(lái)提取目的摘要,但未考慮句子的上下文信息。文獻(xiàn)[10]將句法、語(yǔ)義和統(tǒng)計(jì)方法共同作用于句子的評(píng)分,提出了TextRankExt算法。文獻(xiàn)[11]分別比較了不同相似度計(jì)算方法的自動(dòng)文摘效果,選擇了其中最優(yōu)的相似度計(jì)算方法,并結(jié)合句子位置、線索詞與經(jīng)典TextRank來(lái)計(jì)算句子的權(quán)重??紤]到關(guān)鍵詞對(duì)文本摘要提取的重大作用,李峰等[12]基于TextRank使用關(guān)鍵詞擴(kuò)展來(lái)提取文本摘要并取得了不錯(cuò)的效果。但已有方法中都沒(méi)有綜合考慮文本中影響句子權(quán)重的因素,而這些因素對(duì)文本摘要提取的準(zhǔn)確率有著重要的影響。
本文融合Word2Vec模型和TextRank算法,基于Word2Vec訓(xùn)練的詞向量來(lái)計(jì)算句子相似度,充分利用句子中詞語(yǔ)之間的語(yǔ)義關(guān)系;鑒于目前TextRank算法在句子權(quán)重的計(jì)算上尚有較大的提升空間,本文綜合考慮文本中句子的位置、句子與標(biāo)題的相似度、關(guān)鍵詞的覆蓋率、關(guān)鍵句子以及線索詞等影響句子權(quán)重的因素,進(jìn)而優(yōu)化句子權(quán)重;對(duì)得到的候選摘要句群進(jìn)行冗余處理,選取適量排序靠前的句子,并根據(jù)其在原文中的順序重新排列得到最終文本的摘要。本文針對(duì)TextRank算法存在的不足做出了相應(yīng)的改進(jìn),提出了SW-TextRank算法,最后通過(guò)實(shí)驗(yàn)驗(yàn)證了該算法生成摘要的效果比TextRank算法更好。
TextRank算法是一種基于圖排序的無(wú)監(jiān)督方法,它起源于Google公司的PageRank算法。PageRank算法基于網(wǎng)頁(yè)鏈接的數(shù)量和質(zhì)量來(lái)衡量網(wǎng)頁(yè)的重要程度,鑒于此,TextRank算法將所要獲取摘要的文本拆分成句子作為文本網(wǎng)絡(luò)圖中的節(jié)點(diǎn),句子間的相似度用節(jié)點(diǎn)間的相似度來(lái)表示,從而構(gòu)建基于句子結(jié)構(gòu)關(guān)系的文本網(wǎng)絡(luò)圖。通過(guò)對(duì)文本網(wǎng)絡(luò)圖的迭代計(jì)算可以實(shí)現(xiàn)對(duì)文本中句子重要性進(jìn)行排序,篩選出幾個(gè)最重要的句子作為文本的摘要。
TextRank算法的文本網(wǎng)絡(luò)圖可以表示為一個(gè)帶權(quán)的無(wú)向網(wǎng)絡(luò)圖G=(V,E,W),其中:V為節(jié)點(diǎn)的集合,E為節(jié)點(diǎn)間各個(gè)邊的非空有限集合,W為各邊上權(quán)重的集合。假設(shè)V={V1,V2,…,Vn},則記E={(Vi,Vj)|Vi∈V,Vj∈V,wij∈W,wij≠0},W={wij|1≤i≤n,1≤j≤n},其中wij為節(jié)點(diǎn)Vi與Vj間邊的權(quán)重值。
通過(guò)余弦相似度方法計(jì)算可得到句子間的一個(gè)n×n的相似度矩陣Sn×n:
(1)
式中:矩陣Sn×n為對(duì)稱矩陣,且對(duì)角線上的元素值全部取1。
由G和對(duì)應(yīng)的相似度矩陣Sn×n,可計(jì)算出每個(gè)節(jié)點(diǎn)的權(quán)重(即PR值)。對(duì)于任意節(jié)點(diǎn)Vi,In(Vi)表示指向Vi的節(jié)點(diǎn)集合,Out(Vi)表示Vi指向節(jié)點(diǎn)的集合。節(jié)點(diǎn)Vi的權(quán)重計(jì)算式表示為:
(2)
式中:WS(Vi)為節(jié)點(diǎn)Vi的權(quán)重;d為阻尼系數(shù)。WS(Vi)表示網(wǎng)絡(luò)圖中一個(gè)節(jié)點(diǎn)指向其他節(jié)點(diǎn)的概率,阻尼系數(shù)的取值不能過(guò)大也不能過(guò)小,過(guò)大會(huì)導(dǎo)致迭代次數(shù)激增,且算法的排序也極其不穩(wěn)定,過(guò)小則會(huì)導(dǎo)致算法沒(méi)有明顯的效果,一般取值為0.85。WS(Vj)表示上一次迭代后節(jié)點(diǎn)Vj的權(quán)重值,wji表示節(jié)點(diǎn)Vj和節(jié)點(diǎn)Vi間的相似度。則基于TextRank的文本網(wǎng)絡(luò)圖中各節(jié)點(diǎn)的權(quán)重的計(jì)算式表示為:
(3)
式中:si和sj表示文本中的句子;WS(si)表示句子si在TextRank網(wǎng)絡(luò)圖中的權(quán)重。
TextRank算法計(jì)算邊權(quán)重的過(guò)程屬于馬爾可夫過(guò)程,通過(guò)迭代計(jì)算就能得到趨于正常和穩(wěn)定的權(quán)重值。首次使用TextRank算法計(jì)算各節(jié)點(diǎn)的權(quán)重時(shí),需要指定每個(gè)節(jié)點(diǎn)的初始值,即自身的權(quán)重,設(shè)定所有節(jié)點(diǎn)的初始權(quán)重為1,則B0=(1,1,…,1)T,然后根據(jù)邊的權(quán)重遞歸迭代計(jì)算至收斂:
Bi=Sn×n·Bi-1
(4)
只有當(dāng)Bi與Bi-1的差值非常小且接近于零時(shí)才能很好地收斂。達(dá)到收斂時(shí)迭代計(jì)算結(jié)束,得到含有各個(gè)句子權(quán)重值的向量,然后依據(jù)句子的權(quán)重值大小對(duì)句子進(jìn)行排序,根據(jù)實(shí)際需求選取適量排序靠前的句子,并按照其在原文中的順序排序,生成最終的文本摘要。
TextRank文本網(wǎng)絡(luò)圖中,迭代計(jì)算的結(jié)果主要受節(jié)點(diǎn)間權(quán)重,即句子間相似度的影響。因此,摘要提取的關(guān)鍵在于如何準(zhǔn)確計(jì)算句子間的相似度。Word2Vec是一種可以高效訓(xùn)練百萬(wàn)數(shù)量級(jí)數(shù)據(jù)的詞向量計(jì)算工具,主要有CBOW和Skip-gram兩種模型[13]。Word2Vec從大規(guī)模語(yǔ)料庫(kù)中挖掘了詞語(yǔ)之間語(yǔ)義關(guān)系,提高了詞向量表示語(yǔ)義的準(zhǔn)確度,并且生成的詞向量不存在維度災(zāi)難問(wèn)題。本文基于Word2Vec訓(xùn)練的詞向量來(lái)計(jì)算句子之間的相似度,通過(guò)詞向量模型可以更加準(zhǔn)確地區(qū)分每個(gè)詞語(yǔ)之間的語(yǔ)義關(guān)系。
每個(gè)句子都是由一個(gè)個(gè)詞語(yǔ)組合而成的,因此句子相似度的計(jì)算可以歸結(jié)為句中詞語(yǔ)相似度的計(jì)算。詞語(yǔ)之間的相似度可以通過(guò)兩個(gè)詞語(yǔ)在空間模型中的余弦相似度衡量,其計(jì)算式表示為:
(5)
式中:vi、vj為詞向量;n為詞向量的維數(shù);vik為vi向量第k維的值;vjk為vj向量第k維的值。
當(dāng)兩個(gè)句子中相似的詞語(yǔ)越多時(shí)其相似度越高,完全相同時(shí)其相似度為1。本文通過(guò)計(jì)算句子中詞語(yǔ)相似度的平均值來(lái)計(jì)算句子的相似度。計(jì)算兩句子相似度時(shí),先要分別計(jì)算出每個(gè)句子中詞語(yǔ)相似度的均值,然后將得到的均值求和再取平均數(shù),從而得到兩句子的相似度,則句子相似度的計(jì)算公式表示為:
(6)
式中:SM(si,sj)為句子si和句子sj的相似度;vi為si中的詞語(yǔ);vj為sj中的詞語(yǔ);cos(vi,vj)表示vi、vj兩個(gè)詞向量的余弦相似度。
目前TextRank算法在句子權(quán)重的計(jì)算上尚有較大的提升空間,SW-TextRank算法綜合考慮文本中句子的位置、句子與標(biāo)題的相似度、關(guān)鍵詞的覆蓋率、關(guān)鍵句子以及線索詞等因素,由于上述因素對(duì)句子權(quán)重的準(zhǔn)確計(jì)算都能起到很大的影響,從而優(yōu)化句子權(quán)重計(jì)算。
1) 句子位置。文章中不同位置的句子其重要性也相對(duì)不同,出現(xiàn)在段首和段尾的句子的重要性相對(duì)較高。據(jù)專家研究結(jié)果顯示:在人工摘要的提取過(guò)程中,選取了段首句的比例有85%,選取了段尾句的比例靠近7%。對(duì)于具有倒金字塔特性的新聞?lì)愇恼?,文章主旨大多?huì)被交代在首段或首句,適當(dāng)提高距離文章開(kāi)始位置較近的段落或句子的權(quán)重就顯得尤為重要。本文根據(jù)句子所處的段落以及句子在段落中的位置對(duì)句子的權(quán)重進(jìn)行調(diào)整,對(duì)首段中越靠前句子的權(quán)重賦予越大的提升,末段中越靠后句子的權(quán)重賦予越小的提升。
設(shè)文章首段含有x個(gè)句子,末段有y個(gè)句子,則此權(quán)重計(jì)算公式[8]如下:
(7)
式中:e1和e2均為權(quán)重調(diào)整閾值,本文設(shè)定e1=0.8,e2=0.2。
2) 標(biāo)題的相似度。標(biāo)題是標(biāo)明文章的簡(jiǎn)短語(yǔ)句,反映了文章的主旨和主要內(nèi)容。文章中句子與標(biāo)題的相似度越高,則句子越貼近文章的主旨,其重要程度越高,應(yīng)給予該句子更高的權(quán)重。TextRank算法在若干次迭代運(yùn)算后,所有句子的權(quán)重值都趨于穩(wěn)定,并且穩(wěn)定值只與其他句子對(duì)本句子的貢獻(xiàn)程度相關(guān),與所給的初始值無(wú)關(guān)。該權(quán)重計(jì)算式表示為:
(8)
式中:cos(si,st)表示句子si和標(biāo)題st的余弦相似度。
3) 關(guān)鍵詞的覆蓋率。關(guān)鍵詞可以表達(dá)文章的主題內(nèi)容,越多的關(guān)鍵詞出現(xiàn)在句子中,則該句子的重要程度就越高。本文在對(duì)文本的預(yù)處理階段獲取關(guān)鍵詞,使用得到的關(guān)鍵詞來(lái)計(jì)算文章中每個(gè)句子的關(guān)鍵詞覆蓋率。覆蓋率越大,說(shuō)明句子中包含的關(guān)鍵詞越多,則該句子的權(quán)重就越大。其權(quán)重計(jì)算式表示為:
Wk,i=Kwc(Si)
(9)
式中:Kwc(si)表示在句子si中關(guān)鍵詞的覆蓋率,Kwc(si)=len(keywords(si))/len(si),0≤Kwc(Si)≤1,其中分子表示句子si中含有的關(guān)鍵詞個(gè)數(shù),分母表示句子si包含的總詞數(shù)(去除標(biāo)點(diǎn)符號(hào)和停用詞)。
4) 關(guān)鍵句子。在中文文章中,自成一段的一個(gè)句子往往在文章中起著承上啟下或過(guò)渡的作用。文章中包含時(shí)間、地點(diǎn)、人物的句子,以及可能存在一些自成一段的小標(biāo)題,這些通常具有高概括性、精煉性的關(guān)鍵句子比一般句子更符合摘要本身的要求,被提取為摘要的可能性更大。本文對(duì)此類句子給予更高的權(quán)重,其計(jì)算式表示為:
(10)
5) 線索詞。線索詞是指“綜上所述”、“總而言之”、“總之”、“總的來(lái)說(shuō)”等概括性的指示詞語(yǔ),包含線索詞的句子通常是對(duì)文章或者段落的總結(jié),則此類句子的重要程度更高。對(duì)于包含線索詞的句子應(yīng)給予更高的權(quán)重,其權(quán)重計(jì)算式表示為:
(11)
為了平衡各部分權(quán)重影響因子所占的比重,為每部分引入了權(quán)重系數(shù)。該權(quán)重系數(shù)由歸一化系數(shù)和加權(quán)系數(shù)兩部分組成,計(jì)算式表示為:
λ=α×β
(12)
式中:α是對(duì)各部分權(quán)重進(jìn)行歸一化后得到的系數(shù);β是根據(jù)實(shí)驗(yàn)分析,調(diào)優(yōu)后的加權(quán)系數(shù)。
綜合考慮各部分權(quán)重影響因子,從而構(gòu)建最終的句子權(quán)重計(jì)算公式:
WT=λsWs+λpWp+λtWt+λkWk+λksWks+λcWc
(13)
式中:λ為各部分權(quán)重影響因子的權(quán)重系數(shù);Ws為句子相似度;WT為句子最終的權(quán)重值。權(quán)重系數(shù)大小表示其對(duì)應(yīng)的權(quán)重影響因子對(duì)句子權(quán)重的影響力大小,權(quán)重系數(shù)越大則影響力越大,反之亦然。其取值均在0~1之間,且λs+λp+λt+λk+λks+λc=1。
針對(duì)TextRank算法提取中文文本摘要時(shí)只考慮句子間的相似性,SW-TextRank綜合考慮文本中句子的位置、句子與標(biāo)題的相似度、關(guān)鍵詞的覆蓋率、關(guān)鍵句子以及線索詞等影響句子權(quán)重的因素,對(duì)句子權(quán)重進(jìn)行調(diào)整。根據(jù)句子長(zhǎng)度過(guò)濾那些不符合摘要要求的句子;為了使最終獲取的摘要具有更高的簡(jiǎn)明性和概括性,就需要對(duì)候選摘要句群進(jìn)行冗余處理,從而減少含有相同語(yǔ)義信息的句子的重復(fù)出現(xiàn)對(duì)候,本文利用余弦相似度對(duì)候選摘要句群進(jìn)行冗余處理,對(duì)具有較高相似度且排序靠后的句子進(jìn)行刪除操作。這里給定一個(gè)冗余閾值φ(0<φ<1),對(duì)候選摘要句群中的句子兩兩計(jì)算其相似度,本文設(shè)定φ=0.8,如果相似度大于給定的φ,則將排序靠后的句子從候選句群中刪除,保留排序靠前的句子。本文結(jié)合次模函數(shù)(Submodular)方法來(lái)保證生成摘要的多樣性和覆蓋度。最終摘要的輸出按照其在原文中的順序輸出,使其具有較好的連貫性和可讀性。
SW-TextRank算法的實(shí)現(xiàn)過(guò)程如下:
輸入:所要提取摘要的文本。
輸出:摘要。
步驟1對(duì)文本進(jìn)行預(yù)處理和特征提取,得到標(biāo)題和句子的特征向量;
步驟2計(jì)算文章中句子與標(biāo)題的相似度;
步驟3綜合句子位置、關(guān)鍵詞覆蓋率、關(guān)鍵句子處理、線索詞以及句子與標(biāo)題的相似度調(diào)整句子相似度矩陣;
步驟4迭代計(jì)算綜合調(diào)整后的句子相似度矩陣直至收斂;
步驟5根據(jù)句子權(quán)重值大小進(jìn)行排序,得到相應(yīng)句子排名;
步驟6對(duì)句子進(jìn)行長(zhǎng)度過(guò)濾,得到候選摘要句群;
步驟7對(duì)候選摘要句群作冗余處理;
步驟8選取適量排序靠前的句子作為最終的摘要;
步驟9輸出摘要。
SW-TextRank算法的流程如圖1所示。
圖1 算法流程
本文選取當(dāng)前最新的中文維基百科數(shù)據(jù)作為提供學(xué)習(xí)訓(xùn)練的文本數(shù)據(jù)集,先對(duì)數(shù)據(jù)集進(jìn)行清洗,過(guò)濾掉其中無(wú)用的內(nèi)容,使用目前最好的Python中文分詞組件jieba進(jìn)行分詞,然后基于Word2Vec中的CBOW模型對(duì)該文本數(shù)據(jù)集進(jìn)行訓(xùn)練從而得到實(shí)驗(yàn)所需的詞向量模型文件,其中維度大小設(shè)置為200,窗口大小為默認(rèn)值5。從采集自新浪微博的中文數(shù)據(jù)集LCSTS的第三部分中隨機(jī)選取100篇短文本(評(píng)分為5)作為本文的測(cè)試文本數(shù)據(jù)集,評(píng)分為5表明相應(yīng)摘要與短文本之間有較高的相關(guān)性,符合文本摘要的要求,可以作為標(biāo)準(zhǔn)摘要來(lái)使用。
本文采用Rouge指標(biāo)來(lái)對(duì)算法生成的摘要進(jìn)行評(píng)估,Rouge基于摘要中n元詞的共現(xiàn)信息來(lái)評(píng)價(jià)摘要,是一種面向n元詞召回率的自動(dòng)摘要評(píng)價(jià)方法。其基本思想是將算法自動(dòng)生成的摘要與測(cè)試數(shù)據(jù)集的標(biāo)準(zhǔn)摘要進(jìn)行對(duì)比,通過(guò)統(tǒng)計(jì)二者之間重疊的基本單元的數(shù)量來(lái)評(píng)價(jià)摘要的質(zhì)量。本文選取Rouge-1、Rouge-2、Rouge-L三種評(píng)價(jià)指標(biāo)來(lái)評(píng)價(jià)算法生成摘要的質(zhì)量。
為了驗(yàn)證SW-TextRank算法的有效性,將本文算法與降維處理后的TF-IDF算法、TextRank算法及現(xiàn)有研究中基于TextRank的改進(jìn)算法iTextRank設(shè)置對(duì)比實(shí)驗(yàn),并通過(guò)Rouge-1、Rouge-2、Rouge-L三種評(píng)價(jià)指標(biāo)來(lái)對(duì)各個(gè)算法生成的摘要進(jìn)行評(píng)估。
本文選取Rouge-1、Rouge-2、Rouge-L三種評(píng)價(jià)指標(biāo)來(lái)合理地評(píng)價(jià)自動(dòng)摘要的質(zhì)量,并計(jì)算出影響句子權(quán)重的各個(gè)影響因子的加權(quán)系數(shù)。綜合考慮所有加權(quán)系數(shù)λs、λp、λt、λk、λks和λc,設(shè)置不同的加權(quán)系數(shù)組合并進(jìn)行大量實(shí)驗(yàn),本文選取了具有代表性的9組參數(shù)組合如表1所示,針對(duì)每種組合計(jì)算其生成文本摘要的質(zhì)量,實(shí)驗(yàn)結(jié)果如圖2所示。
表1 不同的加權(quán)系數(shù)組合
圖2 參數(shù)對(duì)比實(shí)驗(yàn)
可以看出,當(dāng)λs=0.6,λp=λt=λc=0.1,λk=λks=0.05時(shí),生成的摘要質(zhì)量最好,因此在后續(xù)的算法對(duì)比實(shí)驗(yàn)中的參數(shù)值按上述情形設(shè)定。
在算法的對(duì)比實(shí)驗(yàn)中,通過(guò)算法自動(dòng)生成每篇測(cè)試文本的摘要,與測(cè)試數(shù)據(jù)集的標(biāo)準(zhǔn)摘要進(jìn)行對(duì)比,然后計(jì)算Rouge-1、Rouge-2、Rouge-L三種指標(biāo)值。將TF-IDF算法、TextRank算法、iTextRank算法與本文算法作對(duì)比,從而驗(yàn)證本文算法的有效性。其中iTextRank算法[9]在TextRank算法的基礎(chǔ)上,結(jié)合了篇章結(jié)構(gòu)和句子上下文信息。實(shí)驗(yàn)結(jié)果如表2所示。
表2 算法實(shí)驗(yàn)對(duì)比
可以看出,本文提出的SW-TextRank算法在Rouge-1、Rouge-2和Rouge-L三種評(píng)價(jià)指標(biāo)上均有明顯的提高,SW-TextRank算法生成摘要的質(zhì)量更好。整體而言,TF-IDF算法生成的摘要效果最差,改進(jìn)算法iTextRank相對(duì)于TF-IDF和TextRank有一定的優(yōu)勢(shì),SW-TextRank算法在整體上都明顯優(yōu)于其他三種算法。實(shí)驗(yàn)結(jié)果表明根據(jù)中文文本的特點(diǎn),綜合考慮文本中句子位置、句子與標(biāo)題的相似度、關(guān)鍵詞的覆蓋率、關(guān)鍵句子及線索詞等影響句子權(quán)重的因素,并把它們應(yīng)用到摘要的提取過(guò)程中,可以明顯提高生成摘要的質(zhì)量。
針對(duì)目前TextRank算法在自動(dòng)提取中文文本摘要時(shí)存在的不足,提出了一種改進(jìn)算法SW-TextRank。融合Word2Vec模型和TextRank算法,綜合考慮文本中句子的位置、句子與標(biāo)題的相似度、關(guān)鍵詞的覆蓋率、關(guān)鍵句子以及線索詞等因素對(duì)句子權(quán)重的影響,結(jié)合次模函數(shù)方法來(lái)保證摘要多樣性和覆蓋度,并且對(duì)得到的候選摘要句群進(jìn)行冗余處理,使得生成的摘要更具簡(jiǎn)明性和概括性。最后通過(guò)實(shí)驗(yàn)驗(yàn)證了SW-TextRank算法生成摘要的準(zhǔn)確性比TextRank算法更高,摘要生成質(zhì)量更好。但算法提取摘要的效率還有待提高,這將作為下一步工作。