一、什么叫词云图?
词云图又叫文字云,是对文本数据中出现频率较高的关键词予以视觉上的突出,形成”关键词的渲染”就类似云一样的彩色图片,从而过滤掉大量的文本信息,,使人一眼就可以领略文本数据的主要表达意思。
二、开发环境准备
已有:Win10+Python 3.6.1 64bit+PyCharm
需要:①直接导入两个强大的Python库jieba分词和词云生成WorldCloud(可自定义背景)
②准备好文本数据,此处用的文本文件是我偶像周杰伦的歌词集合 jay.txt
若使用PyCharm,从左上角的File–>Setting–>Project:工程名–>Project Interpreter,点击右侧的“+”,在弹出界面的搜索栏中输入“jieba”和“WorldCloud”,Install Package即可
三、上代码,老司机开车
互联网上有很多的现成的词云图制作工具,但我想私人订制。
1、只用十行代码,真滴有灵性
import matplotlib.pyplot as plt #数学绘图库
import jieba #分词库
from wordcloud import WordCloud #词云库
#1、读入txt文本数据
text = open(r'D:\Python\test\wordcloud\data\jay.txt',"r").read()
#2、结巴分词,默认精确模式。可以添加自定义词典userdict.txt,然后jieba.load_userdict(file_name) ,file_name为文件类对象或自定义词典的路径
# 自定义词典格式和默认词库dict.txt一样,一个词占一行:每一行分三部分:词语、词频(可省略)、词性(可省略),用空格隔开,顺序不可颠倒
cut_text= jieba.cut(text)
result= "/".join(cut_text)#必须给个符号分隔开分词结果来形成字符串,否则不能绘制词云
#print(result)
#3、生成词云图,这里需要注意的是WordCloud默认不支持中文,所以这里需已下载好的中文字库
#无自定义背景图:需要指定生成词云图的像素大小,默认背景颜色为黑色,统一文字颜色:mode='RGBA'和colormap='pink'
wc = WordCloud(font_path=r"D:\Python\test\wordcloud\data\ttf\yahei.ttf",background_color='white',width=800,height=600,max_font_size=50,
max_words=1000)#,min_font_size=10)#,mode='RGBA',colormap='pink')
wc.generate(result)
wc.to_file(r"D:\Python\test\wordcloud\output\wordcloud.png") #按照设置的像素宽高度保存绘制好的词云图,比下面程序显示更清晰
# 4、显示图片
plt.figure("词云图") #指定所绘图名称
plt.imshow(wc) # 以图片的形式显示词云
plt.axis("off") #关闭图像坐标系
plt.show()
前方到站,词云街A:
2、进阶:自定义背景图
import matplotlib.pyplot as plt #数学绘图库
from PIL import Image
import numpy as np #科学数值计算包,可用来存储和处理大型矩阵
import jieba #分词库
from wordcloud import WordCloud, ImageColorGenerator #词云库
#1、读入txt文本数据
text = open(r'D:\Python\test\wordcloud\data\english.txt',"r").read()
# 2、结巴分词:cut_all参数可选, True为全模式,False为精确模式,默认精确模式
cut_text= jieba.cut(text,cut_all=False)
result= "/".join(cut_text)#必须给个符号分隔开分词结果,否则不能绘制词云
#3、初始化自定义背景图片
image = Image.open(r'D:\Python\test\wordcloud\data\backgroud\image1.png')
graph = np.array(image)
#4、产生词云图
#有自定义背景图:生成词云图由自定义背景图像素大小决定
wc = WordCloud(font_path=r"D:\Python\test\wordcloud\data\ttf\yahei.ttf",background_color='white',max_font_size=50,mask=graph)
wc.generate(result)
#5、绘制文字的颜色以背景图颜色为参考
image_color = ImageColorGenerator(graph)#从背景图片生成颜色值
wc.recolor(color_func=image_color)
wc.to_file(r"D:\Python\test\wordcloud\output\wordcloud.png") #按照背景图大小保存绘制好的词云图,比下面程序显示更清晰
# 6、显示图片
plt.figure("词云图") #指定所绘图名称
plt.imshow(wc) # 以图片的形式显示词云
plt.axis("off") # 关闭图像坐标系
plt.show()
前方到站,词云街B:
原图:其他背景都是纯色
四、遇到的bug
①用Pycharm,不再使用命令行pip install xxx导入包特别方便,但是我遇到安装错误:Mircroft Viscal C++ 14.0 is required,以前我用Visual studio 2015写C语言的时候有,后来换系统就不想再下了,所以我直接去下twisted对应版本的whl文件(wordcloud-1.3.2-cp36-cp36m-win_amd64),cp是Python版本,amd64代表64位。然后Windows+R打开cmd执行命令:pip install 完整路径\wordcloud-1.3.2-cp36-cp36m-win_amd6。
②需要注意的是WordCloud默认不支持中文,所以需要去网上中文字体下载下载好中文字库,我下的是微软雅黑。
否则就会出现展示英文字体没有任何错误,但是展示中文字体会出现下面这种框框。
五、结巴分词简介
1、中英文皆可分词
2、支持自定义词典
六、词云图学习总结
无自定义背景图,要指定WordCloud的像素宽高度来决定词云图大小;
有自定义背景图,由背景图像素大小决定词云图大小。
突然发现,我开始慢慢地对Python能做的许多有趣的事越来越感兴趣φ(≧ω≦*)♪。
然后接触了几个数据分析领域常用的Python库,Numpy、MatPlotlib、pandas等等
所以,想坚持关注这个过程:
理解 Python 3基础
学习 Numpy
学习 Pandas
学习 Matplol
七、互联网在线词云制作工具
不翻墙:目前在试用Tagul,感觉词频分析有问题,再看看。
翻墙:Tagxedo在业界的口碑很高,操作界面是英文,改天试试
看看百度上的词云图:
今天的文章Python文本挖掘:词云图分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/9044.html