邵佩佩(湖北省武漢大學遙感信息工程學院,武漢 430072)
社交網絡數據挖掘技術淺談
邵佩佩
(湖北省武漢大學遙感信息工程學院,武漢 430072)
進入大數據時代,各類社交網站包涵大量的信息數據,本次研究在開源的網絡爬蟲代碼的基礎上加以創新,研究出了一種新型比較高效的爬蟲算法。通過對社交網絡進行有目的的數據挖掘,并進行過濾提取所需信息,存儲進預先設定的數據庫。
大數據;網絡爬蟲;數據挖掘;數據庫
在信息爆炸的時代,互聯網使我們可以得到海量數據,但并不是這些信息中只有一部分為能為我們所用。如何在海量數據中獲取所需的信息,本次研究基于這個問題展開。在社交軟件中,我們知道每個ID對應的都有一系列的屬性信息,包括性別、年齡、出生地、所在地等等。首先是數據的獲取,參考各類已有的工具,使用網絡爬蟲作為主要數據遍歷的工具。其次,由于網站對IP設置了訪問次數的限制,還需解決如何獲取足夠多數據的問題,通過借鑒其他的案例,我們采取了線程控制的機制,來控制單位時間的訪問次數。接著是對數據的加工處理,并且通過編程的方式,使用程序將無用信息剔除,存儲有用信息,讀入數據庫,構建信息鏈。
本次研究在開源爬蟲代碼的基礎上進行創新,通過模擬登陸,并且結合實際網絡特性利用線程方法控制單位時間內的訪問次數,最后完成對數據的析取。
2.1 Python 模擬身份登陸
過程:首先利用加密的用戶名和密碼進行登陸,然后通過微博等社交網絡的服務器得到cookies(Cookies就是服務器暫時存放在你的電腦里的資料,好讓服務器用來辨認你的計算機)。
2.2 控制訪問次數
由于新浪微博等網站對訪問次數有限制,所以本次研究在單位時間內控制訪問次數:(1)構造高級搜索對應的請求參數字符串。(2)發送請求并保存搜索結果。通過線程控制,程序等待一定時間。(3)根據設定的終止條件判定是否抓取完畢,否則循環進行步驟(1)。
2.3 進行數據分析與提取
通過網絡爬蟲抓取的為含有大量冗余無關數據的HTML文本數據,本次研究采用基于內核IE的網頁抓取算法剔除所獲數據中的冗余部分,最終保存相關數據到MySQL 數據庫中。
3.1面向內容的初步過濾
爬蟲軟件只能針對開源網頁上的種子進行廣度遍歷,然而不可避免地會收集到重復的信息,如鏡像網頁等,這是可采取多種算法進行篩選重復信息,亦即網頁消重。
算法1:排除相同的URL:在開源的爬蟲代碼基礎上,分析不同網頁的URL,規則是相同的URL代表相同的網頁,此時需要去除重復的URL。本方法簡單易實現,但沒有利用文本內容信息,不能對轉載等大體內容相近的網頁進行區分篩選。
算法2:基于聚類去重法[1]:該方法是將網頁的整體文本內容視為多維向量,以7000個字符作為向量的一個基,文本中某組或某個漢字所出現的頻率就構成了代表網頁的向量,通過計算向量的夾角確定是否是相同的網頁。
由于每個字符對整個文本的重要性是不一樣的,所以我們可以給不同字符賦予不同的權重,而所有字符的權重構成了網頁文本的空間向量。類似于理論向量的計算過程,需要先計算兩個網頁文本空間向量的夾角,然后依據該夾角來評估兩個網頁的相似程度。當夾角小于某一個閾值時,就認為他們是同一類別[2]。
3.2 面向客戶的高級過濾
通過調用MySQL來存儲通過網絡爬蟲獲取到的社交網絡用戶的信息數據。MySQL由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,所以選擇了MySQL作為數據庫,將數據保存在各種不同的表格中,這提高了存儲速度。調用MySQL所使用的SQL語言是最常用標準化語言。
我們通過Twisted來連接mysql。Twisted 是一個異步網絡框架, 意味著標準數據庫模塊無法直接使用。同時,對于異步框架而言,這些延遲是無法接受的。因此, Twisted 提供了 twisted.enterprise. adbapi, 遵循DB-API 2.0協議的一個異步封裝。從而將指定數據存儲進數據庫中。
[1]李毅.基于向量機的數據流聚類學習方法研究[Z],2013.
[2]王睿.面向垂直搜索引擎的網頁抓取器的設計和實現[D].中國海洋大學計算機技術,2009(11).
[3]Matthew A.Russell.Mining the Social Web[M].機械工業出版社,2012.