? ? 所謂自動摘要,就是從文章中自動抽取關鍵句。何謂關鍵句?人類的理解是能夠概括文章中心的句子,機器的理解只能模擬人類的理解,即擬定一個權重的評分標準,給每個句子打分,之后給出排名靠前的幾個句子。
1.TextRank公式
? ? TextRank的打分思想依然是從PageRank的迭代思想衍生過來的,如下公式所示:
? ? 等式左邊表示一個句子的權重(WS是weight_sum的縮寫),右側的求和表示每個相鄰句子對本句子的貢獻程度,一般認為一篇文檔中全部句子都是相鄰的。求和的分母wji表示兩個句子的相似程度,分母又是一個weight_sum,而WS(Vj)代表上次迭代j的權重,整個公式是一個迭代的過程。
2.相似程度的計算
? ? 而相似程度wji的計算使用BM25,BM25算法是一種常見用來做相關度打分的公式,思路比較簡單,主要就是計算一個query里面所有詞和文檔的相關度,然后再把分數做累加操作,而每個詞的相關度分數主要還是受到tf/idf的影響。公式如下:
? ? fi是詞在文檔中的出現次數,dl是文檔長度,avgdl是文檔平均長度,可以看出如果其他因素一樣,dl越大,相關度越低,這個也符合結論。至于會除以一個avgdl,我想是拿本篇文檔長度和整體文檔長度水平做比較,以免單獨取dl值時過大。
? ? N是文檔總數,n(qi)是包含該詞的文檔數,0.5是調教系數,避免n(qi)為0的情況,從這個公式可以看出N越大,n(qi)越小的,idf值越大,這也符合了"詞的重要程度和其出現在總文檔集合里的頻率成反比"的思想,取個log是為了讓idf的值受N和n(qi)的影響更加平滑。
影響BM25公式的因數有:
1 idf,idf越高分數越高
2 tf,tf越高分數越高
3 dl/avgdl如果該文檔長度在文檔水平中越高則分數越低。
4 k1,b為分數的調節因子,其中k1,b都是調節因子,一般k1=2, b=0.75
3.引用
1.https://my.oschina.net/letiantian/blog/351154
2.http://www.hankcs.com/nlp/textrank-algorithm-java-implementation-of-automatic-abstract.html