李潁春,姜丹
(北京印刷學院,北京 100000)
航天事業是一個國家追求創新與發展的生動體現。在過去5年里,有嫦娥探月、北斗指引、祝融探火、羲和逐日,“悟空”“慧眼”探索宇宙奧秘,中國航天砥礪奮進,創造出新的成就,實現了新的跨越。
中國航天科普互動展的開設和VR航天系統的互動體驗也進一步引發了全民對航天事業的關注與熱情。因此,如何用更加喜聞樂見的方法將航天知識與現狀實時展現在普通大眾面前也是將航天事業與普通大眾的生活密切相連的關鍵一環。本文采用爬蟲技術及時地整合提取網絡上的實時航天數據,借助知識圖譜、可視化數據統計和智能問答的方式多元化展示航天事業的基本情況與知識。以此,既可以對青少年群體進行航天知識的啟蒙,提高普通大眾對航天事業的關注度;又可以為航天愛好者提供更加清晰的數據匯總,將散亂的網絡信息轉換為視覺信息,使系統用戶能夠有較強的參與感和互動感,并在一定程度上減少了收集數據閱讀資料的時間,更好地傳遞航空航天的知識概況。
在航天航空領域,可視化系統的開發不僅會保證完成航天航空任務的高效性與航天器和航天員的安全性[1],還為研究設計人員在航天航空領域中的再探索和再升級提供新平臺。有學者對航空航天領域中常見場景與現象開展了研究。例如,Pagendarm等[2]針對非定常現象、高超音速流動和協同流動這類流場數據進行多元可視化,使得研究人員清楚地觀察到流動結構發展演化過程,從而對機理分析起到促進作用。但是通常開發人員使用軟件進行仿真的模擬結果僅通過文本和簡單的圖表展示,數據既缺乏表現力,又給經驗不足的非專業人員造成了學習的成本。例如,有研究人員設計了基于Web的航空航天仿真可視化工具,利用網絡技術和地理信息系統的通用仿真可視化工具[3]。這樣的3D可視化效果的展示不僅使得用戶可以輕松地在先進的三維虛擬環境中實時或模擬地展示他們的結果,還能對航天發射全過程進行精確、直觀的視景仿真,為航天發射決策分析提供支持。
但在航天系統中,常常也會對數據的實時性要求較高。學者們也關注到了這一問題。例如,有研究人員開發了基于神經網絡的多用途飛行可視化系統,通過專有的神經網絡單元對數據源進行預處理,可以保證數據適應性,可以消除由數據延遲和數據丟失引起的問題[4];針對航天發射任務期間傳輸頻率高、傳輸量巨大的遙測數據,有學者設計了一種可對實時遙測數據進行收集、存儲、壓縮和展示的遙測數據可視化系統,對于遙測系統的運行記錄具有實時性強、存儲及查詢效率高等特點[5]。
航天知識圖譜旨在把所有不同種類的航天信息連接在一起而得到的一個知識關系網絡,使人們能夠從數據之間的關系去分析與解決問題。早有學者提出利用地圖數據庫Neo4j存儲相關知識,構建出航天知識圖譜[6]。但在航天信息過載情況下,需要提高決策質量和效率的方法。有研究人員提出了使用集成策略進行航天知識實體與關系[6];也有學者通過大數據、人工智能方法挖掘航天數據的應用潛力,研究面向航天裝備數據知識圖譜,以求優化和升級航天裝備[7]。
本文將結合航天可視化系統與航天知識圖譜,通過對航天數據與知識的實時挖掘、分析與處理,結合多元化的展示方式,為用戶提供一個一體化、一站式的航天知識學習平臺,激發用戶對航天事業的學習興趣,提高用戶對航天事業的關注度。
開發階段使用前后端分離架構,通過使用約定好數據交互接口,實現并行開發和測試。簡單來說,前后端分離就是把數據操作和顯示分離出來,前端專注于做數據顯示,后端專注于做數據的操作,前端把數據開放給后端,后端對數據進行修改,后端提供接口給前端調用,來開發對數據的操作。具體的項目架構如圖1所示。

