輿情大數據處理方法與流程
2023-04-25 22:44:51 1
本發明涉及大數據,特別涉及一種輿情大數據處理方法。
背景技術:
社交網絡中用戶是信息的發布者,用戶如果對某方面的信息感興趣,該用戶需要做的是同發布這方面信息的用戶建立社會網址,構建自己的社交網絡,實時的相關信息就會通過社交網絡傳播到該用戶那裡。社交網絡中傳播的信息,例如,在微博中,用戶的轉發行為引發了微博信息在網絡中傳播,用於市場營銷、廣告投放和謠言控制等多個方面。由此可見,信息在社交網絡中的傳播對幫助用戶獲取信息起著至關重要的作用。現有技術中的信息傳播跟蹤方法通常只考慮了比較單一的影響信息傳播的因素,方法中虛擬的參數通常是任意指定的,不具備預測信息傳播的能力。此外,當給定一個社交網絡後,對於如何在社交網絡上選取一個指定規模的節點集合以達到影響力最大化的效果方面,已有方法只適用於小型網絡,對於大規模的社交網絡,只能得到近似的較優結果。
技術實現要素:
為解決上述現有技術所存在的問題,本發明提出了一種輿情大數據處理方法,包括:
控制節點協調多個爬取節點的爬取事務;
爬取節點分別進行網頁爬取,將獲取的輿情數據存儲在雲文件系統中。
優選地,所述控制節點啟動各個爬取節點、事務的分發、管理爬取節點狀態、管理url以及爬取節點。
優選地,所述控制節點根據自身的配置信息獲取已部署爬取節點的數量,以遠程登錄的方式啟動爬取節點。
優選地,所述控制節點初始化事務分發時,向各個爬取節點發送爬取事務,控制節點首先探測各個爬取節點的連通性;將物理上無法連通的主機的信息從資料庫中刪除,然後進入事務分發階段;當爬取節點返回url時,控制節點再給請求的爬取節點發送事務;爬取過程中對於從爬取的網頁抽取的url則返回給控制節點,由控制節點統一調度;控制節點以固定個數的url不斷向請求事務的爬取節點發送事務。
優選地,所述爬取節點啟動後向控制節點發送一個就緒狀態信息,表明該爬取節點已經做好準備,可以接受爬取事務;控制節點收到爬取節點的就緒信息後,生成一個初始事務,即封裝待爬取的網頁的url,並以文件的形式發送到爬取節點某個特定的路徑下;如果控制節點發現當前資料庫中無數據而且系統中還有爬取節點在爬取,則向該爬取節點發送等待信息,爬取節點根據收到運行信息,到相應的路徑下,裝載待爬取url到爬取隊列,在當前爬取完之後繼續爬取下一次事務;爬取節點若收到等待信息,爬完當前事務後,保持等待狀態,直到控制節點將其喚醒;在爬取網頁的過程中,抽取出的url達到預定量後,封裝成一個數據文件,爬取節點將其發送到控制節點的特定路徑下,控制節點到指定路徑下裝載數據至資料庫中;當爬取節點即將完成本次爬取事務的時候,同樣向控制節點發送就緒狀態信息。
本發明相比現有技術,具有以下優點:
本發明提出了一種輿情大數據處理方法,實現了並行網頁爬取,提高採集和存儲效率,廣泛適用於大規模的社交網絡。
附圖說明
圖1是根據本發明實施例的輿情大數據處理方法的流程圖。
具體實施方式
下文與圖示本發明原理的附圖一起提供對本發明一個或者多個實施例的詳細描述。結合這樣的實施例描述本發明,但是本發明不限於任何實施例。本發明的範圍僅由權利要求書限定,並且本發明涵蓋諸多替代、修改和等同物。在下文描述中闡述諸多具體細節以便提供對本發明的透徹理解。出於示例的目的而提供這些細節,並且無這些具體細節中的一些或者所有細節也可以根據權利要求書實現本發明。
本發明的一方面提供了一種輿情大數據處理方法。圖1是根據本發明實施例的輿情大數據處理方法流程圖。
分布式爬取整體架構包括爬取節點、控制節點以及雲文件系統三部分。控制節點負責協調爬取節點之間的爬取,爬取節點負責爬取網頁,爬取的網頁存儲在雲文件系統中。控制節點啟動各個爬取節點、事務的分發、管理爬取節點狀態、管理url以及爬取節點是否終止。控制節點根據自身的配置信息獲取已部署多少個爬取節點,由控制節點遠程登錄的方式啟動爬取節點;爬取節點啟動後向控制節點發送一個就緒狀態信息,表明該爬取節點已經做好準備,可以接受爬取事務了;控制節點收到爬取節點的就緒信息後,生成一個初始事務,即封裝了一些待爬取的網頁的url,並以文件的形式發送到爬取節點某個特定的路徑下。如果控制節點發現當前資料庫中無數據而且系統中還有爬取節點在爬取,它就會向該爬取節點發送等待信息,爬取節點根據收到運行信息,到相應的路徑下,裝載待爬取url到爬取隊列,在當前爬取完之後繼續爬取下一次事務。爬取節點若收到等待信息,爬完當前事務後,保持等待狀態,直到控制節點將其喚醒;在爬取網頁的過程中,抽取出的url達到預定量後,封裝成一個數據文件,爬取節點將其發送到控制節點的特定路徑下,控制節點到指定路徑下裝載數據至資料庫中;當爬取節點即將完成本次爬取事務的時候,同樣向控制節點發送就緒狀態信息。
控制節點包括狀態管理器、數據裝載器、過濾器、事務管理器、資料庫。狀態管理器負責判斷爬取節點發送的狀態類型,如果狀態是數據爬取,則狀態管理器將其提交數據裝載器;如果是事務請求狀態,則將其交給事務管理器。數據裝載器到指定的路徑下以文件的形式讀取爬取節點發送的url,然後將這些數據交給過濾器。過濾器對數據進行去重,將經過處理的數據存儲至資料庫中。資料庫存儲待爬取的url以及爬取節點的管理信息。事務管理器生成、發送爬取事務以及爬取節點控制信息,並將爬取事務和控制信息發送給請求的爬取節點。
對於數據去重處理,通過md5算法來生成散列函數:首先構造一個bit數組,大小為224,用於保存已經處理過url的歷史記錄;構成散列函數構造分成兩部分,即全局散列和局部散列,具體構造過程如下:獲得一個關於url的md5值的字符串形式,將字符串轉換成一個128位的byte值,並對224求餘,使之映射到0~224的範圍內;將這128位的md5值去掉其中的高8位,剩下其餘的120位;這120位每24位分成一組,形成五組。每一組值的取值範圍為再對這五組散列值進行如下轉化,使它們映射到相應區間:前兩個散列函數對224/3求餘,映射區間為0~224/3;接下來的兩個函數,同樣對224/3求餘,映射範圍為而後分別加上224/3,使之映射區間為最後一個函數,同樣對224/3求餘,映射範圍為0~224/3,而後將它的值加224/3,使之映射區間為224/3~224。
進行url去重的過程為:首先初始化224的位數組,每個位置為0。當有url輸入時,計算該url的散列值,得出一個關於當前url的一個128位的字符串表示,將此字符串按上述散列過程分別得到全局散列值和局部散列值;依次檢測所有散列值為是否都為1,如果有一個不為1,則通過該過濾器過濾。判別url結束之後,將所有散列值對應的位置為1。
控制節點初始化事務分發時,向各個爬取節點發送爬取事務。控制節點首先探測各個爬取節點的連通性。將物理上無法連通的主機的信息從資料庫中刪除,然後進入事務分發階段。當爬取節點返回url時,控制節點再給請求的爬取節點發送事務。爬取過程中對於從爬取的網頁抽取的url則返回給控制節點,由控制節點統一調度。控制節點以固定個數的url不斷向請求事務的爬取節點發送事務。
爬取節點中的待爬取隊列暫存本次控制節點發送的爬取事務,即待爬取的url。預取單元從待爬取隊列中獲取一個url,獲取之後對該url進行預處理,處理之後交給抓取單元。抓取單元模擬瀏覽器建立與待爬取站點的網址的連接,獲取對應的網頁,並將其交給抽取單元,然後將待爬取網站的域名地址進行緩存,用於後續爬取時直接使用域名地址緩存。通過url散列函數的相關應用,將這些域名散列到域名地址的散列隊列中,通過這些規則生成一個特定的編號,通過這些域名地址的解析過程,來獲取索引的相關內容。解析這些信息成功後,將這些信息寫入相關的資料庫中進行存儲,這些索引的內容通過相應的網頁ip實現寫入對應的資料庫中,通過獲取相關內容實現更新域名池信息,若該域名己經解析了相關的對應ip,通過對這些域名進行相應使用頻率的加權,並且判斷優先處理規則。通過實現權值相關的信息映射出相應的ip,並且通過這些具體信息的解析,實現這些域名的url的排序,具體的解析信息通過相應的處理實現相應的關聯與維護。這些域名在排序時,以線性指針鏈索引遍歷所有存在域名的相關使用權值,需要改變相關的域名順序時通過交換相關的域名指針信息,實現這些信息的域與權值域的排序。
抽取單元使用正則表達式,抽取符合預定算法類型的網址。經過抽取單元處理的網頁接下來由索引單元處理,而抽取的網址則由後處理單元處理。索引單元將本地文件寫入到本地磁碟的緩存路徑。將每個網頁寫入到本地大文件中,在寫完文件之後,將文件路徑添加到指定的機構。後處理單元在發送前對url進行過濾,濾除非文本類型的網頁,即發送url到雲端。
在雲平臺環境下,通過mapreduce逐條解析出相應的待爬取url,並且判斷這些url的相關合法性,並將這些合法的url並且,通過去重處理,將這些信息更新到網頁資料庫中。使得資料庫的爬取網址內容得到更新,將url的集合實現格式化和過濾處理,排除非法與重複的url,將這些url下載並設定url狀態,按照算法將這些url進行初始化分值;對url進行合併,重複數據不再進行存儲操作;將獲取的相關url存儲在資料庫,對原來存儲在資料庫中重複的執行替換操作,新的代替以前的url。執行map函數實現爬取時,將在文件的url作為參數傳入,通過與檢索信息的匹配,確認爬取信息網頁;接下來實現參數的格式化,根據正則表達式對一些特定的字符串進行識別和規格化。獲取己經符合需求的url,將這些url的狀態標示為爬取狀態,然後實現爬取。然後通過reduce將處理好的url進行用舊url替換新的url操作。處理好的url的集合作為一個整體參數,判斷該url是否存在,如果不存在這個url信息則將該url收集起來,最後輸出相關url信息。經過相應的map和reduce函數及算法的計算與處理後,就會得到個待爬取url。
當輸入了一個待爬取url,對url進行多線程的網頁解析,多個線程循環下載網頁的相關數據,通過這個url解析相應的內容,並且將這些url存儲在相關隊列中。對所有的隊列實現加鎖處理,能夠避免這些url訪問衝突,或者重複獲取這些url,每一個線程在任意一個時間段只可以有一種線程鎖。
在數據下載過程中,保存網頁的元數據,包括下載時間、網頁的url以及所在主機的ip地址。在網頁的尾部追加一個信息標籤,標籤內的文本即為該網頁的元數據。爬取節點運行時,首先輸入爬取節點獲取的網頁,用標籤抓取模塊抽取所有的標籤,並將它們提交給網頁結構向量生成器:同時,標籤抓取模塊將網頁的標題標籤和所有網址標籤提交給網址相關性判斷模塊;網頁結構向量生成器將生成的網頁結構向量交給主題關聯度計算模塊。主題關聯度計算模塊結合主題結構抓取模塊提供的網站的標準主題結構向量以及主題字典來判斷該網頁是否主題相關,並將網頁關聯度交給網址相關性判斷模塊處理,同時將主題相關網頁輸出。最後,根據標題標籤、網頁主題關聯度以及網址錨文本的關聯度來判斷各個url的主題關聯度,將主題相關的網址輸出。
主題結構抓取模塊獲取待抓網站的典型網頁作為訓練集。讀取訓練集中的網頁,獲取網頁中的同時出現標籤。初始化一個n維0向量,記為a,n為同時出現標籤的數量,每個向量的維度代表一個標籤出現的個數。依次讀取訓練集中的每個網頁,抽取每個標籤,在向量a中相應的維度位置處加上相應標籤出現的次數,表示該網頁貢獻出相應標籤的數量。此時的a向量中的各個維的值表示訓練集中的相應標籤的總數。接下來對每一維做除商操作,除訓練集中的網頁個數,從而得出一個標準向量b。b向量即為描述該網頁結構的向量表示。然後主題結構抓取模塊將結果向量b發給主題關聯度計算模塊。
主題關聯度的計算由兩部分組成,分別是網頁內容關聯度和結構關聯度。首先計算網頁結構關聯度,如果網頁結構關聯度小於閾值r0,則確定該網頁與主題不相關;如果大於r0,則認為該網頁是主題相關的,在結構上主題相關的網頁,等待判斷內容關聯度,如果出現關鍵詞,則確定內容相關。綜合這兩部分得出該網頁的整體主題關聯度r:
r=a×rcon+b×rthm
rcon表示網頁結構關聯度,rthm表示網頁內容關聯度;a、b分別表示二者的權重。
其中xi為主題結構抓取模塊中產生的標準主題向量,而yi為待檢測網頁的結構向量。rthm即是判定該網頁中是否出現領域關鍵詞,如果出現則為1,否則,則為0。
網址相關性計算模塊實現過濾和生成網址。通過對url標籤進行打分,根據每個標籤的得分情況來判斷是否主題相關,進而濾除那些與主題無關的標籤。生成網址具體包括從url標籤中抽取每個url;判斷每個url的類型,如果是相對地址,則將其拼接成一個絕對地址。
綜上所述,本發明提出了一種輿情大數據處理方法,實現了並行網頁爬取,提高採集和存儲效率,廣泛適用於大規模的社交網絡。
顯然,本領域的技術人員應該理解,上述的本發明的各模塊或各步驟可以用通用的計算系統來實現,它們可以集中在單個的計算系統上,或者分布在多個計算系統所組成的網絡上,可選地,它們可以用計算系統可執行的程序代碼來實現,從而,可以將它們存儲在存儲系統中由計算系統來執行。這樣,本發明不限制於任何特定的硬體和軟體結合。
應當理解的是,本發明的上述具體實施方式僅僅用於示例性說明或解釋本發明的原理,而不構成對本發明的限制。因此,在不偏離本發明的精神和範圍的情況下所做的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。此外,本發明所附權利要求旨在涵蓋落入所附權利要求範圍和邊界、或者這種範圍和邊界的等同形式內的全部變化和修改例。