摘 ?要:隨著互聯網技術的不斷發展,Web數據挖掘技術也在不斷地進步,該技術在各行各業的應用越來越廣泛。而作為存儲技術的里程碑,云計算技術顯著提升了數據存儲的效率和安全性。因此,分析基于云計算的Web數據挖掘技術對互聯網產業的發展來說意義重大。本文分析了基于Web數據挖掘技術的特點,探討了基于云計算的Web數據挖掘技術。
關鍵詞:云計算;Web;數據挖掘
中圖分類號:TP311.13 ? ? ?文獻標識碼:A 文章編號:2096-4706(2019)05-0100-03
Abstract:With the continuous development of internet technology,Web data mining technology is also making continuous progress,and the technology is more and more widely used in all walks of life. As a milestone of storage technology,cloud computing technology has significantly improved the efficiency and security of data storage. Therefore,the analysis of Web data mining technology based on cloud computing is of great significance to the development of the internet industry. This paper analyses the characteristics of Web data mining technology,and discusses the Web data mining technology based on cloud computing.
Keywords:cloud computing;Web;data mining
0 ?引 ?言
互聯網極大地改變了人們的生活,推動了社會進步。隨著互聯網技術的不斷發展,互聯網數據量快速增加。如何從海量的數據中高效地提取有價值的數據,并將其應用于現實生活中是Web數據挖掘技術需要解決的問題。Web數據挖掘簡單來說就是數據挖掘在Web上的應用,該技術利用數據挖掘技術從Web中提取有價值的數據信息,是Web、數據挖掘、計算機、信息技術等多種技術的綜合運用。
1 ?Web數據挖掘分類
數據挖掘主要包括結構挖掘、使用挖掘、內容挖掘三種類型。其中結構挖掘、使用挖掘是最常用的兩種數據挖掘類型:(1)結構挖掘。Web結構挖掘是指從Web結構中挖掘數據,如Web中的頁面組織結構、文檔結構、鏈接關系結構等。在研究Web時,要針對頁面結構、鏈接關系結構進行研究,找出隱藏其間的關系模式,從而對鏈接甚至頁面進行分類,篩選出所需頁面,這就是Web結構挖掘。(2)使用挖掘。Web使用挖掘是指對用戶訪問時的模式進行挖掘的一種方式,可以有效提升網絡信息服務質量,有效改善Web服務器性能。
2 ?基于云計算的Web數據挖掘體系
Web數據挖掘可以分為多個節點,利用云計算技術可以強化Web數據挖掘體系中各個節點之間的關聯,構建起更加完善的數據挖掘體系。其中主控節點的主要作用是連接客戶端與各個節點;算法節點的主要作用是為數據挖掘提供有效的算法支撐,可以將其看作一個算法倉庫;數據節點是用來存儲數據的大型數據庫;服務節點主要用于執行主控下達的任務,并反饋出計算結果。通過分析Web數據挖掘體系的功能,可以將Web數據挖掘體系劃分為多個層面:(1)服務層。通過Web數據挖掘體系挖掘出數據,并呈現給用戶。(2)控制層。主控節點分析用戶返回的結果,確定最合適的算法,實現最高效的數據挖掘。(3)算法和數據存儲層。這個層面的主要作用是存儲反饋的數據和相關算法,不但會存儲原始數據,也會存儲數據挖掘的結果,顯著降低數據、算法丟失的可能性,即使系統出現問題也可以從數據存儲區中找到丟失的數據,進行數據恢復。(4)業務處理層。對存儲層數據進行挖掘,再通過主控點對數據進行重新分配,然后通過服務節點返回至主控節點。
3 ?基于云計算的Web數據挖掘算法
如上所述,Web數據挖掘技術是一種從Web連接、Web網頁、Web日志中尋找所需數據信息的數據挖掘技術。WebGraph是用于描述Web信息的一種重要的數據結構,在網絡爬蟲、搜索結果排序、社交網絡中的應用非常廣泛,具有非常重要的作用。因此,本文重點研究了基于云計算的Web數據挖掘中的Graph算法,分析了WebGraph數據結構,探討了基于云計算的社交網站用戶Graph數據的獲得方案。該方案采用Hadoop分布式云計算框架構建基于Graph算法的應用,用于挖掘Graph數據。Hadoop框架的主要語言是Java,因而也使用Java語言來描述Graph挖掘算法,因此需選用相應的數學模型抽象描述真實的網絡鏈接之間的關系,并尋找合適的數據結構將數據模型存儲于計算機中,Web鏈接分析、WebGraph分析都是基于圖論算法,因此,這將兩類問題抽象成具有一定結構的節點、邊的圖形分析,便于進行數據分析處理。
3.1 ?WebGraph算法數據結構
WebGraph算法需借助適當的描述數據的方法對數據進行分析。本文研究的WebGraph算法采用矩陣法描述數據,按照行列的方式將每一個節點的數據分別排列就可以建立網絡矩陣。網絡節點數量就是矩陣的階數。假如Graph描述的是Web頁面鏈接關系模型,就可以用矩陣描述其邏輯關系。矩陣中的元素表示行標號標示的Graph節點與列標號標示的節點是否存在關聯。矩陣中各個元素的取值可以不同,用于表述各節點之間關聯程度不同的Graph。也可以使用Graph描述社交網絡中的用戶關系。一般來說,社交網絡中各個用戶之間的關系是雙向的,即用戶彼此認可,互加好友,因此,社交網絡中用戶之間的關系數據結構可以用對稱矩陣表示。而高級語言中的矩陣可以使用二維數組來描述,因此,假如用高級語言實現Graph處理算法,則可以用矩陣作為Graph數據結構。
3.2 ?WebGraph數據存儲方式
本次研究的GraphML是一種長期穩定的Graph信息存儲方案。基于XML語言的GraphML是一種用來描述圖(Graph)的通用文件格式。GraphML文件格式和GML等別的專有文件格式的不同在于,該文件格式完全可以用XML語言表示,絕大部分程序開發語言都可以解析GraphML。在此背景下,GraphML非常適合用于生成、存儲、處理Graph的應用。與此同時,GraphML非常直觀,使用比較簡單,更易被程序開發人員理解。GraphML格式的Graph數據分析修改難度較低,方便程序開發人員修改,為程序開發帶來極大的便利。GraphML可以比較完美地描述Graph數據。目前使用較多的Graph數據結構包括輕量級語法分析器、有向圖、無向圖、有向兼無向圖、超圖、分級圖、圖形顯示、作為特定應用的屬性數據和為外部數據提供的引用。這些數據結構都可以通過GraphML進行很好地描述。
3.3 ?Graph數據抓取
本次研究的Web數據挖掘數據結構都是Graph。基于WebGraph算法的數據挖掘技術經常通過爬取頁面來獲取頁面信息,然后再對其中包含的Web連接進行分析,最終構建一個Graph結構。WebGraph挖掘算法的主要特點就是運算量非常大,特別是分析大量基于文本的頁面鏈接任務需要消耗大量的計算資源。而且除了Web頁面之間的關聯,還能用Graph結構描述現實中一種常見事物的關聯,即社交網絡中的用戶。在當前Web技術不斷發展的背景下,以Facebook為代表的在線社交網絡受到廣大用戶的青睞,其應用也越來越普及。目前,Facebook的注冊用戶已經超過20億,體量如此龐大的用戶群中各個用戶之間的關系非常符合作為Graph挖掘算法研究數據對象的要求。因此,本文將以Facebook的注冊用戶之間的關系數據為例,分析如何針對Facebook的應用程序編程接口API來獲取用戶關系的Graph,以探討基于云計算的Web數據挖掘的關鍵技術。
3.3.1 ?創建Facebook應用程序
本文設計了一個建立在Facebook社交網絡基礎上的應用,其主要作用是獲得Facebook的用戶關系Graph。Facebook社交網絡提供了相應的應用程序編程接口API,方便程序開發人員開發基于Facebook社交平臺的應用程序,并在Facebook上運行。而要想開發一個Facebook應用程序,先需要獲得一個Facebook平臺接口密鑰Facebook Platform API Key。我們需要從Facebook的Get Started站點獲取需要的開發資料,再填寫資料,完成申請開發Facebook應用程序的流程。在流程走完后就可以獲得該應用程序的Application ID、API Key以及Secret Key,它們都是后續進行應用程序開發必須使用的核心字段。截止目前,Facebook官方取消了對Java開發接口的支持,使用Java開發Facebook應用程序的開發人員被建議使用第三方接口。而在Google Code創建了一個facebook-java-api項目,用于維護、擴展被Facebook取消支持的代碼庫,提供給Java開發者一個優質的Facebook API。Facebook Java API中包括和包含所有與Facebook Application API有關的全部庫和相關jar,在Web項目中導入這些jar文件就可以很方便地進行Facebook應用程序開發。
3.3.2 ?開發Facebook應用程序獲取用戶關系
通過開發Facebook應用程序獲取Facebook用戶關系數據。為了實現與用戶的交互,需通過Java Servlet實現與瀏覽器的通信。因此,必須自定義Servlet類,它和常規的Web項目不存在差異,只不過是在web.xml配置文件中加上了初始化參數配置。其中如API Key、Secret Key這兩個程序開發申請階段獲得的重要字段。通過Servlet只能實現和瀏覽器的基本通信,要想獲得Facebook用戶之間的關系數據,就必須先獲取用戶的好友數據。Facebook Java API目前給程序開發者提供了三種獲取登陸用戶好友列表的方法,每一種方法都以不同的格式返回用戶的好友數據,如FacebookXmlRestClient類的結果返回格式為XML,FacebookJsonRestClient類的結果返回格式為JSON格式,FacebookJaxbRestClient類的結果返回格式為JAXB格式。與此同時,Facebook Java API支持以批量查詢的方式獲得用戶的好友列表。然而Facebook Java API只可以獲得當前登陸的用戶好友列表數據,我們需要在外部環境允許的情況下獲取盡量多的用戶好友數據。很明顯利用Facebook Java API無法獲取大量的用戶之間關系數據。因此,為了獲取大量用戶好友關系數據,可以利用Facebook API提供的Automatic Authentication模式。使用該認證模式的好處是Facebook不再要求在Session中保存用戶信息,而只要給系統傳送一個userid,再依據這個userid獲取用戶信息。同時,在使用該模式的情況下,在創建FacebookXmlRestClient類對象時不必傳入參數SessionID,因為已經不存在Session這個概念。根據上述分析可知,本次研究需要的Facebook應用程序可以借助類似堆棧的結構對大量的用戶進行訪問,獲取用戶之間的關聯,再使用Java操作XML文檔的API,GraphML語言存儲用戶關系數據。這樣一來就實現了Graph數據的挖掘。具體程序細節由于篇幅限制就不再一一介紹。
4 ?結 ?論
綜上所述,基于云計算的Web數據挖掘技術可以從Web中高效獲取有價值的數據信息,可以根據Web用戶的興趣愛好和使用習慣對數據進行篩選,有選擇地呈現,從而更好地滿足用戶的需求。在云計算環境下,Web數據挖掘可以在網絡平臺進行統一管理,可以充分發揮云計算的存儲優勢,不但有效提高了Web數據挖掘的效率,還提升了Web數據的利用率。由此可見,基于云計算的Web數據挖掘關鍵技術的研究與應用對我國互聯網的發展具有十分重要的現實意義。
參考文獻:
[1] 孟強,李海晨.Web數據挖掘技術及應用研究 [J].電腦與信息技術,2017,25(1):59-62.
[2] 楊翔云.Web數據挖掘在云計算平臺的實際運用 [J].電子技術與軟件工程,2016(21):186-186.
[3] 周戈.云計算時代下數據挖掘技術的應用分析 [J].數字技術與應用,2017(3):254-254.
作者簡介:王建明(1980.03-),男,漢族,山西平定人,在職研究生,講師,工學學位,本科,研究方向:計算機基礎課程。