圖1 項目架構
將前端部署在具有高性能的HTTP和反向代理功能的Nginx服務器上。大眾熟知的BAT、京東、新浪和網易等公司都是Nginx網站的用戶。在前后端交互時,采用Ajax技術,它可以在XML、HTML、CSS和Java腳本的幫助下創建更好、更快、更具交互性的Web應用程序。一般的Ajax采取的數據傳輸格式為Json形式。后臺部署在Springboot上。
基于大數據技術的航天數據可視化系統平臺以多個航天網站的官方數據為基礎,通過網絡爬蟲技術,將爬蟲代碼部署在服務器上,以多線程的方式對各大航天數據網站進行定期訪問,7×24小時不間斷采集當下最新的問答知識及國內外航天相關發射情況,總數據量超過百萬條。
當前,該平臺已經實現對中國航天科普網、航天愛好者網、百度百科相關檢索詞條的數據進行全量級的定制化爬取,多樣化數據定制功能。為知識問答、航天多元可視化、航天知識圖搜索提供了3大數據接口。這些數據不會直接展示給用戶,而是分門別類保存起來,后續將交平臺進行數據分析與可視化,最后將所得結果返回至用戶平臺的界面。
基于大數據技術的航天數據可視化系統平臺對采集到的原始數據進行數據清洗、數據整理、數據預處理和數據存儲,將分散、零亂、標準不統一的數據整合到一起,提高數據的質量,為后期數據可視化分析奠定基礎。
3.2.1 缺失值填充
很多數據不可避免地會遺失,這就造成了很多缺失值的出現,平臺既支持均值、全局常量、中位數、眾數和插值法填充缺失值,也支持模型預測方法填充缺失值,根據數據的具體特性對填充方式進行自主選擇。
3.2.2 數據去重
為了避免重復爬取產生冗余的數據,導致后期的分析失真,如重復數據會對詞頻統計分析產生影響。故平臺提供了按主鍵完全去重和按文本內容相似性去重(慎用)2大去重方式。
3.2.3 文本預處理
(1)在后臺可以選擇是否保留文本中的URL、郵箱、@用戶、表情包、話題、標點、HTML標簽等內容。
(2)實現文本中多空格合一,使布局符合人的視覺。
3.2.4 分詞
后臺會對庫內以及用戶要檢索的問題或數據進行文本清理與分詞處理,以供后續進行相似性檢驗。
將清洗得到的數據按照不同的任務需求存到對應的數據庫中。具體的對于問答、可視化等需要進行查詢和計算的數據,使用計算速度快且能分布式部署的Redis數據庫進行存儲;將檢索率不高的冷數據存入Mysql數據庫中;對于進行知識抽取后,得到的圖數據,使用Neo4j進行存儲,以供后續檢索。
基于大數據技術的航天數據可視化系統平臺是一款基于爬蟲、數據預處理、大數據挖掘分析與存儲等技術,開放性的、高效性的、便捷性的交互式航天數據多維分析平臺。該平臺將數據爬取、數據預處理、數據分析和數據可視化4大功能集成,用戶只需簡單操作就可以在該平臺上輕松地獲取各大航天數據平臺上詳盡數據及可視化分析。該平臺包括“航天知識我知道”“航天多元可視化”“航天知識圖搜索”3大功能模塊。
“航天知識我知道”的智能問答模塊較好地解決了航天愛好者與普通群眾對航天情況進行學習時,出現對某個問題認識比較模糊或對某些專有名詞并不熟悉的問題,在可視化系統中以一問一答的對話框形式呈現。
要實現問答模塊。首先要爬取“宇宙知識網”中的“航天”“航天史”“航天故事”“航天科技”等多個子模塊下的多頁內容,將抓取到的內容按照一問一答的形式保存為Json格式,并持久化存儲到Redis數據庫中,以供用戶查詢。當用戶輸入想了解的航天知識時,后臺將對用戶輸入的問題進行分詞處理,提取關鍵信息,再與存在語料庫中的經過分詞處理的問題進行相似度計算。對比后,若與現有問題的相似度超過0.5,則在回答窗口向用戶返回對應的答案。效果如圖2所示。

