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