本發(fā)明涉及一種網(wǎng)絡文章轉(zhuǎn)發(fā)識別技術,尤其涉及一種基于大數(shù)據(jù)的網(wǎng)絡文章轉(zhuǎn)發(fā)識別的方法。
背景技術:
隨著互聯(lián)網(wǎng)的快速發(fā)展,網(wǎng)絡媒體也發(fā)展強勁,網(wǎng)絡文章作為網(wǎng)絡媒體最主要的表達形式,包括新聞、娛樂消息、體育報道等等,在微博、微信、博客等新聞媒體上大量的相互轉(zhuǎn)載和傳播;而另一方面,越來越多的網(wǎng)友習慣于在網(wǎng)上表達自己對各種新聞信息的看法和見解,這些看法和見解的論點明確、論述清楚,文字更是上升成了完整的網(wǎng)絡評論形成了網(wǎng)絡文章,該類網(wǎng)絡文章也在大量的傳播和轉(zhuǎn)載。
大量的虛假、欺詐、有害的文章在網(wǎng)絡上肆意傳播,相關部門若要禁止該類文章的傳播就須要找到該類文章的傳播源頭,現(xiàn)有技術中只能通過人工排查的方式找到該類文章的傳播途徑和來源,而一篇文章在網(wǎng)上發(fā)表后,由于網(wǎng)絡的復雜性,具有轉(zhuǎn)發(fā)多層次、多路徑、轉(zhuǎn)發(fā)量大等特點,最終形成了結(jié)構(gòu)復雜的多級的網(wǎng)狀轉(zhuǎn)發(fā)路徑;人工排查主要通過網(wǎng)民舉報、網(wǎng)關監(jiān)督等手段查找其轉(zhuǎn)發(fā)路徑,其耗時長且效率低。特別的,若該類文章為隱式轉(zhuǎn)發(fā)文章,即通過計算機手段如復制、粘貼的方式完全拷貝或者部分拷貝別人的文章用以自我發(fā)表,該類文章的轉(zhuǎn)發(fā)未有轉(zhuǎn)發(fā)鏈接也沒有標明文章的出處,且很容易形成多級的跨網(wǎng)站式的傳播時,通過人為排查找到源文章難度極大,即便找到源文章,想要有效的禁止此類文章的傳播,也缺乏有效手段。
技術實現(xiàn)要素:
本發(fā)明的目的就在于為了解決上述問題而提供一種基于大數(shù)據(jù)的網(wǎng)絡文章轉(zhuǎn)發(fā)識別方法。
本發(fā)明通過以下技術方案來實現(xiàn)上述目的:
一種基于大數(shù)據(jù)的網(wǎng)絡文章轉(zhuǎn)發(fā)識別方法,包括:
通過搜索引擎定時且不間斷的在互聯(lián)網(wǎng)上采集各種類型文章,依據(jù)所集文章建立文章數(shù)據(jù)倉庫,而后,確認需要識別的文章及其轉(zhuǎn)發(fā)類型,若轉(zhuǎn)發(fā)文章標出文章來源,則為顯式轉(zhuǎn)發(fā)文章,若轉(zhuǎn)發(fā)文章未標出文章的來源,則為隱式轉(zhuǎn)發(fā)文章。
對于顯式轉(zhuǎn)發(fā)文章,采用如下方法實現(xiàn)轉(zhuǎn)發(fā)識別:
步驟A1:設置初始集合S為空集,將待識別的文章A的鏈接放入集合S;
步驟A2:設置一個臨時集合C為空集;
步驟A3:取出集合S中的元素,與數(shù)據(jù)倉庫中的其他文章的傳播鏈接進行逐一匹配,若匹配成功,則將該匹配成功的文章P的鏈接加入集合C,反之,若匹配失敗,則繼續(xù)與數(shù)據(jù)倉庫中的下一條傳播鏈接進行匹配;
步驟A4:清空集合S中的元素,將C中所有元素加入S,清空集合C;
步驟A5:重復步驟A2至A4,直到集合S為空集;
步驟A6:根據(jù)步驟A3所獲傳播鏈接的傳播時間的先后重新排列鏈接;
對于隱式轉(zhuǎn)發(fā)文章,采用如下方法實現(xiàn)轉(zhuǎn)發(fā)識別:
步驟B1:設置初始集合S1,提取數(shù)據(jù)倉庫中所有文章的關鍵信息,并根據(jù)各自的關鍵信息計算得到各自的模糊Hash值;
步驟B2:將待識別文章A的模糊Hash值與數(shù)據(jù)倉庫中所有文章的模糊Hash值的逐一比對,找到與文章A有關聯(lián)的文章Pm的模糊Hash值,并進一步查找出該類文章的具體內(nèi)容,放入集合S1:
S1{P1、P2、P3……Pm}
步驟B3:依次提取集合S1中的文章Pm,將文章A與取出的文章Pm分別對應分解為兩個字序列X,Y,其長度分別對應為N、T,其中N≥T;定義序列X到序列Y中的點到點的距離函數(shù) 為:
其中 表示序列X中序號為i的字, 表示序列Y中序號為j的字,若 則表示兩個字相同,距離為0,若 則表示兩個字不同,距離為1;
步驟B4:定義X序列的字與Y序列的字之間的對應關系 ,根據(jù)對應關系計算得到兩篇文章序列之間的的累計距離 ,其中:
的可能值為1到N, 的可能值為1到T, 即解出T個從序列X到序列Y的對應關系, 即解出T個累計距離,若 ,則表明X序列的第一個點與Y序列的第一個點就是一個對應關系;
步驟B5:設定初始空集S2,設定轉(zhuǎn)發(fā)判定閾值H,將計算得到的T個距離累計值 放入集合S2,并從中篩選出最小的累計距離值 ,若最小距離值 ≦H,則文章A與文章Pm之間為轉(zhuǎn)發(fā)關系,若最小距離值 ﹥H,則兩文章之間不存在轉(zhuǎn)發(fā)的關系;
步驟B6:設定初始空集S3,重復步驟B3至B5,直至集合S1為空集,并將找到的與A存在轉(zhuǎn)發(fā)關系的文章Pe(0≦e≦m)放入集合S3;
步驟B7:根據(jù)文章Pe傳播時間的先后重新排列,該排列的首篇文章即為源文章。
作為優(yōu)選,所述步驟B2進一步包括:
B21:建立倒排索引表,針對待識別的文章A,將其的模糊Hash值分為4塊,每塊16位,根據(jù)每個塊值分別查詢4張倒排索引表,得到與A的模糊Hash值的漢明距離在3以內(nèi)的文章Pm的模糊Hash值;
B22:根據(jù)步驟B21所得模糊Hash值,查詢出該類文章的ID,通過按域搜索,查找出所有這些文章的的具體內(nèi)容,放入集合S1。
作為優(yōu)選,所述步驟B1中的文章關鍵信息包括,文章作者、文章鏈接、文章標題、文章發(fā)表時間、文章內(nèi)容、傳播鏈接、文章關鍵詞、文章摘要。
作為優(yōu)選所述判定閾值H優(yōu)選為0.15T。
作為優(yōu)選,所述步驟B6中的e的值為0的時候,P0僅為結(jié)果值,文章P0不存在,即文章A未存在有轉(zhuǎn)發(fā)關系的文章。
本發(fā)明的有益效果在于:通過該方法,能夠找到文章的轉(zhuǎn)發(fā)源,解決了現(xiàn)有的人為排查耗時長、且效率低的問題,同時,依據(jù)查找到的具備轉(zhuǎn)發(fā)關系的文章,為有關部門對有害網(wǎng)絡文章的禁止傳播提供數(shù)據(jù)依據(jù),此外,本發(fā)明還能夠用于網(wǎng)絡文章的原創(chuàng)性判定以及文章的影響力評估。
附圖說明
圖1是本發(fā)明中顯式轉(zhuǎn)發(fā)文章的識別流程圖;
圖2是本發(fā)明中隱式轉(zhuǎn)發(fā)文章的識別流程圖;
圖3是本發(fā)明中文章模糊Hash值的計算流程圖。
具體實施方式
下面結(jié)合附圖對本發(fā)明作進一步說明:
通過搜索引擎定時且不間斷的在互聯(lián)網(wǎng)上采集各種類型文章,依據(jù)所集文章建立文章數(shù)據(jù)倉庫,而后,確認需要識別的文章,并判定該文章的轉(zhuǎn)發(fā)類型,若轉(zhuǎn)發(fā)文章明顯標出文章來源,則為顯式轉(zhuǎn)發(fā)文章,若轉(zhuǎn)發(fā)文章未能標明其來源,則為隱式轉(zhuǎn)發(fā)文章。
由于各個網(wǎng)站、平臺的設計結(jié)構(gòu)各異、數(shù)據(jù)結(jié)構(gòu)也各不相同,所以在文章數(shù)據(jù)的采集中,須全面采集到一篇文章的基本信息,基本信息包括文章作者、文章鏈接、文章標題、文章發(fā)表時間、文章內(nèi)容、傳播鏈接、文章關鍵詞、文章摘要等。
考慮到網(wǎng)絡數(shù)據(jù)量的龐大以及提高數(shù)據(jù)采集的效率,搜索引擎采用分布式搜索引擎數(shù)據(jù)平臺的方式,包括分布式數(shù)據(jù)采集系統(tǒng)、存儲系統(tǒng)、監(jiān)控管理系統(tǒng)與分析系統(tǒng),分布式數(shù)據(jù)采集系統(tǒng)即由多臺服務器之間通過通信協(xié)作共同完成任務,由一臺主節(jié)點控制任務調(diào)度,即分發(fā)需要采集的網(wǎng)頁鏈接到各個數(shù)據(jù)采集節(jié)點,再由各個數(shù)據(jù)采集節(jié)點采集相應的數(shù)據(jù)并存儲及反饋給主節(jié)點。
圖1為顯式轉(zhuǎn)發(fā)文章的識別流程圖,如圖所示,對于顯式轉(zhuǎn)發(fā)文章,其轉(zhuǎn)發(fā)識別方法包括如下步驟:
步驟A1:設置初始集合S為空集,將待識別的文章A的鏈接放入集合S;
步驟A2:設置一個臨時集合C為空集;
步驟A3:取出集合S中的元素,與數(shù)據(jù)倉庫中的其他文章的傳播鏈接進行逐一匹配,若匹配成功,則將該匹配成功的文章P的鏈接加入集合C,反之,若匹配失敗,則繼續(xù)與數(shù)據(jù)倉庫中的下一條傳播鏈接進行匹配;
步驟A4:清空集合S中的元素,將C中所有元素加入S,清空集合C;
步驟A5:重復步驟A2至A4,直到集合S為空集;
步驟A6:根據(jù)步驟A3所獲傳播鏈接的傳播時間的先后重新排列鏈接;
顯式轉(zhuǎn)發(fā)文章,該類轉(zhuǎn)發(fā)文章有相同的鏈接,通過將待識別文章的鏈接與數(shù)據(jù)倉庫中所有文章的鏈接進行一一匹配,從而找到與待識別文章鏈接相同的文章鏈接,再通過鏈接傳播時間的先后,判定文章的轉(zhuǎn)發(fā)順序。
圖2為隱式轉(zhuǎn)發(fā)文章的識別流程圖,如圖所示,對于未標出文章來源的隱式轉(zhuǎn)發(fā)文章,其轉(zhuǎn)發(fā)識別方法包括如下步驟:
步驟B1:設置初始集合S1,提取數(shù)據(jù)倉庫中所有文章的關鍵信息,并根據(jù)各自的關鍵信息計算得到各自的模糊Hash值;
步驟B2:將待識別文章A的模糊Hash值與數(shù)據(jù)倉庫中所有文章的模糊Hash值的逐一比對,找到與文章A有關聯(lián)的文章Pm的模糊Hash值,并進一步查找出該類文章的的具體內(nèi)容,放入集合S1:
S1{P1、P2、P3……Pm}
其詳細步驟包括,
步驟B21:建立倒排索引表,針對待識別的文章A,將其的64位的模糊Hash值分為4塊,每塊16位,根據(jù)鴿籠原理,如果兩個模糊Hash值的距離在3以內(nèi),則它們必有一塊模糊Hash值完全相同。每一塊的塊值作為主鍵,文章的ID作為鍵值,建立4張倒排索引表,根據(jù)每個塊值分別查詢4張倒排索引表,得到與A的模糊Hash值的漢明距離在3以內(nèi)的文章Pm的模糊Hash值;
步驟B22:根據(jù)步驟B21所得模糊Hash值,查詢出該類文章的ID,通過按域搜索,查找出所有這些文章的的具體內(nèi)容,放入集合S1。
步驟B3:依次提取集合S1中的文章Pm,將文章A與取出的文章Pm分別對應分解為兩個字序列X,Y,其長度分別對應為N、T,其中N≥T;定義序列X到序列Y中的點到點的距離函數(shù) 為:
其中 表示序列X中序號為i的字, 表示序列Y中序號為j的字,若 則表示兩個字相同,距離為0,若 則表示兩個字不同,距離為1;
步驟B4:定義X序列的字與Y序列的字之間的對應關系 ,根據(jù)對應關系計算得到兩篇文章序列之間的的累計距離 ,其中:
的可能值為1到N, 的可能值為1到T, 即解出T個從序列X到序列Y的對應關系, 即解出T個累計距離,若 ,則表明X序列的第一個點與Y序列的第一個點就是一個對應關系;
兩個序列之間的累計距離越小,則序列X和序列Y相似度越高,相反,兩個序列之間的累計距離越大,則相似度越低,若兩篇文章存在轉(zhuǎn)發(fā)關系,則兩篇文章具有完全相同的內(nèi)容或者其中的某一段落或多個段落的內(nèi)容相同。
步驟B5:設定初始空集S2,設定轉(zhuǎn)發(fā)判定閾值H,將計算得到的T個距離累計值 放入集合S2,并從中篩選出最小的累計距離值 ,若最小距離值 ≦H,則文章A與文章Pm之間為轉(zhuǎn)發(fā)關系,若最小距離值 ﹥H,則兩文章之間不存在轉(zhuǎn)發(fā)的關系;
H的值根據(jù)需求設定,例如當H設為0時,兩篇內(nèi)容必須完全相同即最小累計距離達到0,才能判定定文章A和Pm為轉(zhuǎn)發(fā)關系,根據(jù)反復的實驗,H的值為0.15T時,兩篇文章具有85%的內(nèi)容相同,這種情況下,轉(zhuǎn)發(fā)識別準確度在99%以上,H的值為0.2T時,即兩篇具有80%相似度的文章,轉(zhuǎn)發(fā)識別準確度在95%,考慮到隱式轉(zhuǎn)發(fā)文章存在完全轉(zhuǎn)發(fā)和部分轉(zhuǎn)發(fā)的基礎上,且要保證轉(zhuǎn)發(fā)識別的高準確度的,判定閾值H優(yōu)選為0.15T。
步驟B6:設定初始空集S3,重復步驟B3至B5,直至集合S1為空集,并將找到的與A存在轉(zhuǎn)發(fā)關系的文章Pe(0≦e≦m)放入集合S3,特別的,當e的值為0的時候,P0僅為結(jié)果值,文章P0不存在,即文章A未存在有轉(zhuǎn)發(fā)關系的文章;這里值得說明的是,當未找到與文章A有轉(zhuǎn)發(fā)關系的文章時,識別結(jié)果自動默認為P0,P0僅為結(jié)果值,而P0代表的文章不存在。
步驟B7:根據(jù)文章Pe傳播時間的先后重新排列,該排列的首篇文章即為源文章。
對于隱式轉(zhuǎn)發(fā)文章,該類文章未標明轉(zhuǎn)發(fā)鏈接,其作者通過計算機手段如復制、粘貼的方式完全拷貝或者部分拷貝別人的文章內(nèi)容并加入自己的文章用以自我發(fā)表,也就是兩篇存在轉(zhuǎn)發(fā)關系的文章具備一定相似度,該類文章與源文章部分內(nèi)容相同或全部內(nèi)容相同,同時,該類文章與顯式轉(zhuǎn)發(fā)文章不同,不能采用傳播鏈接比對的方式進行轉(zhuǎn)發(fā)識別。在識別一篇隱式轉(zhuǎn)發(fā)文章的轉(zhuǎn)發(fā)時,首先找到與其相關聯(lián)的文章,相關聯(lián)的文章即為可能存在轉(zhuǎn)發(fā)的文章,而這一步首先要提取數(shù)據(jù)倉庫中每篇文章的關鍵信息,通過關鍵信息計算得到各自的模糊Hash值,再將待識別文章的模糊Hash值與各篇文章的模糊Hash值逐一比對,找到可能存在轉(zhuǎn)發(fā)關系的文章;而后在可能存在轉(zhuǎn)發(fā)關系文章中進一步識別,準確識別出與這篇文章存在轉(zhuǎn)發(fā)關系的文章。
對于模糊Hash值,尤其計算的是模糊的Hash值,而不是唯一性的Hash值。取模糊值的目的在于保留部分計算波動,該波動增加了步驟B2中Hash值的比對范圍,從而提高識別準確度。對于部分轉(zhuǎn)發(fā)文章,該類文章即保留了大部分源文章的內(nèi)容并做了部分修改。若無此計算波動,有可能在步驟B2中Hash值比對時比漏掉,降低轉(zhuǎn)發(fā)識別率。
對于步驟B1中的計算各文章的模糊Hash值,在此,進一步補充說明計算各文章的模糊hash值的具體的方法,其方法如下:
分詞:首先進行分詞,得到有效的特征向量,特征向量指的就是文本中的詞。由于每個詞在句子或文章中的重要性程度不同,所以需要對文章中的詞設置權重,權重越大,重要性程度越大。設置詞的權重為該詞在該文章中出現(xiàn)的頻率。例:將句子“我是中國人”,分詞為“我(2)是(1)中國(5)人(3)”,括號中的數(shù)值為該詞的權重。
Hash值計算:生成特征向量之后,通過Hash函數(shù)計算各個特征向量的Hash值,Hash值為二進制數(shù)0、1組成的n-bit簽名,n為Hash值的長度,這里設置n為64。如此就將文本信息轉(zhuǎn)化為數(shù)值信息。例如:Hash(“中國”) = [1100 1011 0001 0100 0011 1010 1100 1101 0110 1100 1001 0010 1001 1000 0010 0110]
加權:轉(zhuǎn)化為數(shù)值型特征向量之后,就可以給所有特征向量的Hash值進行加權。把特征向量的Hash值的每一位看成是一個維度,如果該位為1,則加權結(jié)果為正權重;如果該位為0,則加權結(jié)果為負權重。以此生成加權的特征向量。例如:HW(“中國”) = Hash(“中國”)*Weight(“中國”) = [5 5 -5 -5 5 -5 5 5 -5 -5 -5 5 -5 5 -5 -5 -5 -5 5 5 5 -5 5 -5 5 5 -5 -5 5 5 -5 5 -5 5 5 -5 5 5 -5 -5 5 -5 -5 5 -5 -5 5 -5 5 -5 -5 5 5 -5 -5 -5 -5 -5 5 -5 -5 5 5 -5]
合并:將上一步生成的所有加權特征向量對應的維度累加,生成最終的一個64位的合并特征向量。例如:M(“我是中國人”) = HW(“我”) + HW(“是”)+HW(“中國”)+HW(“人”) = [-1 3 -11 -1 -1 -11 5 9 -3 -9 -11 3 -9 11 -7 -1 1 -9 -1 5 9 -11 1 -5 11 11 -11 -1 11 11 -3 1 -11 1 11 -3 -1 5 -9 -1 3 -1 1 7 -5 1 11 -3 5 -5 -11 5 -1 -1 -5 -1 -1 -9 7 -5 -7 9 7 -1]。
降維:對于上一步生成的合并特征向量,針對每一位值,如果該位大于0,則置為1,如果該位小于等于0,則置為0;該步的降維使得唯一Hash值變得模糊。例如:Sign(“我是中國人”) = DR(M(“我是中國人”)) = [0100 0011 0001 0100 1001 1010 1100 1101 0110 0100 1011 0110 1001 0000 0010 0110],降維后的結(jié)果即為所需的模糊Hash值。
以上顯式和描述了本發(fā)明的基本原理、主要特征和優(yōu)點。本行業(yè)的技術人員應該了解,上述實施例不以任何形式限制本發(fā)明,凡采用等同替換或等效變換的方式所獲得的技術方案,均落在本發(fā)明的保護范圍內(nèi)。