圖2 知識問答
“航天知識我知道”問答模塊的實現,使用戶在瀏覽可視化知識系統存在疑問時,能夠得到及時有效的回復,在補充相關航天知識的同時節省了另外查詢的時間。
“航天多元可視化”模塊較好地解決了單一數據與簡單圖表無法滿足航天愛好者與普通群眾對航天事業發展的了解問題。通過折線圖、柱狀圖等不同形式的圖表來展示航天數據,使民眾能夠快速了解我國航天發展歷程和世界航天發展的總體情況。以中國為例,效果如圖3所示。

圖3 航天數據可視化(中國)
要實現航天數據的多元可視化。首先要確定數據能夠展示出我國航天發展的縱向進程和世界航天發展的橫向對比,接著從在百度百科上有目的地對中國運載火箭發射記錄(以年為單位)、中國各發射場發射次數(以場次為單位)、中國發射成功/失敗、世界發射情況、各國預算排行和繞行軌道統計等多個模塊下的多頁內容進行爬取,將抓取到的數據進行多維度的統計后,保存為Json格式,并持久化存儲到Redis數據庫中,使用Echarts可視化插件調用數據庫后,傳遞到前端頁面,使得航天數據能夠直觀地展示。
當用戶想了解中國與世界的航天發展進程時,只需要點擊自己感興趣的頁面,就能通過折線圖或柱狀圖清晰地觀察到航天事業的發展趨勢,更加深刻地體會到我國航天發展的艱辛歷程與近年來所取得的偉大成就。
航天多元可視化的實現,消除了民眾在瀏覽零碎繁雜的航天數據過程中的“沒概念”和“不感興趣”,使用戶可以通過多種圖表的數據呈現方式,擁有更加直觀簡潔的視覺體驗,對于航天知識的普及工作起到一定幫助和支持。
“航天知識圖譜”模塊使用清晰準確的方式來表示不同實體之間的關系,有助于將圖中的所有信息連接成一個相互關聯的網絡,所展現的可視化結果會為用戶帶來科學的交互功能,為用戶找出更加準確的信息,作出更全面的總結并提供更有深度的相關信息。
要實現知識圖譜可視化。首先要從網站爬取航天知識的信息,從中提取本體和模式信息,以自頂向下的方法把數據源分成9個可查的實體結點與7種關系。當用戶輸入某一個關鍵詞,如XX運載器,以及希望獲取的知識深度后,后臺將把XX運載器作為根節點,然后通過遍歷來判斷該根節點的實體類型,接著將該節點自己的屬性結點與存在一定關系的結點添加到相應的列表中進行儲存,來保存該層所有有效結點、結點類型數量與結點之間的關系。然后再以上一層找出的結點作為根節點重復上述步驟,以此類推,直到與用戶輸入的搜索深度一致或達到最大限度的搜索深度,最后把與關鍵詞相關的知識體系系統化地展示給用戶。效果如圖4所示。

圖4 知識圖譜
航天知識圖譜的實現,運用基礎通用的“圖語言”,“高保真”地表達了繁復的航天知識之間的各種關系,更直觀、更自然、更高效地展現在用戶面前,不僅能夠滿足不同層次的用戶對航天知識的深度廣度的需求,還能激發用戶對航天知識的再探索。
基于大數據的航天數據可視化系統的設計,將“航天知識我知道”的智能問答功能、多元化多維度的航天數據可視化功能與基于知識圖譜的深度搜索功能結合在一起。這樣一站式多功能的可視化系統,不僅能夠滿足不同層次的用戶對航天知識的需求,還能節省網絡知識搜索和信息整合的時間,提高用戶的學習興趣,優化用戶的學習和探索航天歷程的過程,為航天熱潮深入人心打下了良好的基礎。