蔣添任,季于東,侯愛琴
(西北大學 信息科學與技術學院,陜西 西安 710127)
各類科技資源種類繁多,由不同機構管理、采集和維護。由于行政管理和信息技術等方面的障礙,存在嚴重的信息孤島現(xiàn)象,大量科技資源無法被用戶共享使用,造成資源的極大浪費。針對專業(yè)科技資源和綜合科技資源的異種、異構、異域、分布式多層等特點,建立開放式跨平臺分布式科技資源池架構,首先需要對各類科技資源進行匯聚、清洗和融合,進而建立科技資源云分享平臺,以便進行精準搜索、智能匹配,及分析、推理、評價和優(yōu)化。
專業(yè)科技資源是一個以標準和規(guī)范為基礎,包含不同層次、不同類型,分散孤立又相互關聯(lián)的資源庫群,在全國各省市建立了眾多分支中心和基層分中心站點,分散建庫為分布式分層科技資源部署形式。不同來源的科技資源數(shù)據(jù)匯聚到資源池必須進行清洗融合。數(shù)據(jù)融合指將來自不同數(shù)據(jù)源的同一實體(如企業(yè)、個人)的不同表象融合成單一表象,消除潛在的數(shù)據(jù)沖突[1]。
本文重點研究基于分布式資源巨系統(tǒng)的資源融合方法,對來自萬方數(shù)據(jù)、東方靈盾及寧波信息院等不同結構的專業(yè)科技資源數(shù)據(jù)進行匯聚融合,以實現(xiàn)跨平臺的科技資源云共享。
目前數(shù)據(jù)融合方法大多針對多傳感器或無線傳感網的多源數(shù)據(jù)融合[2],相關方法可抽象為數(shù)據(jù)級融合、特征級融合及決策級融合3個層次[3]。文獻[4]研究了對多個異構傳感器數(shù)據(jù)進行數(shù)據(jù)融合時的兼容性問題,提出基于多傳感器決策級數(shù)據(jù)融合的多任務深度學習模型。文獻[5]提出了多源異構大數(shù)據(jù)的融合算法,結合3種數(shù)據(jù)融合功能模型對多源異構大數(shù)據(jù)融合模型進行設計。文獻[6]針對“信息孤島”中的關系數(shù)據(jù)融合問題,提出并實現(xiàn)了多源關系數(shù)據(jù)融合的基本框架(Multi-Source Relational Data Fusion, MSF)??蚣馨?個主要部分,即模式匹配、實體對齊、實體融合。模式匹配面向多源關系數(shù)據(jù)的屬性對齊問題,結合屬性值的多維特征,提出基于匈牙利(Hungarian)算法的屬性間對齊發(fā)現(xiàn)機制,實現(xiàn)了多源關系數(shù)據(jù)的快速模式匹配。實體對齊連接多源關系中的元組對,通過引入多樣性取樣策略和實體特征抽取方法,提升實體對齊的效果。最后將對齊實體融合,為數(shù)據(jù)分析提供統(tǒng)一的數(shù)據(jù)視圖。文獻[7]針對服務數(shù)據(jù)多源異構、數(shù)據(jù)關系復雜的特點,提出基于異構信息網絡的服務聚合方法。該方法構建了服務異構信息網絡,并提出基于服務實體間不同元路徑的相似度度量方法,結合協(xié)同過濾方法,在BPR模型訓練框架下學習面向服務聚合的服務推薦模型。這種將服務數(shù)據(jù)表示成統(tǒng)一的異構信息網絡的方式,有效整合了多源異構數(shù)據(jù)。文獻[8]對面向異構關系模式中關于關聯(lián)數(shù)據(jù)的一致性規(guī)則發(fā)現(xiàn)問題進行研究,說明不論同源數(shù)據(jù)還是異源數(shù)據(jù),數(shù)據(jù)之間是相互關聯(lián)的,可以利用這種關系強化規(guī)則約束中語義含義的表達作用,發(fā)現(xiàn)數(shù)據(jù)中的潛在錯誤。
從分布式科技資源來看,來自不同機構的專業(yè)科技資源數(shù)據(jù)屬于各自的數(shù)據(jù)系統(tǒng),每個系統(tǒng)都有其自己定義的數(shù)據(jù)結構,無法直接跨平臺共享。基于以上問題,本文將探討一種資源池數(shù)據(jù)融合方法,為分布式科技資源數(shù)據(jù)共享平臺提供支持。
數(shù)據(jù)融合分析最主要的關注點是結構化數(shù)據(jù),結構化數(shù)據(jù)的處理方法中應用最廣泛的工具是Excel,利用Python編程語言對不同類型的數(shù)據(jù)進行分析,并將其可視化。但現(xiàn)實中,共享平臺上的數(shù)據(jù)來源往往較多,無法直接利用上述處理方法。我們需要對不同來源的數(shù)據(jù)進行清洗、融合,使其成為標準化的結構數(shù)據(jù),存儲到相應的數(shù)據(jù)庫中或者直接輸出。
本文對異構分布式數(shù)據(jù)融合方法設計如圖1所示。首先采集分布式資源池原始數(shù)據(jù),由于分布式資源池數(shù)據(jù)存在異構現(xiàn)象,采集得到的數(shù)據(jù)格式各不相同。如萬方數(shù)據(jù)為JSON格式,東方靈盾數(shù)據(jù)為數(shù)據(jù)庫格式,因此需要將采集得到的分布式異構數(shù)據(jù)轉換為統(tǒng)一的標準數(shù)據(jù)庫格式。之后進行數(shù)據(jù)預處理操作,對格式混雜且存在冗余現(xiàn)象的原始數(shù)據(jù)進行亂碼等錯誤字段的清洗和重復數(shù)據(jù)的篩選及互補,并標記資源來源。最后進行異構分布式數(shù)據(jù)的融合,并將融合后的結果輸出到標準數(shù)據(jù)庫中。

