from:
相對於textrank,摘取關鍵句子還有一些比較簡單的演算法,比如這篇,我們可以把句子分別和整篇文章做比較,相似性最大的就是關鍵的句子。而textrank其實就是pagerank演算法擴充套件到句子上,來的到一些全域性的資訊。textrank的**在這裡。
首先我們看pagerank演算法,就是google用的那個網頁排序的pagerank演算法,首先網頁之間都是有超連結鏈結的,如果某個**a有指向b的超連結,說明a**認為b**是有價值的,於是相應的我們可以給b來提公升權重,但是就像現實中,一般人的意見和專家的意見的權重是不一樣的,所以如果**a的權重比較高,那麼就可以貢獻更多的權重給b,反之則貢獻更少的權重,然後演算法經過一輪輪的迭代,所有結點的權重會收斂,就得到了最終的權重了。然後我們有pagerank的計算公式,其中d是阻尼係數。
sco換到textrank,對於pagerank而言,邊是沒有權值的,而textrank的邊是有權值的,表示兩個句子的相似性,這個權值可以用jaccard similarity coefficient就是交集數目除以並集數目,或者cosine的余弦夾角,或者是bm25一類的演算法。在邊有了權值之後,textrank的公式變為這個樣子。re(v
i)=(
1−d)
+d∗∑
1∣∣o
ut(v
j)∣∣
∗sco
re(v
j)
sco**裡顯示帶了權重之後收斂會慢一些,在經過若干輪的迭代之後,我們就可以得到每個句子的權重了,然後我們取出權重最大的幾個就認為是文章的關鍵句子了。re(v
i)=(
1−d)
+d∗∑
weig
ht(j
,i)∑
weig
ht(j
,k)∗
scor
e(vj
)
自己實現了乙份以bm25為相似性的textrank演算法,**在github上,具體可以看**,test.py展示了摘要的提取。同時這個專案實現了一些常用的操作,比如繁體轉簡體,中文的分詞和詞性標註等,歡迎試用提pull requests啊!
python摘要 python 摘要演算法
一 概述 摘要演算法主要特徵是加密過程不需要金鑰,並且加密的資料無法解密,只有輸入相同的明文資料經過相同的摘要演算法才能得到相同的密文。摘要演算法主要應用在 數字簽名 領域。接下來會講述rsa公司的md5演算法和sha 1演算法。二 原理 通過乙個函式,把任意長度的資料轉換成乙個長度固定的資料串 通...
自動文字摘要學習
自動文字摘要是自然語言處理中乙個比較難的任務。新聞的摘要要求編輯能夠從新聞事件中提取出最關鍵的資訊點,然後重新組織語言進行描述 一般 的摘要要求作者先表述清楚問題,對前人工作中不完善的地方進行總結,然後用更凝練的語言描述自己的工作 綜述性質的 要求作者通讀大量相關領域的工作,用最概括性的語言將每份工...
訊息摘要演算法 數字摘要
為了保證檔案或值的安全性,因為使用訊息摘要生成的值是不可篡改的 特點 準備工作 string input 訊息摘要 string algorithm md5 public static void main string args throws exception 建立乙個訊息摘要物件messaged...