任务
根据爬取到的微博内容概要,将其连接为文本,利用既有代码框架生成词云图。
过程
提取转发内容和原文内容
choice='转发'#'原文'#
txt=''
for text in (dataDict[choice+'text']):
txt +=text
利用jieba分词并导入wordcloud绘制图像
import jieba
import numpy as np
import wordcloud
from PIL import Image
import os
#图片保存地址
savePath='词云/'
if os.path.exists(savePath) is False:
os.mkdir(savePath)
#导入文本数据,可通过文件导入,如:
#fc = open("threekingdoms.txt", "r", encoding='utf-8')
#fc=fc.read()
fc=txt
#jieba分词
words=jieba.lcut(fc)
article=' '.join(words)
#mask = np.array(Image.open("huakegatemask.jpg"))
c = wordcloud.WordCloud( \
#mask=mask,
width = 1000, height = 700,\
background_color = "white",
font_path = "msyh.ttc"
)
c.generate(article)
c.to_file(savePath+choice+'词云图.png')
生成图例
提供mask词云图
可以提供mask使图片拥有轮廓。在网上搜索与 关键词相关的图片。由于mask的作用根据对比度,因此黑白图片可直接应用。
效果如下:
当然,想要有代表性的形状图像,可能网上没有可以直接应用的图片。比如想用这张:
但直接使用生成并无效果,但在我之前的灵机一动后,将其解决。没有ps技巧,通过微软的图片编辑工具,将背景置换为白色:
最终的效果图:
写在后面
这个是最初学习python的一个应用,不得不感慨python的强大,在不求甚解的调用后,就可以完成自己需要的工作,趣味十足。
真的是:
人生苦短,我学python