李颍春,姜丹
(北京印刷学院,北京 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 知识图谱
航天知识图谱的实现,运用基础通用的“图语言”,“高保真”地表达了繁复的航天知识之间的各种关系,更直观、更自然、更高效地展现在用户面前,不仅能够满足不同层次的用户对航天知识的深度广度的需求,还能激发用户对航天知识的再探索。
基于大数据的航天数据可视化系统的设计,将“航天知识我知道”的智能问答功能、多元化多维度的航天数据可视化功能与基于知识图谱的深度搜索功能结合在一起。这样一站式多功能的可视化系统,不仅能够满足不同层次的用户对航天知识的需求,还能节省网络知识搜索和信息整合的时间,提高用户的学习兴趣,优化用户的学习和探索航天历程的过程,为航天热潮深入人心打下了良好的基础。