圖1 分布式資源數(shù)據(jù)融合設計
本文的數(shù)據(jù)預處理主要采用基于Java的MyBatis數(shù)據(jù)持久層框架。Java面向對象編程語言,語法結構和編程形式簡單易用[9]。MyBatis框架中避免了程序員直接進行JDBC相關代碼操作,與JDBC相比,減少了50%以上的代碼量,消除了JDBC大量冗余代碼,無需手動進行開關連接,實現(xiàn)了Java程序代碼與SQL語句的剝離[10]。
2.2.1 科技資源數(shù)據(jù)庫連接和導入
原始數(shù)據(jù)分為SQL格式和JSON格式,分別如圖2、圖3所示,數(shù)據(jù)來源為東方靈盾、寧波信息院、萬方數(shù)據(jù)網站的模擬數(shù)據(jù)。

圖2 SQL腳本文件數(shù)據(jù)格式

圖3 JSON格式文件
通過數(shù)據(jù)庫將這2種格式文件導入數(shù)據(jù)庫中,再通過MyBatis對數(shù)據(jù)庫的表進行操作,先建立表對應的實體類和對應的數(shù)據(jù)庫訪問接口,如圖4所示。

圖4 對應的實體類和數(shù)據(jù)庫接口
數(shù)據(jù)對象w_patent、d_patent、n_patent分別如圖5、圖6、圖7所示。

圖5 萬方的部分模擬數(shù)據(jù)

圖6 東方靈盾的部分模擬數(shù)據(jù)

圖7 寧波信息院的部分模擬數(shù)據(jù)
2.2.2 科技資源數(shù)據(jù)預處理
讀取出數(shù)據(jù)庫中的信息后,將讀取出的對象轉成w_chinese_patent實體類,部分個別列的數(shù)據(jù)類型需要相互轉換,比如某些表中的日期是字符串類型,而w_chinese_patent中則是日期類。完成轉換操作后,因為不同的表中含有來自不同平臺的數(shù)據(jù),建議在數(shù)據(jù)末端添加該條數(shù)據(jù)的來源,所以轉換完成后在w_chinese_patent實體類中手動添加resource_from。清理代碼、添加來源如圖8、圖9所示。

圖8 數(shù)據(jù)清理代碼

圖9 數(shù)據(jù)添加來源
2.2.3 異構分布式資源的融合及輸出
處理完數(shù)據(jù)后,需要將3個表通過全連接的方式融合在1個表項中,以保證所有數(shù)據(jù)項都會存在新表中,且無遺漏的數(shù)據(jù)項。融合代碼如圖10所示。

圖10 數(shù)據(jù)融合代碼
融合后的數(shù)據(jù)會有重復字段及多余字段,需將這部分字段進行清理,按要求輸出121列需要的數(shù)據(jù)。代碼如圖11所示。

圖11 按要求輸出所需數(shù)據(jù)代碼
將數(shù)據(jù)信息完整導入數(shù)據(jù)庫中,方便其他系統(tǒng)調用。數(shù)據(jù)庫的處理結果如圖12所示。

圖12 數(shù)據(jù)庫中融合后的標準數(shù)據(jù)
本文針對幾種異構專業(yè)科技資源結構化數(shù)據(jù)格式不統(tǒng)一、數(shù)據(jù)冗余、輸出格式混亂等問題,采用Java作為主要工具,利用MyBatis對多個來源的異構數(shù)據(jù)進行數(shù)據(jù)預處理、清洗和融合,并存儲在MySQL數(shù)據(jù)庫中。實現(xiàn)了不同科技資源可視化跨平臺共享。通過對萬方、東方靈盾及寧波信息院等專業(yè)科技資源數(shù)據(jù)的融合實驗證明,該方法可有效實現(xiàn)異構科技資源的融合,支持科技資源跨平臺共享系統(tǒng)的構建。