python 定制个性化词云(根据图片自动生成形状和颜色)

python 定制个性化词云(根据图片自动生成形状和颜色)

整体介绍

话不多说先上成品图:
图片为qq头像
背景图片用的是我女朋友的qq头(要白底图片,识别才准确,不是白底图片可以用其他抠图工具处理一下,比如WPS,EXCEl,美图等),词云内容是我们半年的聊天记录。

一、涉及的第三方库

1、jieba:中文分词库
2、wordcloud:生成词云
3、imageio:读取图像数据

二、代码详细展示

2.1
准备工作

#引入需要的库
import jieba
import imageio
import wordcloud
#用imageio的imread函数读取图片,在生成词云的时候将他设置为mask参数(形状)的值
mask1=imageio.imread("C:/Users/Administrator.DESKTOP-L29CIOJ/Desktop/xinpict.png")#读取背景图片

2.2
#打开从qq里面导出的聊天记录,除去时间,名称等不相关的段落

#以删除2020-XX-XX所在行为例
with open("C:/Users/Administrator.DESKTOP-L29CIOJ/Desktop/xin1.txt","r",encoding="UTF-8") as r:#打开聊天记录文件,按行读取
    lines=r.readlines()
with open("C:/Users/Administrator.DESKTOP-L29CIOJ/Desktop/xin1.txt", "w",encoding="UTF-8") as w:#删除不需要的行
    for line in lines:
        if "2020-" not in line:
            w.write(line)
r.close()
w.close()

文件展示
左边是直接导出的聊天记录,右边是处理过后的聊天记录,删处理时间所在行,自动回复所在行
左边是直接导出的聊天记录,右边是处理过后的聊天记录,删处理时间所在行,自动回复所在行

2.3
用jieba库对聊天记录进行分词,得到聊天中的众多关键词

f=open("C:/Users/Administrator.DESKTOP-L29CIOJ/Desktop/xin1.txt","r",encoding="UTF-8")#打开处理好的聊天记录文件
t=f.read()
f.close()
ls=jieba.lcut(t)   #用lcut函数进行分词
txt="".join(ls)   #用空格将关键词隔开

2.4
用wordcloud生成词云

image_colors = wordcloud.ImageColorGenerator(mask1)#利用ImageColorGenerator函数将词云的颜色参数设置为根据图片颜色确定
w=wordcloud.WordCloud(font_path="msyh.ttc",width=800,height=200,mask=mask1,background_color="white",max_words=100000,color_func=image_colors,max_font_size=60)
#设置词云的参数,记住将提到的形状参数设为上面生成的mask1,颜色参数设为image_colors    
w.generate(txt)#生成词云
w.to_file("love2.png")#图片保存为love2.png(注意位置在你的程序文件夹里头)

over

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值