王松,陈仕杰,李杭霖,李孝慧,冯琼芳,王慧杰
1.西南科技大学计算机科学与技术学院,四川 绵阳 621010;
2.电子科技大学计算机科学与工程学院,四川 成都 611731;
3.西南交通大学计算机与人工智能学院,四川 成都 611756
在疫情大范围扩散的过程中各地方舱医院的建立能够有效解决医院床位紧缺、局部医疗资源及时配套等问题。对方舱医院进行动态调控,有利于合理调配医疗资源,降低人力物力成本。可视化的动态调控平台以其数据显示的多维性、直观性及传递速度快的优势在商业智能、政府决策、公共服务、市场营销、金融、电力、通信、工业制造、医疗保健等领域得到广泛应用。
传染病可视化诞生已久,早在19世纪,英国医生John在地图上标识受害者所居住的地区,发现受害者大多在同一地点取水食用,由此John建议将该地区的水泵把手拿掉,霍乱随后得以有效控制。自此之后,大量学者结合地图来对数据进行可视化分析。金思辰等[1]提出了传染病多维时空数据协同可视化系统,利用多个视图,提供丰富的交互操作,从时间和空间等不同角度进行传染模式、聚类以及异常值分析。胡雪芸等[2]通过全局或局部空间自相关、时间序列预测分析及时空扫描分析方法,将可视化技术应用于空间流行疾病领域,对全国肺结核疾病的时空聚集情况进行分析及可视化,帮助分析疾病在时空上的聚集情况。Rind等[3]提出了交互式可视化系统,该系统利用交互技术和可视化方法帮助分析慢性疾病病人。曲玉冰等[4]研发了一套基于空间信息技术和大数据技术的登革热风险评估系统,可以对疾病进行时空聚集探测、影响因素提取、风险评估、大数据分析和可视化。
近年来,机器学习与数据挖掘技术已广泛应用于大数据分析中。自疫情暴发以来,国内外对疫情发展态势进行了大量的分析工作。彭宗超等[5]通过构建疫情、医情、政情、民情和媒情信息分析框架,利用互联网大数据及时跟踪和聚焦分析新冠肺炎(COVID-19)疫情信息、医疗救治与卫生防控信息、政府系统应对信息、民众关注参与信息和媒体传播信息等各自演化和相互影响的过程与机制。Afzal等[6]使用模拟模型研究传染病的时空动态和影响,规划在不同传播情境下资源的获取,为公共卫生官员提供COVID-19传播数据。邓少存等[7]基于WebGIS技术将联通大数据、百度迁徙数据以及国内外疫情数据进行整合,利用Cesium开源框架和可视化工具搭建新冠肺炎疫情可视化系统,对于相关部门防控新冠肺炎疫情有重要的参考价值。刘建湘等[8]针对疫情数据多维时空特征构建病例数量数据集,综合应用时间轴交互,流行病数学模型等分析方法采用递进式分析进行可视化。Leite等[9]将COVID-19数据与预测模型的输出相结合。这种组合支持对不同情况下疾病传播进行估计,并允许将病毒的发展与不同的政府反应事件相关联。Zheng等[10]对来自不同国家的COVID-19数据进行了描述性统计和回归分析,以比较和评价各种回归模型。结果表明,极端随机森林回归(ERFR)模型表现最好,人口密度、臭氧、中位年龄、预期寿命、人类发展指数(HDI)等因素对ERFR模型中COVID-19的传播和扩散影响较大。
基于疫情态势的数据可视化研究工作已相对成熟,对新冠肺炎可视化具有实际借鉴意义。但疫情平息后,传统疫情可视化将丢失其实际应用价值,大量潜在数据未被合理挖掘利用。本文针对以上问题,发挥数据可视化的直观优势,分别从方舱医院态势动态监测、政策影响下城市疫情与舆情态势分析、患者送诊路径规划3个方面进行分析设计,构建面向二次疫情的方舱医院动态调控可视化平台。具体思路为:以武汉方舱已有数据为基础,融合多方渠道信息对疫情数据进行分析,创新设计水滴图与饼图结合的可视方式实现对方舱医院态势的动态监测。采用LDA主题模型[11]融合NLP情感词典计算面向特定疫情事件的舆情情感倾向,结合WordStream[12]展现疫情期间不同时间节点群众话题关键词的演化。综合考虑患者患病程度、与医疗点距离、方舱负载量等指标,设计患者确诊地点与方舱医院的最优路径规划。最后通过案例分析验证系统的功能性和有效性。
本文发挥数据可视化的直观优势,以疫情防控提供政策决策辅助为目的,分别从方舱医院态势动态监测、政策影响下城市疫情与舆情态势分析、患者送诊路径规划3个方面进行分析。方舱医院态势动态监测方便相关人员对方舱医院患者流量进行监管,政策影响下城市疫情与舆情态势分析能够加强政府对城市疫情和舆论的了解,患者送诊路径规划在为患者治疗赢得宝贵时间的同时减缓医院拥塞。
● 方舱医院态势动态监测:解决床位紧缺、资源不足问题,需合理调配各地区的人力物力资源。对方舱医院态势进行监测,能够帮助政府节约人力物力资源,提高方舱医院的利用率。
● 政策影响下城市疫情与舆情态势分析:疫情下相关政策的颁布可能对疫情态势产生不同程度的影响,了解疫情周期特征及群众的舆论意见能为疫情防控决策提供辅助。
● 患者送诊路径规划:为患者推送最优路径,既能使患者及时就诊,又可减少交叉感染,并在一定程度上减缓医院的拥塞程度。
系统基于B/S模式开发,主要包括4个模块:数据处理模块、算法模块、分析模块和可视化模块。具体如图1所示。
图1 系统总体分析流程
(1)数据处理模块
基于武汉市公共数据平台获取的疫情数据(方舱住院患者统计信息、方舱医院的名单、武汉市每日治疗情况、每日确诊病例所属于行政区)融合政府网站、微博、抖音、微信等多方渠道数据对疫情态势进行探索分析。采集的新冠肺炎疫情数据主要包括时间数据、空间数据和文本数据等多源异构数据。此外,本文使用数据均与多方权威平台进行交叉数据验证,确保数据的真实性和准确性,数据处理示意图如图2所示。
图2 数据处理流程
(2)算法模块
系统主要以pixel-perfect碰撞算法、多约束路径算法和情感识别-情感/主题(joint sentiment/topic,JST)模型3个算法为支撑设计,其中WordStream结合pixel-perfect碰撞算法以合理呈现文字河流的布局,多约束路径算法为路径推送模块的核心内容,而多约束路径算法和情感识别-情感/主题模型用来融合舆情事件展现群众关注度及情感态度。
(3)分析模块
融合多元数据与系统设计,将系统模块划分为方舱医院态势动态监测、政策影响下城市疫情与舆情态势分析、医院负载量的路径规划以及城市复苏概况4个模块,实现对方舱医院的动态调控。
(4)可视化模块
分析可视化系统与用户之间的动态关联,设计友好交互方式,通过交互方式使系统直观呈现不同板块的可视化内容。
方舱医院的疫情数据主要包括空间数据、时间数据和文本数据。从3个方面对方舱医院态势动态监测模块进行数据处理。针对空间数据,采用百度地图API解析出每个方舱医院和发热门诊的经纬度。针对时间数据,计算每日确诊、死亡、新增的数据,并通过时间排序保存数据。针对文本数据,以各方舱为分类依据,将爬取的数据分为医疗团队、方舱简介和英雄事迹3类进行存储。
考虑到传统的饼状图无法直观呈现多维属性信息,因此设计水滴图与饼图结合的可视方式实现对方舱医院态势的动态监测。如图3所示,方舱水滴图内部动态显示该方舱负载量百分比,外圆环分段展示方舱简介、医疗团队组成和方舱开舱期间的英雄事迹信息。将病例数量数据集融合空间地理位置信息标注于地图,同时设计同轴直方图配合可视呈现。通过时间选择器探索地图上某段时间内各方舱医院开关舱状态和负载量情况,与方舱医院动态交互。结合直方图展示某段时间内具体出入舱人员流向,直观呈现某段时间内方舱的负载量状况、开关舱状态以及方舱内患者的人员流向情况,实现对方舱医院态势的动态监测。
图3 动态监测模块设计
本文以微博、微信和抖音等多渠道数据为爬虫目标,使用Python开源的爬虫框架Scrapy爬取与疫情相关的事件以及评价数据。
2.3.1 群众舆情情感分析
基于多渠道数据对群众情感进行分析,Jia等[13]基于SnowNLP和Tf-Idf对学生返校情绪进行相关分析工作,Chen等[14]基于SnowNLP对网店信用评价模型进行改进分析,具有实际借鉴意义。群众舆情分析流程如图4所示。
图4 舆情分析流程
首先从评论形式和内容两个方面对采集的评论信息进行评级过滤。形式特征包括句子长度、评论者活跃度等,内容特征包括修饰词、情感强度等,这些特征综合反映该评论的情感分析价值,同时也是情感分析过程依赖的重要分析内容。系统基于词典的情感识别方法将词典中情感词与用户评论中的情感表达进行匹配。情感词典包括SnowNLP库和自定义情感库。基于疫情的特殊原因,将某些特殊的词加入自定义词库,比如“关门大吉”等词在此情况下应属于积极词库。根据语气程度为每个情感词语赋予不同权重,对诸如“不作为”等否定词和“非常”“真的”等程度副词设置特殊判别规则。利用情感词典提取用户评论中能够表征情感的信息。表1为测试样本集中的一条关于方舱医院话题的评价内容。使用LDA(latent dirichlet allocation)模型基础上的JST模型[15],对每一个词采集情感标签和主题标签,利用情感词典作为JST模型的先验知识来提高文档中情感分类的准确性。通过初始cosd矩阵,从文档中读取一个词为其随机分配主题和情感,计算该主题和标签的概率,根据概率重新选择最合适的情感和主题。通过迭代为所有词都附上相应的情感标签和主题标签。最后利用文字气泡图结合折线,在对应时间节点对舆论话题和群众情感进行表征。气泡颜色由蓝至红的渐变色表示群众对气泡内舆情事件的态度由消极至积极,颜色越接近蓝色表示态度越消极,颜色越接近红色则表示态度越积极。折线图则表示群众对舆情事件的关注度变化趋势,如“小学老师方舱直播上课”事件关注度较高,且整体为积极态度。
表1 疫情评价情感抽取结果
2.3.2 群众舆情关键字展示
针对群众舆情关键字的展示采用WordStream文字河流图的方式,展现疫情期间不同时间节点群众话题关键词。为能在相应时间强调对应主题层中重要关键词,使用词云算法在对应流层中显示每个主题词。系统基于pixel-perfect碰撞算法检测碰撞,将词语放入相应的流层中并靠近它们的时间步长,通过碰撞检测将检查碰撞的词语视为完全包围它们的最小矩形盒子,然后通过检查这两个盒子是否相互碰撞解决词云在流层中的布局问题,如图5所示。Mark-based算法中使用一个板表示流层,其中包含在检查时放置在板上的所有词。此板用来检查是否与新的词发生碰撞。采用式(1)从像素数据中计算像素i的值:
图5 碰撞算法示意图
碰撞检测检查词上所有像素位置和板上对应的位置,类似于将新词放置到当前板中,将值从词添加到板的相应位置。为了尽量避免词汇与词汇之间出现遮挡和重叠,如图5所示,WordStream沿着一个以盒子为中心的螺旋模式扫描。根据相应时间步长计算出的每个框的中心,并且它与中心的最大偏差小于盒子的对角线。
2.3.3 最优路径规划
最优路径规划基于患者确诊地点与方舱医院距离远近和患者症状,结合附近医院的拥塞程度进行综合判断决策。刘云翔等[16]针对城市道路网的特点,提出了一种实用高效的最短路径分析解决方案,具有借鉴意义。本文考虑到实际应用场景,在采取优化路径算法的同时,加入患病程度、距离、负载量3个参数综合进行路径推送。
对于单个患者的路径规划,假设G=(V,E)表示一个方舱医院位置分布图,其中V表示节点集合(包括患者所在位置),E表示患者所在位置与方舱医院形成的边集合,其中,每条边的权重应有多种度量参数,不只是单一的距离问题。因此对不同的约束条件应该采用不同的权重,权重用ωi(i=1,2,3,…,N)表示。将数据进行整合得到数据集将数据输入线性回归模型中,如下所示:
其中,x是m维数据集的不同约束条件,y表示目标值;ˆ 表示预测值;ψ表示线性回归偏移量,线性回归目标结果是得到目标值与预测值最小值时的权重参数。
由于疫情的特殊情况,本文考虑添加方舱医院的负载量。为了计算方舱医院每日负载量,添加了一个衡量指标θ,计算满足:θ=IH/IB,其中IH代表当天在医院的患者人数;IB代表该方舱医院所有床位数;使用经纬度坐标表示球面两点,可以计算两者之间的距离,计算式如下:
其中,R表示地球半径。
在路径选择目标中,决策空间X=(x1,x2,…,xn)分别代表距离、负载量和患者症状等不同的约束条件。目标函数f1(x1),f2(x2),…,fn(xn)分别代表路径距离函数和医院负载量函数等。给定一个k约束Ck,k=1,2,3,…,N找到一条最优的路径p需要满足:
并且找到满足式(2)的路径中的最小值:
其中,∂i为每个指标的临界值,一般满足
在地图上初始化方舱医院位置信息,路径规划方案如图6所示。假设存在患者S1、S2、S3于不同地点同时求助,将患者患病程度、确诊地与方舱距离和方舱负载量量化为3个不同权重指标进行路径推送。设此时有A、B、C、D 4个方舱,为患者S1规划距其最近而负载量不大的方舱D,患者S2虽距方舱A较近,但由于A负载量较大,系统为其规划路线送往方舱B,方舱B虽比方舱C负载量更小,但由于患者S3患病程度权重较大,系统为其规划距离较近的方舱C。当该方舱无法提供患者所需资源时,通过相同的路径规划算法筛选符合条件的其他治疗点,及时转送患者进行后续治疗。
图6 路径规划方案
基于以上分析设计,采用Vue.js经典模块化前端框架,使用SpringBoot简洁的微服务开发框架,以及Echarts.js、d3.js中丰富多样的图表元素库与地图元素库MapBox,后端采用Node.js框架,设计开发支持多视图联动的方舱医院动态调控可视化平台。系统概览如图7所示。
面向方舱医院动态调控可视化平台提供政策影响下城市疫情舆情态势分析模块(图7中a、e、f区域),融合疫情态势与相关政策探究二者关联,为政策下达提供决策辅助。基于水滴图的方舱态势动态监测模块(图7中b、c区域),动态监测方舱出入院情况与负载量,以合理分配人力物力资源。群众科普模块(图7中d区域),提供方舱医院简介、出入舱标准流程等基本信息,在介绍有效防御措施的同时科普病毒传播方式,提高群众警惕性以增强民众对疫情防控的配合度。城市经济复苏模块(图7中g区域),对比疫情期间方舱以及治疗点开放情况与疫情后AAA景区开放和会议开展情况的地理位置分布,凸显城市复苏活力现状,以提升全民抗疫信心以增强民族凝聚力。
基于水滴图的方舱态势动态监测分析对人力物力资源安排有重要意义。如图8所示,标识方舱医院的实际物理地点,右边以对向直方图的方式呈现方舱收治患者情况,左侧为单日入舱人数,右侧为出舱人数。以武昌方舱为例,直方图展示武昌方舱出入舱情况。选择2020年2月5日,通过图8(e)可见该日入舱患者22人,无出舱患者,通过图8(a)可知方舱负载量为3%,此时其他方舱尚未开舱,疫情尚未迅猛发展。分析如图8(b)和图8(c)所示,2020年2月11日至2020年2月19日武昌方舱入舱患者于曲折中上升,出入舱患者数量差距持续增大,此时武昌方舱负载量自53%升至90%。此时由于武昌方舱负载量过高,应考虑为患者的救治资源发出紧急警报,通知其他医院不再大量往本医院输送患者。2020年2月19日方舱医院开舱数量明显增多且大多数方舱正处于满负载状态,疫情态势不容乐观。2020年3月3日武昌方舱无入舱患者,出舱患者38人,方舱负载量下降至39%,如图8(d)所示,可知此时疫情态势有所减缓。
分析政策影响下城市疫情态势的变化趋势对于决策辅助有重要参考意义。
如图9(a)、图9(b)所示,从2020年2月1日至2020年2月16日,新增确诊患者数呈上升趋势,并于2020年2月13日升至顶峰,达到13 436人,新增死亡和新增治愈人数比较少。如图9(c)、图9(d)所示,2020年2月16日国家发展改革委发放2.3亿元资金用于完善方舱医院设施,增添必要的医疗设备,自此之后,从疫情折线图中可以看出新增确诊人数呈明显下降趋势,治愈人数在波折中上升,这体现了政府部门利好政策的发布对疫情态势发展起到了积极作用。
关注疫情期间群众舆情话题内容,及时了解热点事件的群众民调,聚焦舆论中心点,有利于政府部门合理引导高度负面情绪的热点事件舆论走向。舆情监测分析如图10所示,上半部分为热门新闻事件,下半部分为针对具体事件的评论主题词,统一按照时间顺序进行布局罗列。2020年2月25日“小学老师方舱直播上课”的新闻事件舆论反响非常良好,该类新闻事件可增强民众在疫情期间的抗疫信心。重点关注2020年3月10日的新闻事件“江夏方舱正式闭舱”,这代表着武汉所有方舱全部休舱,民众情感呈现为积极态度,点击事件呈现具体评论文本的高频词,其中讨论最多的话题关键词分别为“武汉,加油”“关门大吉”等字样。
图10 舆情监测分析
配合医院负载量的路径规划可以根据患者所处位置、方舱地理位置以及此时方舱负载量综合为患者合理安排最优路线。通过选择不同时间,查看方舱的开舱情况,基于方舱负载情况为用户推送路径。选择时间2月5日,可以看出只有两个方舱开舱并处于低负载,如图11(a)所示。选择2月19日,可知基本所有方舱都已开舱,并且有些方舱已达到高负载状态,点击搜索框,推送路径如图11(b)所示。点击按钮切换地图,显示发热门诊的位置,如图11(c)所示。通过选择不同时间结合方舱情况决定患者送往路径,如图11(d)所示。假设患者2月20日位于武汉莫泰酒店如图11(e)所示,此时汉江方舱负载量达到88%,如图11(g)所示;硚口方舱负载量达到54%,如图11(f)所示,系统选择了距离较远的硚口方舱。
图11 路径优化功能及案例展示
本文以湖北武汉的新冠肺炎疫情数据为基础,融合多渠道数据,采用LDA主题模型融合NLP情感词典、基于WordStream的碰撞算法以及路径规划等技术,实现了面向疫情舆情发展与方舱医院动态调控可视化平台。相关人员能够利用可视化平台系统相关模块对方舱医院的地理位置以及容量物资等进行调整;能够根据疫情发展调整对策,根据对疫情态势的感知以及对群众舆情的分析掌握网络舆情情况;能够根据患者地理位置结合最近方舱的地理位置、负载量等为患者规划最优路径,在避免交叉感染及时送诊患者的同时避免方舱医院出现拥塞。案例分析证明,本系统能通过已有数据为二次疫情提供决策辅助。