1. 程式人生 > >textRank演算法原理介紹與摘要提取

textRank演算法原理介紹與摘要提取

TextRank

TextRank 公式在 PageRank 公式的基礎上,為圖中的邊引入了權值的概念:

wijwij 就是是為圖中節點 ViVi 到 VjVj 的邊的權值 。dd 依然為阻尼係數,代表從圖中某一節點指向其他任意節點的概率,一般取值為0.85。In(Vi)In(Vi) 和 Out(Vi)Out(Vi) 也和 PageRank 類似,分別為指向節點 ViVi 的節點集合和從節點 ViVi 出發的邊指向的節點集合。

在 TextRank 構建的圖中,預設節點就是句子,權值 wijwij 就是兩個句子 SiSi 和 SjSj 的相似程度。兩個句子的相似度使用下面的公式來計算:

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

Si||Si|是句子 i 中的單詞數。

使用 TextRank 演算法計算圖中各節點的得分時,同樣需要給圖中的節點指定任意的初值,通常都設為1。然後遞迴計算直到收斂,即圖中任意一點的誤差率小於給定的極限值時就可以達到收斂,一般該極限值取 0.0001。

使用 TextRank 提取摘要

自動摘要,就是從文章中自動抽取關鍵句。人類對關鍵句的理解通常是能夠概括文章中心的句子,而機器只能模擬人類的理解,即擬定一個權重的評分標準,給每個句子打分,之後給出排名靠前的幾個句子。基於 TextRank 的自動文摘屬於自動摘錄,通過選取文字中重要度較高的句子形成文摘。

依然使用 TextRank 公式:

等式左邊表示一個句子的權重(WS 是 weight_sum 的縮寫),右側的求和表示每個相鄰句子對本句子的貢獻程度。與提取關鍵字的時候不同,一般認為全部句子都是相鄰的,不再通過視窗提取

邊的權值 wijwij 代表句子 SiSi 和 SjSj 的相似度,既可以使用上面介紹過的基於句子間內容覆蓋率的方法計算,也可以使用基於編輯距離,基於語義詞典,餘弦相似度,BM25 演算法等等。

因為我們是要抽取關鍵句,因而是以句子為基本單位。使用 TextRank 提取摘要的整個過程如下:

  1. 預處理:將文字分割成句子 S1,S2,,SmS1,S2,⋯,Sm,以句子為節點構建圖。
  2. 計算句子相似度:對句子進行分詞、取停用詞等處理,以便於計算任意兩個句子之間的相似度。將計算好的句子相似度作為兩個句子構成的邊的權值。
  3. 句子權重:根據公式,迭代傳播權重計算各句子的得分。
  4. 抽取文摘句:得到的句子得分進行倒序排序,抽取重要度最高的 N 個句子作為候選文摘句。
  5. 形成文摘:根據字數或句子數要求,從候選文摘句中抽取句子組成文摘。