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