使用TextRank演算法為文字生成關鍵字和摘要

2021-07-25 13:53:23 字數 1691 閱讀 2220

使用textrank演算法為文字生成關鍵字和摘要

textrank演算法基於pagerank,用於為文字生成關鍵字和摘要。其**是:

mihalcea r, tarau p. textrank: bringing order into texts[c]. association for computational linguistics, 2004.

pagerank最開始用來計算網頁的重要性。整個www可以看作一張有向圖圖,節點是網頁。如果網頁a存在到網頁b的鏈結,那麼有一條從網頁a指向網頁b的有向邊。

構造完圖後,使用下面的公式: s(

vi)=

(1−d

)+d∗

∑j∈i

n(vi

)1∣o

ut(v

j)∣s

(vj)

s(vi)

是網頁i的重要性(pr值)。d是阻尼係數,一般設定為0.85。in

(vi)

是存在指向網頁i的鏈結的網頁集合。ou

t(vj

) 是網頁j中的鏈結存在的鏈結指向的網頁集合。mi

dout

(vj)

∣ 是集合中元素的個數。

pagerank需要使用上面的公式多次迭代才能得到結果。初始時,可以設定每個網頁的重要性為1。上面公式等號左邊計算的結果是迭代後網頁i的pr值,等號右邊用到的pr值全是迭代前的。

舉個例子:

vi)=

(1−d

)+d∗

∑j∈i

n(vi

)1∣o

ut(v

j)∣s

(vj)

每個單詞作為pagerank中的乙個節點。設定視窗大小為kk,假設乙個句子依次由下面的單詞組成:

w1,w2,w3,w4,w5,…,wnw1,w2,w3,w4,w5,…,wn

[w1,w2,…,wkw1,w2,…,wk]、[w2,w3,…,wk+1w2,w3,…,wk+1]、[w3,w4,…,wk+2w3,w4,…,wk+2]等都是乙個視窗。在乙個視窗中的任兩個單詞對應的節點之間存在乙個無向無權的邊。

將每個句子看成圖中的乙個節點,若兩個句子之間有相似性,認為對應的兩個節點之間有乙個無向有權邊,權值是相似度。

通過pagerank演算法計算得到的重要性最高的若干句子可以當作摘要。

**中使用下面的公式計算兩個句子si和sj的相似度:si

mila

rity

(si,

sj)=

∣wk∣

wk∈s

i⋂wk

∈sj∣

log(∣s

i∣)+

log(∣s

j∣)

s(vi

)=(1

−d)+

d∗∑j

∈in(

vi)1

∣out

(vj)

∣s(v

j)這個方法不好,改為余弦相似性。

分子是在兩個句子中都出現的單詞的數量。|si|是句子i的單詞數。

由於是有權圖,這裡相似度作為兩條邊的權值,pagerank公式略做修改: ws

(vi)

=(1−

d)+d

∗∑vj

∈in(

vi)w

ji∑v

k∈ou

t(v)

jwjk

ws(v

j)

使用TextRank演算法為文字生成關鍵字和摘要

textrank演算法基於pagerank,用於為文字生成關鍵字和摘要。其 是 mihalcea r,tarau p.textrank bringing order into texts c association for computational linguistics,2004.先從pager...

hanlp關鍵詞提取演算法TextRank

長句子 string content 程式設計師 英文programmer 是從事程式開發 維護的專業人員。一般將程式設計師分為程式設計人員和程式編碼人員,但兩者的界限並不非常清楚,特別是在中國。軟體從業人員分為初級程式設計師 高階程式設計師 系統 分析員和專案經理四大類。把content 通過乙個...

基於TextRank的關鍵詞提取演算法

pagerank是用來計算網頁重要性的,將每乙個網頁看作乙個節點,將網頁之間的鏈結看作是節點之間的有向邊,網頁的重要性取決於鏈結到它的網頁數量以及這些網頁的重要性。衡量網頁重要性的公式說明如下 什麼是共現關係呢?將文字進行分詞,去除停用詞或詞性篩選等之後,設定視窗長度為k,即最多只能出現k個詞,進行...