使用Python绘制疫情词云

首先从百度百科搜索到有关新冠肺炎的简介

病毒: 新型冠状病毒 2019-nCoV
传染源: 野生动物,可能为中华菊头蝠
传播途径: 经呼吸道飞沫传播,亦可通过接触传播,存在粪-口传播可能性
易感人群:人群普遍易感。老年人及有基础疾病者感染后病情较重,儿童及婴幼儿也有发病
潜伏期:一般为 3~7 天,最长不超过 14 天,潜伏期内存在传染性
新型冠状病毒肺炎是一种急性感染性肺炎,其病原体是一种先前未在人类中发现的新型冠状病毒,即2019新型冠状病毒。2020年2月7日,国家卫健委决定将“新型冠状病毒感染的肺炎”暂命名为“新型冠状病毒肺炎”,简称“新冠肺炎”。2月11日,世界卫生组织(WHO)将其英文名称为Corona Virus Disease 2019(COVID-19)。2月22日,国家卫健委决定将“新型冠状病毒肺炎”英文名称修订为“COVID-19”,与世界卫生组织命名保持一致,中文名称保持不变。
2020年1月30日,WHO宣布将新型冠状病毒肺炎疫情列为国际关注的突发公共卫生事件(PHEIC)。
患者初始症状多为发热、乏力和干咳,并逐渐出现呼吸困难等严重表现。多数患者预后良好,部分严重病例可出现急性呼吸窘迫综合征或脓毒症休克,甚至死亡。目前,缺乏针对病原体的有效抗病毒药物,以隔离治疗、对症支持治疗为主。
新冠肺炎是一种新病毒
认识冠状病毒
冠状病毒是一个大型病毒家族,由遗传物质核心、包膜和棘蛋白构成。外形看起来像皇冠。
而皇冠在拉丁语中被称为Corona,因此这类病毒被命名为Coronavirus(冠状病毒)冠状病毒有很多种,可导致呼吸道疾病,有时还会引起肠胃道症状。
呼吸道疾病包括从普通感冒到肺炎的一系列疾病。
对大多数人来说,症状往往较轻
然而,某些类型的冠状病毒会引起严重疾病
比如2003年在中国首次发现的SARS冠状病毒和2012年在沙特阿拉伯首次发现的MERS冠状病毒
新型冠状病毒首次在中国发现,他最初出现在武汉市一群肺炎患者中患者都与一个海鲜及活畜市场有关此后,病毒从患者传播到其他人,包括家人和医护人员目前有很多病例,病毒在中国传播,也传到其他一些国家

找一张灰度图像

在这里插入图片描述

打开pycharm

导包

关于导入的这些包,我在此就不再过多的介绍咯,只要你有python基础,都能看明白

import jieba.analyse
from PIL import Image,ImageSequence
import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud,ImageColorGenerator

读取文本

lyric= ''
f=open('./新冠肺炎简介.txt','r')
for i in f:
    lyric+=f.read()

中文分词

因为我们程序中用到了中文,而且文本文件里也是中文,运行程序后基本的中文词云可以出现,但是有些不是一个词,而是一句话,那怎么分词呢?为了把每个词语分开,这时我们需要导入jieba分词,关于jieba,它提供了三种分词模式:

  1. 精确模式,试图将句子最精确地切开,适合文本分析;
  2. 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
  3. 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

为避免图中出现中文乱码,在程序首行添加 #encoding=gbk

生成词云

我直接抛出源码,自行研究

#encoding=gbk
import jieba.analyse
from PIL import Image,ImageSequence
import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud,ImageColorGenerator
lyric= ''
f=open('./新冠肺炎简介.txt','r')
for i in f:
    lyric+=f.read()


result=jieba.analyse.textrank(lyric,topK=50,withWeight=True)
keywords = dict()
for i in result:
    keywords[i[0]]=i[1]
print(keywords)


image= Image.open('./图片.png')
graph = np.array(image)
wc = WordCloud(font_path='./fonts/simhei.ttf',background_color='White',max_words=50,mask=graph, random_state = 300,)
wc.generate_from_frequencies(keywords)
image_color = ImageColorGenerator(graph)
plt.imshow(wc)
plt.imshow(wc.recolor(color_func=image_color))
plt.axis("off")
plt.show()
wc.to_file('输出词云图片.png')

最终效果

在这里插入图片描述
我的微信公众号,欢迎关注哈哈哈
在这里插入图片描述

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值