王秀友 韦斯羽 代雅婷 彭亮 高统朋
摘 要:本文以大数据技术为基础,对COVID-19疫情期间除湖北外其他地区的疫情数据进行采集、预处理、可视化和分析。结果显示在疫情中,接触性传播为主要传播方式,疫情的主要症状为发热,为疫情防控提供科学的理论依据和重要辅助服务。
关键词:COVID-19;疫情;大数据;数据爬取;数据分析
中图分类号:TP393 文献标识码:A 文章编号:1673-260X(2021)01-0029-04
0 引言
随着大数据技术的飞速发展,其在各个领域得到广泛应用。特别在医学领域,由于医学领域的问题往往数据量巨大且数据来源广泛,对数据实时性和实用性要求较高,大数据处理技术的发展为医学领域特别是传染病预测带来了巨大改变[1,2]。2020年发生的COVID-19疫情爆发后,快速在大范围内传染开来,感染了大量人群。大数据技术可以为疫情提供必要的技术处理手段。疫情中,众多专家学者对武汉和湖北省的数据样本进行分析,对湖北省外的其他省市病例样本信息分析较少[3]。本文利用大数据相关技术,通过爬取疫情爆发初期至2020年4月5日湖北省外的其他省市确诊病例的详细资料,针对具体的病例描述数据,将纷乱无序的数据汇集到一起,进行全面的数据处理和数据分析,以直观形式展示疫情相关数据分析[4],预测疫情发展的动态及走势,为疫情防控的高效决策、快速决策乃至智能决策提供了有力的基础。
2 方案设计
本文利用爬虫技术爬取今日头条抗击肺炎专题中的实时病例数据,利用大数据处理技术进行数据预处理,针对处理后的数据提供数据可视化分析。
2.1 数据爬取
本文对湖北省外全国人员的病例详情进行数据爬取,病例样本如图1所示。
对數据源进行爬取时,主要流程是对请求的数据进行分析,然后对数据进行异步请求,抓取相关数据包后对抓取到的数据进行存储,具体描述如下。
(1)数据分析:找到数据的url_base和对应的json文件url_json。对病例人员信息的url进行分析,发现url中id参数决定了爬取的城市。以安徽省合肥市某一url地址为例https://xxx.html?local_id=340100其中url中的id=340100表示合肥。
(2)请求数据:利用工具fiddler抓包确定请求类型,进行异步请求,实现一次性自动化爬取省级内各个城市数据。通过抓包获取涉及全国疫情信息的js接口和城市id。
(3)解析网页:利用request库实现全国省市的封装解析。部分地区仅有市的数据,没有内部区的统计,导致不能实现全国一次性自动爬取。本文将爬取封装成两个过程,一是输入id爬取市级数据;二是输入省级名称爬取全省数据。
(4)数据存储:将对应的数据存入文本文档中,实现自动存储生成文本文档。
2.2 数据预处理
由数据分析对预处理的需求,将数据需求分为三种,一是提取症状、性别、年龄、武汉居住史字段的相关数据;二是密切接触人数、聚餐情况;三是发病日期、确诊日期。
在数据预处理过程中,分为两类进行处理。一是提取日期类的数据,采用时间序列技术,进行时间序列的预处理;去除无关特殊符号及字符,进行日期时间序列类的数据提取和集成规约。二是处理文本类特征字段,采用NLP处理方式;对特征字段采用Jieba分词统计、清洗,利用N-gram语言模型进行特征提取,数据预处理流程如图2所示。
对需求一采用表达式自动搜索特征字段,对需求二遍历数据文本,以正则表达式中的split()模块进行按照标点符号分割。对需求三数据的预处理则分为以下几步。
2.2.1 数据格式预处理
将文件格式进行转换并筛选日期,用列表推导式进行关键字段提取,得到每一行中存在症状的关键字段,结果如图3所示。
2.2.2 数据错误修正
对预处理的数据重新排序并统计满足需求的数据,将数据转成csv格式。由于每行的字段数不确定,在上一个文件中设置表头最大化,从而使数据可用pandas读取,然后进行重新排序,缺失的值用空值填充,结果如图4所示。
2.2.3 数据内容预处理
使用正则表达式提取症状或者发病、确诊时间。使用split()将字段切分,定义函数提取纯日期,利用map函数多次执行,结果如图5所示。
2.2.4 数据标准化
对预处理后的数据,删除每行空数据以及症状时间,使每行数据只剩下发病时间和确诊时间。按行遍历数据,通过split()和strip()函数以空格分割,再以英文逗号进行连接保存,去除多余逗号,结果如图6所示。
在对数据进行分析时,较少的样本量对结果分析容易产生较大误差。本文对样本量较少的数据进行了剔除,保留处理除湖北省数据量前十的省市数据。源病例数据量为5665条,预处理200条,实用病例5465条,具体数据如表1所示。
2.3 可视化分析
对于处理后的病例数据,本文用直观的表格和图片辅助数据分析,分为三个方面。
2.3.1 针对症状、年龄、性别、武汉居住史字段进行分析
根据不同症状占比情况的统计表(表2)可以看出,发热为主要症状之一,占源数据的45.61%,将近一半,因此发热可以作为判断是否为疑似病例的一个依据。其次,患者病例中有症状者占比98.50%,无症状者占比1.50%。
根据不同年龄段占比情况的表3可以看出,年龄段在41岁至51岁的患者人数最多,占源数据的33.83%,占比率最高。
本研究针对5465例病例进行性别比例分析,发现其中男性患者的人数为2900,占比53.06%,女性患者的人数为2565,占比46.94%,说明COVID-19传染与性别无关。
针对每个省的病例中含有长期居住、有居住史、在武汉工作、生活于武汉、路径有武汉等含有武汉居住史的字段进行分析得出,共有2984名患者具有武汉旅居史。从中可以看出,由武汉传播出来的病例人数普遍居多,占各省病例人数居高。
2.3.2 针对密切接触与聚餐情况进行分析
对每个省的病例中含有与确诊或高度疑似病例有直接居住生活在一起分析得出,共有2399名患者与确诊或高度疑似病例有直接居住生活在一起的成员进行密切接触行为,占总病例人数的43.89%,说明人传人现象较为明显。
对聚餐情况分析时,本次提取聚餐字段的关键词有聚会、聚餐、有共餐史、相聚就餐等。从表6可以看出聚餐导致的病例数占各自地区总病例的比例。从图8聚餐人数日期可以看出,疫情发生前期至1月26日聚餐情况较多,聚会、聚餐是造成COVID-19疫情传播的重要因素。
2.3.3 疫情波动分析
本文以确诊病例中患者发病日期与确诊日期作为综合评判依据,选取前十个省的疫情新增数据进行抽样预测分析。选取全国疫情新增数据进行整体研究分析,研究真实的监测数据。
图8是除湖北省外前十个省市新增发病人数与确诊人数的折线图,反映了疫情确诊人数数据与发病人数数据随时间的波动情况。爆发前期至2月5日是波动幅度较小的持续性增加,2月5日确诊人数达到了最高333例,2月5日至2月25日是波动幅度较小持续性减少,2月25日以后是趋于平稳;发病人数的波动情况是,爆发前期至1月29日持续性增加,1月29日至2月7日是波动幅度较小的趋于平稳,但仍持续爆发,人数最高为259例,2月7日至2月25日是持续性减少,2月25日以后是趋于平稳。
图9中的全国新增发病人数和确诊人数反映了同个时间内发病人数与确诊人数之间的比较情况。可见全国疫情的波动基本一致。图中新增确诊数据来自国家卫健委,新增发病数据来自今日头条的全国病例。
2.4 可视化部署实现
基于echarts的网页可视化展示,利用jQuery中的echarts网页模板,将本次研究方向的图形进行统一展示。网页图形主要展示了数据分析的三个方向,一是各个省市武汉居住史的病例情况和患者症状分析情况;二是各个省受聚餐影响占比;三是新增发病和新增确诊人数双折线圖。
3 结语
本文研究疫情爆发期间各项数据的具体情况,预测疫情高峰和持续时间,通过可视化展示疫情的动态数据及结果。随着数据处理技术日新月异的发展,大数据在医疗方面的应用必将带来巨大变革,利用大数据技术对重大公共卫生突发事件进行群防群控,是未来疫情防控的关键手段和重要支撑。
——————————
参考文献:
〔1〕王延玲,温明锋,李迎新.大数据时代对医疗系统信息化发展的研究[J].当代医学,2020,26(10):114-11.
〔2〕王秋蓉,吴亚楠,肖潇,杜娟.人工智能:发挥抗击疫情科技支撑的骨干作用[J].可持续发展经济导刊,2020,38(04):18-20.
〔3〕闫雨蒙,李博,李泽宇,连博,苏祥飞,王天园,李萍,王强,程金莲,杨忠奇.新型冠状病毒肺炎临床研究和专家意见数据分析的思考与建议[J].中国中药杂志,2020,45(07):1526-1530.
〔4〕邬贺铨.大数据助力疫情防控[J].大数据时代,2020,36(03):26-33.