4行代码搞定个性化词云图绘制!

话不多说,直接上代码!

import jieba,wordcloud,imageio #导入jieba中文分词库、词云生成库、导入图片接口库
w=wordcloud.WordCloud(font_path='msyh.ttc',width=1000,height=700,background_color='lightpink',max_words=200,mask=imageio.imread('map1.png')) #配置词云对象的基本参数 #导入背景图片
w.generate(' '.join(jieba.lcut(open("陪你朝朝暮暮.txt","r",encoding="ANSI").read())))#向wordcloud的w对象中导入文本
w.to_file('ciyun.png')#保存生成的词云图片

就是这样短短4行代码,快准狠!

再来看看效果:

在这里插入图片描述
那么,为什么短短4行python代码就能制作出这样的效果?

背景介绍

1.词云

词云图即文字云,是对文本数据中的高频关键词进行可视化的操作,生成一张类似云朵的文字图形,从中会过滤掉大量的文本信息,以文字大小体现文本出现的频率,给使用者耳目一新之感。

通俗地说就是讲文章中的高频词汇统计出来,再制作成一张可视化的图片。

2.准备工作

这里笔者首先向朋友要来了一本名叫《陪你朝朝暮暮》的小说,当然,这里最好是准备.txt格式的文档,其次在网上收集了一张世界地图(这里使用的是.png格式的图片)。
当然,这里的文本文件及图片文件均可以使用网络爬取的方式获取,为了突出标题的作用,笔者自然是使用本地文件了hia ~ hia ~ hia~

3.设计思路
  1. 导入生态库
  2. 获取本地图片及文件
  3. 配置词云对象
  4. 保存词云图片

代码解析

1.导库

import jieba 
import wordcloud 
import imageio 

import jieba
#导入jieba中文分词库,jieba库是一个十分优秀的中文词汇分词工具,其会根据中文使用习惯将长文本切分成一个个我们熟知的词语。由于wordcloud库默认不能处理中文词汇,因此jieba专为中文分词而生。
jieba.lcut()方法用来切分文本,默认采用精确匹配模式(模糊模式对本案例不适用,不多赘述)

import wordcloud
#导入词云生成库,wordcloud库能够将文本信息以图片形式展现,本案例将wordcloud的WordCloud对象用于保存文本信息并加以配置其属性,详细配置过程见下文分解。

import imageio
#导入图片接口库,imageio库提供了很多图片接口,可用于读取网络图片信息,视频以及GIF文件。笔者常用imageio库来制作GIF图片(当然更多的是制作表情包!)
本案例使用imread导入事先准备好的世界地图(此图片笔者建议白色背景),mask=imageio.imread('map1.png') #导入背景图片。如果图片和文本文件存储位置不在当前文件路径下,需要给定文件路径。

2.配置词云

w=wordcloud.WordCloud(font_path='msyh.ttc',width=1000,height=700,background_color='lightpink',max_words=200,mask=imageio.imread('map1.png'))

mask=imageio.imread('map1.png')将导入的世界地图作为词云的背景图片,导入到词云对象中。
max_words=200设置词云中最大文字的大小,也可以使用min_words来设置最小文字。
background_color='lightpink'设置词云背景颜色
width=1000,height=700设置词云图片的大小
font_path='msyh.ttc'设置词云中文字的字体样式,这里采用的是微软雅黑。

3.导入文本

w.generate(' '.join(jieba.lcut(open("陪你朝朝暮暮.txt","r",encoding="ANSI").read())))

open().read()打开并读取文件,需要在open()中指定文件位置及编码模式,常用编码模式为utf-8,在Windows中,文件默然会保存为ANSI编码。
打开之后还应该使用.close()将文件关闭,否则文件将保持打开状态。

打开之后文本信息会被保存为列表,此时使用jieba.lcut()将文本进行分词,分词之后是连续的,用' '.join()可以在分词之间加上空格,最后全部通过。generate()导入到WordCloud对象中。

4.保存图片
w.to_file('ciyun.png')#保存生成的词云图片,此时就能看到一张名为ciyun.png的图片了。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是二狗诶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值