TextRank是一種用來做關(guān)鍵詞提取的算法,也可以用于提取短語和自動摘要尽纽。因為TextRank是基于PageRank的畅蹂,所以首先簡要介紹下PageRank算法。
1.PageRank算法
PageRank設(shè)計之初是用于Google的網(wǎng)頁排名的旬迹,以該公司創(chuàng)辦人拉里·佩奇(Larry Page)之姓來命名火惊。Google用它來體現(xiàn)網(wǎng)頁的相關(guān)性和重要性,在搜索引擎優(yōu)化操作中是經(jīng)常被用來評估網(wǎng)頁優(yōu)化的成效因素之一奔垦。PageRank通過互聯(lián)網(wǎng)中的超鏈接關(guān)系來確定一個網(wǎng)頁的排名屹耐,其公式是通過一種投票的思想來設(shè)計的:如果我們要計算網(wǎng)頁A的PageRank值(以下簡稱PR值),那么我們需要知道有哪些網(wǎng)頁鏈接到網(wǎng)頁A椿猎,也就是要首先得到網(wǎng)頁A的入鏈惶岭,然后通過入鏈給網(wǎng)頁A的投票來計算網(wǎng)頁A的PR值寿弱。這樣設(shè)計可以保證達(dá)到這樣一個效果:當(dāng)某些高質(zhì)量的網(wǎng)頁指向網(wǎng)頁A的時候,那么網(wǎng)頁A的PR值會因為這些高質(zhì)量的投票而變大按灶,而網(wǎng)頁A被較少網(wǎng)頁指向或被一些PR值較低的網(wǎng)頁指向的時候,A的PR值也不會很大脖捻,這樣可以合理地反映一個網(wǎng)頁的質(zhì)量水平。那么根據(jù)以上思想兆衅,佩奇設(shè)計了下面的公式:
該公式中地沮,Vi表示某個網(wǎng)頁,Vj表示鏈接到Vi的網(wǎng)頁(即Vi的入鏈)羡亩,S(Vi)表示網(wǎng)頁Vi的PR值摩疑,In(Vi)表示網(wǎng)頁Vi的所有入鏈的集合,Out(Vj)是網(wǎng)頁j中的鏈接存在的鏈接指向的網(wǎng)頁的集合。|Out(Vj)|是集合中元素的個數(shù)畏铆。雷袋,d表示阻尼系數(shù),是用來克服這個公式中“d *”后面的部分的固有缺陷用的:如果僅僅有求和的部分辞居,那么該公式將無法處理沒有入鏈的網(wǎng)頁的PR值楷怒,因為這時,根據(jù)該公式這些網(wǎng)頁的PR值為0瓦灶,但實(shí)際情況卻不是這樣鸠删,所有加入了一個阻尼系數(shù)來確保每個網(wǎng)頁都有一個大于0的PR值,根據(jù)實(shí)驗的結(jié)果贼陶,在0.85的阻尼系數(shù)下刃泡,大約100多次迭代PR值就能收斂到一個穩(wěn)定的值,而當(dāng)阻尼系數(shù)接近1時碉怔,需要的迭代次數(shù)會陡然增加很多烘贴,且排序不穩(wěn)定。公式中S(Vj)前面的分?jǐn)?shù)指的是Vj所有出鏈指向的網(wǎng)頁應(yīng)該平分Vj的PR值撮胧,這樣才算是把自己的票分給了自己鏈接到的網(wǎng)頁桨踪。
2.TextRank算法提取關(guān)鍵詞
TextRank是由PageRank改進(jìn)而來,其公式有頗多相似之處芹啥,這里給出TextRank的公式可以看出锻离,該公式僅僅比PageRank多了一個權(quán)重項Wji,用來表示兩個節(jié)點(diǎn)之間的邊連接有不同的重要程度叁征。TextRank用于關(guān)鍵詞提取的算法如下:
1)把給定的文本T按照完整句子進(jìn)行分割纳账,即
官扣,其中 ti,j 是保留后的候選關(guān)鍵詞翅敌。
3)構(gòu)建候選關(guān)鍵詞圖G = (V,E),其中V為節(jié)點(diǎn)集惕蹄,由(2)生成的候選關(guān)鍵詞組成蚯涮,然后采用共現(xiàn)關(guān)系(co-occurrence)構(gòu)造任兩點(diǎn)之間的邊,兩個節(jié)點(diǎn)之間存在邊僅當(dāng)它們對應(yīng)的詞匯在長度為K的窗口中共現(xiàn)卖陵,K表示窗口大小遭顶,即最多共現(xiàn)K個單詞。
4)根據(jù)上面公式泪蔫,迭代傳播各節(jié)點(diǎn)的權(quán)重棒旗,直至收斂。
5)對節(jié)點(diǎn)權(quán)重進(jìn)行倒序排序撩荣,從而得到最重要的T個單詞铣揉,作為候選關(guān)鍵詞。
6)由5得到最重要的T個單詞餐曹,在原始文本中進(jìn)行標(biāo)記逛拱,若形成相鄰詞組,則組合成多詞關(guān)鍵詞台猴。
3.TextRank算法提取關(guān)鍵詞短語
提取關(guān)鍵詞短語的方法基于關(guān)鍵詞提取橘券,可以簡單認(rèn)為:如果提取出的若干關(guān)鍵詞在文本中相鄰,那么構(gòu)成一個被提取的關(guān)鍵短語卿吐。
4.TextRank生成摘要
提取關(guān)鍵詞短語的方法基于關(guān)鍵詞提取旁舰,可以簡單認(rèn)為:如果提取出的若干關(guān)鍵詞在文本中相鄰,那么構(gòu)成一個被提取的關(guān)鍵短語嗡官。
2.3TextRank生成摘要
將文本中的每個句子分別看做一個節(jié)點(diǎn)箭窜,如果兩個句子有相似性,那么認(rèn)為這兩個句子對應(yīng)的節(jié)點(diǎn)之間存在一條無向有權(quán)邊衍腥』怯#考察句子相似度的方法是下面這個公式:
公式中,Si,Sj分別表示兩個句子婆咸,Wk表示句子中的詞竹捉,那么分子部分的意思是同時出現(xiàn)在兩個句子中的同一個詞的個數(shù),分母是對句子中詞的個數(shù)求對數(shù)之和尚骄。分母這樣設(shè)計可以遏制較長的句子在相似度計算上的優(yōu)勢块差。
我們可以根據(jù)以上相似度公式循環(huán)計算任意兩個節(jié)點(diǎn)之間的相似度,根據(jù)閾值去掉兩個節(jié)點(diǎn)之間相似度較低的邊連接,構(gòu)建出節(jié)點(diǎn)連接圖憨闰,然后計算TextRank值状蜗,最后對所有TextRank值排序,選出TextRank值最高的幾個節(jié)點(diǎn)對應(yīng)的句子作為摘要鹉动。