基于python的词云生成

1.利用Python软件对一个csv文件的文本资料进行分词、停词和词频统计
2. 基于词频统计结果制作词云
代码如下:

import pandas as pd
import jieba
from jieba import analyse
import wordcloud
import matplotlib.pyplot as plt
import numpy as np
import PIL
#需要更换文件路径,我是把excel文件保存为csv ,utf8格式
df=pd.read_csv("C:\\Users\\ThinkPad\\Desktop\\samgov.csv")
#需要把字符串更换为csv文件词云列的title
title=';'.join([ str(c) for c in df['content'].tolist()])
# 载入自定义词典
jieba.load_userdict("E:\\python\\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('E:\\python\\samgovword.txt',encoding='utf-8',index=False,header=False,sep=':')
# for i in range(10):
#     print('{:<10}{:>5}'.format(hlist[i][0],hlist[i][1]))
#导入词频的背景图片
#mask= np.array(PIL.Image.open('C:\\Users\\ThinkPad\\Desktop\\fengjing.bmp'))
mask = np.array(PIL.Image.open('E:\\python\\haitun.jpg'))
cloud=wordcloud.WordCloud(background_color='white',mask=mask,font_path='C:/Windows/Fonts/simhei.ttf')
cloud.generate_from_frequencies(frequencies=data)
plt.figure(dpi=1200) #分辨率
plt.imshow(cloud,interpolation='bilinear')
plt.axis('off')
#保存
plt.savefig('E:\\python\\ctbu.jpg')
plt.show()

根据文本资料建立了停词表,并进行分词,python程序的对前30个词频输出部分截图如下:
在这里插入图片描述
词云图如下:
在这里插入图片描述
经过对词频整理,列出词频数目前30个的词,如下表所示:

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值