劉曉丹,賈利娟
(陜西廣播電視大學(xué),陜西 西安 710119)
大數(shù)據(jù)知識(shí)資源建設(shè)具有數(shù)據(jù)價(jià)值密度低、數(shù)據(jù)結(jié)構(gòu)復(fù)雜、數(shù)據(jù)規(guī)模大等特點(diǎn)。2013年我國(guó)產(chǎn)生的數(shù)據(jù)總量是2012年的2倍,超過(guò)了0.8 ZB,相當(dāng)于2009年全球的數(shù)據(jù)總量。隨著技術(shù)的發(fā)展我國(guó)的數(shù)據(jù)總量將會(huì)持續(xù)增加,估計(jì)2020年的數(shù)據(jù)總量將會(huì)超過(guò)8.5 ZB是2013年的10倍[1],因此,開(kāi)展大數(shù)據(jù)知識(shí)服務(wù)勢(shì)在必行。在開(kāi)展大數(shù)據(jù)知識(shí)服務(wù)過(guò)程中,需要采用信息技術(shù)對(duì)各種結(jié)構(gòu)化、非結(jié)構(gòu)化、半結(jié)構(gòu)化的數(shù)據(jù)進(jìn)行多維的分析和處理,這是一個(gè)難題。當(dāng)前關(guān)于大數(shù)據(jù)知識(shí)服務(wù)的研究主要體現(xiàn)在大數(shù)據(jù)知識(shí)服務(wù)理念和體系、大數(shù)據(jù)知識(shí)服務(wù)方法、大數(shù)據(jù)知識(shí)服務(wù)應(yīng)用3個(gè)方面。李晨暉等[2]研究了大數(shù)據(jù)知識(shí)服務(wù)運(yùn)行機(jī)理、平臺(tái)構(gòu)建及其中涉及到的關(guān)鍵技術(shù)。ZHANG Junbo等[3]提出了基于并行大規(guī)模粗糙集的大數(shù)據(jù)有效知識(shí)挖掘的方法,該方法采用MapReduce編程模型,并對(duì)提出的方法有效性進(jìn)行了驗(yàn)證。CAI Dongfeng等[4]應(yīng)用大數(shù)據(jù)處理技術(shù)設(shè)計(jì)了知識(shí)服務(wù)平臺(tái),促進(jìn)了我國(guó)大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)的發(fā)展。實(shí)際上,大數(shù)據(jù)知識(shí)服務(wù)中對(duì)數(shù)據(jù)的處理技術(shù)還存在一定的缺陷,但是和國(guó)外相比,我國(guó)的大數(shù)據(jù)知識(shí)服務(wù)應(yīng)用方面還不成熟,需要繼續(xù)深入分析和探索。因此,應(yīng)該加強(qiáng)大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)的建設(shè)及創(chuàng)新應(yīng)用研究。
大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)主要是為用戶提供大數(shù)據(jù)知識(shí)服務(wù),通過(guò)信息化服務(wù)節(jié)點(diǎn)和無(wú)線傳感器網(wǎng)絡(luò)對(duì)大數(shù)據(jù)進(jìn)行采集,通過(guò)服務(wù)終端自適應(yīng)接入技術(shù)對(duì)大數(shù)據(jù)知識(shí)服務(wù)網(wǎng)絡(luò)進(jìn)行設(shè)計(jì),通過(guò)互聯(lián)網(wǎng)終端如手機(jī)、IPAD、便攜電腦等實(shí)現(xiàn)用戶的數(shù)據(jù)管理、數(shù)據(jù)存儲(chǔ)及數(shù)據(jù)挖掘分析等服務(wù)需求,最終幫助用戶獲得有價(jià)值的信息,面向用戶的大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)總體網(wǎng)絡(luò)架構(gòu)圖見(jiàn)圖1,主要應(yīng)用的網(wǎng)絡(luò)技術(shù)包括WIFI、4G/3G/2G、EtherNet、IrDA、BlueTooth、ZigBee技術(shù)等。
圖1 面向用戶的大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)總體網(wǎng)絡(luò)架構(gòu)
當(dāng)前海量的知識(shí)數(shù)據(jù)分析需要投入大量的人力和物力,是一項(xiàng)非常復(fù)雜的工作,隨著技術(shù)的發(fā)展出現(xiàn)的面向用戶的大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)降低了數(shù)據(jù)分析的人力和物力成本,緩解了數(shù)據(jù)資源的急劇增長(zhǎng)與用戶數(shù)據(jù)需求之間的矛盾。該大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)適用于大數(shù)據(jù)背景下的信息檢索系統(tǒng),聚合了對(duì)結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)、網(wǎng)絡(luò)資源及本地資源等不同的數(shù)據(jù)資源,并對(duì)數(shù)據(jù)進(jìn)行結(jié)構(gòu)歸一化處理,用戶根據(jù)自己的信息需求采用合適的檢索方法和聚類算法以實(shí)現(xiàn)數(shù)據(jù)的準(zhǔn)確和高效查詢。構(gòu)建的大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)包括服務(wù)層、功能層、平臺(tái)層,整體平臺(tái)體系見(jiàn)圖2。
圖2 大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)的體系架構(gòu)
構(gòu)建的大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)整合了Hadoop分布系統(tǒng)、大數(shù)據(jù)搜索引擎系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)、MapReduce知識(shí)檢索技術(shù)、云計(jì)算技術(shù)等,技術(shù)架構(gòu)見(jiàn)圖3。
圖3 大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)技術(shù)架構(gòu)
平臺(tái)層采用Hadoop大數(shù)據(jù)處理框架作為技術(shù)支持,主要功能為數(shù)據(jù)的存儲(chǔ)和讀取,基于Hadoop集群分布進(jìn)行構(gòu)建,平臺(tái)中選擇的數(shù)據(jù)庫(kù)為MySQL,文件系統(tǒng)包括HDFS及本地Linux文件。本地?cái)?shù)據(jù)文件上傳到HDFS文件系統(tǒng)之后,通過(guò)MapReduce的并行相關(guān)算法進(jìn)行數(shù)據(jù)的分析、處理和挖掘,再將處理結(jié)果復(fù)制到本地Linux系統(tǒng)文件中,文件解析之后導(dǎo)入MySQL存儲(chǔ)。
功能層主要由基于MapReduce的并行相關(guān)算法引擎和Tomcat網(wǎng)站服務(wù)器組成,Tomcat服務(wù)器主要面對(duì)Web應(yīng)用層,Web應(yīng)用層的請(qǐng)求通過(guò)Struts2攔截,攔截之后針對(duì)不同的需求實(shí)現(xiàn)不同的響應(yīng)處理?;贛apReduce的相關(guān)并行算法,如K-Medoids、K-Means等,主要的實(shí)現(xiàn)方式是:針對(duì)平臺(tái)層構(gòu)建的Hadoop集群,將數(shù)據(jù)文件的存儲(chǔ)目錄輸入到HDFS文件系統(tǒng)中,調(diào)用基于MapReduce的并行算法、MapReduce模型(Hadoop編寫(xiě))進(jìn)行HDFS輸出目錄的計(jì)算、分析、整理,挖掘得到強(qiáng)關(guān)聯(lián)規(guī)則存儲(chǔ)在MySQL數(shù)據(jù)庫(kù)中。
服務(wù)層提供應(yīng)用接口及Web界面操作,接收用戶的請(qǐng)求,方便用戶獲得需要的大數(shù)據(jù)服務(wù)信息,前臺(tái)頁(yè)面的編寫(xiě)主要采用JavaScript、JSP、HTML等相關(guān)技術(shù),并采用了Web開(kāi)發(fā)框架Struts2,實(shí)現(xiàn)Web頁(yè)面在Tomcat網(wǎng)站服務(wù)器上的部署。發(fā)送相應(yīng)的請(qǐng)求被功能層的Struts2攔截器攔截,功能層模塊計(jì)算分析處理之后與平臺(tái)層實(shí)現(xiàn)數(shù)據(jù)交換,處理結(jié)果在前臺(tái)頁(yè)面通過(guò)HTML或者JSP展現(xiàn)。
上述的3層結(jié)構(gòu)具有以下優(yōu)點(diǎn):
1)層與層之間的耦合性不高,開(kāi)發(fā)者可以不必進(jìn)行解耦工作;
2)增加了代碼的封裝性和重用性;平臺(tái)的邏輯清晰,方便擴(kuò)展或修改原有的功能;
3)方便平臺(tái)的后期維護(hù)。
知識(shí)捜索主要是實(shí)現(xiàn)知識(shí)從屬關(guān)系、層次關(guān)系及學(xué)科性質(zhì)等的匯總分類,然后根據(jù)設(shè)置的關(guān)鍵詞、關(guān)鍵字等提取相關(guān)信息,提高知識(shí)獲取的準(zhǔn)確度及速度。K-Medoids聚類方法由于K值不好估算造成分類困難,因此,該平臺(tái)對(duì)K-Medoids算法進(jìn)行改進(jìn),構(gòu)建了基于K-Medoids和KNN算法的聚類算法。
假設(shè)符合條件的、輸出的聚類結(jié)果為K個(gè),一般使用絕對(duì)誤差標(biāo)準(zhǔn)函數(shù)C衡量聚類效果,見(jiàn)公式(1):
(1)
式(1)中,C值的大小受到簇內(nèi)每個(gè)對(duì)象到中心點(diǎn)之間的距離的影響,值越大說(shuō)明簇中的相似類越低,k代表簇的數(shù)目,si代表聚類中心的第i個(gè)簇,x代表簇si中的任意對(duì)象。
K-Medoids算法過(guò)程如下:
1)從n個(gè)數(shù)據(jù)集中,選k個(gè)對(duì)象作為聚類的初始中心點(diǎn);
2)計(jì)算不同點(diǎn)與質(zhì)心之間的距離;
3)將點(diǎn)劃分到與他距離最近的質(zhì)心的類,形成K個(gè)cluster,重新計(jì)算每個(gè)cluster的質(zhì)心;
4)反復(fù)2)、3)步驟,直到類收斂。
KNN算法進(jìn)行特征提取,有如下假設(shè):
1)知識(shí)信息都是相對(duì)獨(dú)立的,其位置不影響出現(xiàn)的頻率;
2)通過(guò)抽取映射分組,將知識(shí)信息分成U1,T1;U2,T2;…UN,TN組別;
3)知識(shí)分組的訓(xùn)練集為C,C中有M個(gè)對(duì)象,N個(gè)不同的類別V1,V2,V3,…,VN;
4)降維之后表示為Wi={a1,a2,a3,…an}T,其中0
在特征提取階段,根據(jù)特征向量,將沒(méi)有進(jìn)行分類的知識(shí)信息W表示為:W={a1,a2,a3,…an}T;再次從C訓(xùn)練集中提取出與W具有最高相似度的訓(xùn)練集知識(shí)信息。
Wi={a1,a2,a3,…an}T,得到知識(shí)信息的局部相似性分類,最后將W歸屬在分類知識(shí)信息中。根據(jù)向量夾角余弦公式實(shí)現(xiàn)待分類知識(shí)信息和訓(xùn)練集的計(jì)算,公式表達(dá)式為:
(2)
根據(jù)K臨近值,可計(jì)算分類信息W與不同類之間的所屬關(guān)系,公式為:
(3)
由公式(3)得到Vm,其中包含了等分類的信息文本W(wǎng)。
K-Medoids聚類算法改進(jìn)就是在聚類過(guò)程中同時(shí)采用K-Medoids和KNN算法實(shí)現(xiàn)大數(shù)據(jù)集知識(shí)信息的二次聚類處理。
1)隨機(jī)抽取數(shù)據(jù)集中的數(shù)據(jù),獲得樣本集W1,W2,W3,…,Wm,以這些樣本集作為原始聚類中心點(diǎn)。
2)應(yīng)用K-Medoids算法公式(1)實(shí)現(xiàn)樣本集的聚類處理,并將每個(gè)聚類標(biāo)記為C1,C2,C3,…Cm。
3)反復(fù)從訓(xùn)練集W中計(jì)算樣本的相似類,獲得最大相似度的文本。
4)得到初始聚類之后,利用KNN算法對(duì)類收縮進(jìn)行計(jì)算,將增長(zhǎng)緩慢不能形成類的數(shù)據(jù)剔除,重新對(duì)聚類中心進(jìn)行調(diào)整。
5)重復(fù)1)~4)步中的相關(guān)操作,直到將所有的數(shù)據(jù)全部歸入類中,最終形成M個(gè)類。
基于軟件環(huán)境和硬件環(huán)境搭建好大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)的總體框架之后,其關(guān)鍵模塊實(shí)現(xiàn)如下所述。
研究中首先需要搭建Struts2框架(Java模型—視圖—控制器(MVC)框架)的開(kāi)發(fā)環(huán)境,具體步驟如下。
1)選用的Struts版本為2.3.15.1,需要將freemarker-2.3.19.jar、commons-logging-1.1.3.jar、commons-fileupload-1.3.jar、commons-io-2.1.jar、xwork-core-2.3.12.1.jar、ognl-3.0.6.jar、struts2-core-2.3.15.1.jar等運(yùn)行庫(kù)文件復(fù)制到工程的WEB-INF下的lib文件夾中。
2)在WEB-INF目錄下web.xml文件中配置FilterDispatcher。Struts2的核心控制器FilterDispatcher設(shè)計(jì)成過(guò)濾器,設(shè)計(jì)時(shí)采用
3)配置struts.xml。struts.xml文件的主要功能是Struts2應(yīng)用中各個(gè)Action的具體實(shí)現(xiàn)邏輯,為Struts2框架的核心配置文件。
用戶登錄時(shí)需要和MySQL數(shù)據(jù)庫(kù)進(jìn)行連接,并且輸入用戶名和密碼之后進(jìn)行驗(yàn)證,驗(yàn)證時(shí),將用戶輸入的相關(guān)信息傳遞到后臺(tái),然后從數(shù)據(jù)庫(kù)中查找匹配的用戶名和密碼,如果匹配成功則登錄成功,否則用戶需重新登錄或注冊(cè)。
用戶登錄部分代碼如下:
public String login(){
int level =userService.checkLogin(username, password);
if(-1==level){
session.put("username",username);
return "home";//用戶名和密碼驗(yàn)證成功
}
info="用戶名或密碼錯(cuò)誤!";
return "login";}
大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)采用改進(jìn)的K-Medoids聚類算法對(duì)結(jié)構(gòu)化、非結(jié)構(gòu)化及其他數(shù)據(jù)進(jìn)行二次整理,形成可靠的信息數(shù)據(jù)存儲(chǔ)在大數(shù)據(jù)存儲(chǔ)平臺(tái),也就是數(shù)據(jù)庫(kù)中。用戶登錄平臺(tái)之后,對(duì)數(shù)據(jù)進(jìn)行查詢,平臺(tái)根據(jù)用戶需求通過(guò)大數(shù)據(jù)技術(shù)、知識(shí)聚類技術(shù)等手段,通過(guò)智能搜索引擎實(shí)現(xiàn)數(shù)據(jù)信息深度挖掘,以此滿足大數(shù)據(jù)背景下用戶對(duì)知識(shí)的需要。
在對(duì)大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)進(jìn)行應(yīng)用分析時(shí),系統(tǒng)環(huán)境如下:處理器為Intel(R)Core(TM)i5-5200 U CPU@2.20 GHz,內(nèi)存容量4.0 GB,windows 7 64位操作系統(tǒng),采用Tomcat服務(wù)器搭建運(yùn)動(dòng)環(huán)境。選擇某所高校的圖書(shū)館館藏編目數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù),大約具有30余萬(wàn)條元數(shù)據(jù)條目,包含了法律、環(huán)境科學(xué)、經(jīng)濟(jì)、生物等22個(gè)基本大類的知識(shí)數(shù)據(jù),其中也包含了數(shù)字期刊、電子圖書(shū)中的文本數(shù)據(jù),平臺(tái)測(cè)試之前已經(jīng)建立數(shù)據(jù)庫(kù)系統(tǒng)的索引目錄,輸入“計(jì)算機(jī)”一次,采用上文提出的算法進(jìn)行檢索。應(yīng)用改進(jìn)的K-Medoids算法,分類效果較精確,檢索效率更高,這說(shuō)明該平臺(tái)的應(yīng)用效果較好。
隨著信息技術(shù)的發(fā)展,互聯(lián)網(wǎng)應(yīng)用、傳感網(wǎng)絡(luò)及電子商務(wù)等應(yīng)用領(lǐng)域的數(shù)據(jù)量呈現(xiàn)出飛速增長(zhǎng),大數(shù)據(jù)已經(jīng)成為研究和關(guān)注的熱點(diǎn),大數(shù)據(jù)知識(shí)服務(wù)也越來(lái)越重要。國(guó)內(nèi)關(guān)于大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)的研究還處于起步階段,還需要進(jìn)一步對(duì)平臺(tái)的功能進(jìn)行研究和探索。本研究提出的大數(shù)據(jù)知識(shí)服務(wù)平臺(tái)還應(yīng)用過(guò)程中可能還會(huì)存在一定的問(wèn)題,今后的研究中需要不斷對(duì)平臺(tái)功能進(jìn)行完善。