一、實(shí)現(xiàn)思路
為了能夠判斷最新從網(wǎng)站上抓取的新聞是否已經(jīng)存在于本地?cái)?shù)據(jù)庫舔庶,需要拿最新抓取的新聞和數(shù)據(jù)庫中的新聞逐條進(jìn)行比對(duì)得出相似度最大的一個(gè)值,后期可以通過設(shè)定相應(yīng)的閥值來讓系統(tǒng)判斷假如相似度為80%就認(rèn)為數(shù)據(jù)庫中已經(jīng)存在了目前將要插入數(shù)據(jù)庫的新聞陈醒,禁止再次放入數(shù)據(jù)庫從而達(dá)到去重的目的惕橙。
二、具體實(shí)現(xiàn)
本項(xiàng)目新聞去重采用的是谷歌公司的google-diff-match-patch算法來計(jì)算兩條新聞的相似度孵延。(原理說明:使用兩條待比較的內(nèi)容中的一條為模板吕漂,把另一條向作為模板的一條進(jìn)行復(fù)原,統(tǒng)計(jì)出復(fù)原的步數(shù)尘应,再計(jì)算出復(fù)原成模板最壞情況下的步數(shù)惶凝,用最壞情況下復(fù)原成模板的步數(shù)減去實(shí)際復(fù)原所用的步數(shù)再除以最壞情況下的步數(shù)即為兩個(gè)帶比較文本的相似度吼虎。)
核心代碼如下: