TF-IDF
TF-IDF(Term Frequency/Inverse Document Frequency)是信息檢索領域非常重要的搜索詞重要性度量;用以衡量一個關鍵詞w對於查詢(Query,可看作文檔)所能提供的信息。詞頻(Term Frequency, TF)表示關鍵詞w在文檔Di中出現的頻率:
其中,count(w)為關鍵詞w的出現次數,|Di|為文檔Di中所有詞的數量。逆文檔頻率(Inverse Document Frequency, IDF)反映關鍵詞的普遍程度——當一個詞越普遍(即有大量文檔包含這個詞)時,其IDF值越低;反之,則IDF值越高。IDF定義如下:
其中,N為所有的文檔總數,I(w,Di)表示文檔Di是否包含關鍵詞,若包含則為1,若不包含則為0。若詞w在所有文檔中均未出現,則IDF公式中的分母為0;因此需要對IDF做平滑(smooth):
關鍵詞w在文檔Di的TF-IDF值:
從上述定義可以看出:
-
當一個詞在文檔頻率越高並且新鮮度高(即普遍度低),其TF-IDF值越高。
-
TF-IDF兼顧詞頻與新鮮度,過濾一些常見詞,保留能提供更多信息的重要詞。
TextRank
-
思想
通過詞之間的相鄰關系構建網絡,然后用PageRank迭代計算每個節點的rank值,排序rank值即可得到關鍵詞。
PageRank本來是用來解決網頁排名的問題,網頁之間的鏈接關系即為圖的邊,迭代計算公式如下:
其中,PR(Vi)表示結點Vi的rank值,In(Vi)表示結點Vi的前驅結點集合,Out(Vj)表示結點Vj的后繼結點集合,d為阻尼系數用於做平滑。
TextRank的迭代計算公式如下:
可以看出,該公式僅僅比PageRank多了一個權重項Wji,用來表示兩個節點之間的邊連接有不同的重要程度。
TextRank生成摘要
將文本中的每個句子分別看做一個節點,如果兩個句子有相似性,那么認為這兩個句子對應的節點之間存在一條無向有權邊。考察句子相似度的方法是下面這個公式:
公式中,Si,Sj分別表示兩個句子詞的個數總數,Wk表示句子中的詞,那么分子部分的意思是同時出現在兩個句子中的同一個詞的個數,分母是對句子中詞的個數求對數之和。分母這樣設計可以遏制較長的句子在相似度計算上的優勢。
我們可以根據以上相似度公式循環計算任意兩個節點之間的相似度,根據閾值去掉兩個節點之間相似度較低的邊連接,構建出節點連接圖,然后計算TextRank值,最后對所有TextRank值排序,選出TextRank值最高的幾個節點對應的句子作為摘要。