自定义背景画词云图(中文)

背景

词云图还是挺需要用的吧,大量的词中,我们可以快速捕捉到高频的关键的词汇。

环境:python3
对csv文件里面某列所有字符串画词云图(中文的字符)
新安装环境:

1.下载中文字体SimHei.ttf,并放到平台的font目录下。
2.网上找个词云背景图下载下
3.网上下载个停用词词典,如 ChineseStopWords.txt
4.Pillow升级到8版本以上

code及作用

效果:
1)生成一张自定义背景(ciyun_backgroup2.png)的词云图片;
2)生成一个top30的词频表 word_top_frequency.csv,能看到前30的词及词频。

import pandas as pd
import jieba
from jieba import analyse
import wordcloud
import matplotlib.pyplot as plt
import numpy as np
import PIL
#需要把字符串更换为csv文件词云列的title
title=';'.join([ str(c) for c in df['某列名'].tolist()])
# 载入自定义词典
jieba.load_userdict("ChineseStopWords.txt")
#分词
gen=jieba.lcut(title)
data={}
#统计词频
for i in gen:
    if len(str(i))>1:
        data[i] = data.get(i,0)+1       
hlist=list(data.items())
hlist.sort(key=lambda x:x[1],reverse=True)
dd=pd.DataFrame(hlist)
dd=dd.iloc[:30,:] #只要前30个
#需要更改输出词频的路径
dd.to_csv('word_top_frequency.csv',encoding='utf-8',index=False,header=False,sep='\t')
# for i in range(10):
#     print('{:<10}{:>5}'.format(hlist[i][0],hlist[i][1]))
#导入词频的背景图片
mask = np.array(PIL.Image.open('ciyun_backgroup2.png'))
cloud=wordcloud.WordCloud(background_color='white',mask=mask,font_path='/home/bae/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf/SimHei.ttf')
cloud.generate_from_frequencies(frequencies=data)
plt.figure(dpi=1600) #分辨率
plt.imshow(cloud,interpolation='bilinear')
plt.axis('off')
#保存
plt.savefig('ciyun.png')
plt.show()

词云图:
文字打码了,大概可以看到,效果不错。
在这里插入图片描述

附件

词云背景图附一张

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值