爆肝之作,禁止白嫖
词云是文本大数据可视化的重要方式,可以将大段文本中的关键语句和词汇高亮展示。
从四行代码开始,一步步教你做出高大上的词云图片,可视化生动直观展示出枯燥文字背后的核心概念。进一步实现修改字体、字号、背景颜色、词云形状、勾勒边框、颜色渐变、分类填色、情感分析等高级玩法。
学完本课之后,你可以将四大名著、古典诗词、时事新闻、法律法规、政府报告、小说诗歌等大段文本做成高大上的可视化词云,还可以将你的微信好友个性签名导出,看看你微信好友的“画风”是怎样的。
从远古山洞壁画到微信表情包,人类千百年来始终都是懒惰的视觉动物。连篇累牍的大段文本会让人感到枯燥乏味。在这个“颜值即正义”的时代,大数据更需要“颜值”才能展现数据挖掘的魅力。
对于编程小白,学会此技可以玩转文本,入门中文分词、情感分析。对于编程高手,通过本课可以进一步熟悉Python的开源社区、计算生态、面向对象,自定义自己专属风格的词云。
词云的应用场景
- 会议记录
- 海报制作
- PPT制作
- 生日表白
- 数据挖掘
- 情感分析
- 用户画像
- 微信聊天记录分析
- 微博情感分析
- Bilibili弹幕情感分析
- 年终总结
安装本课程所需的Python第三方模块
一行命令安装(推荐,适用于99.999%的情况)
打开命令行,输入下面这行命令,回车执行即可。
pip install numpy matplotlib pillow wordcloud imageio jieba snownlp itchat -i https://pypi.tuna.tsinghua.edu.cn/simple
如果安装过程中报错(0.001%会发生)
如果报错:
Microsoft Visual C++ 14.0 is required.
解决方法:
到 http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud 页面下载所需的wordcloud模块的.whl文件,再用pip安装下载的文件。
比如,对于64位windows操作系统,python版本为3.6的电脑,就应该下载
wordcloud-1.4.1-cp36-cp36m-win_amd64.whl
这个文件下载后打开命令行,使用cd命令切换到该文件的路径,执行
pip install wordcloud-1.4.1-cp36-cp36m-win_amd64.whl
命令,即可安装成功。
四行Python代码上手词云制作
1号词云:《葛底斯堡演说》黑色背景词云(4行代码上手)
import wordcloud
w = wordcloud.WordCloud()
w.generate('and that government of the people, by the people, for the people, shall not perish from the earth.')
w.to_file('output1.png')
运行完成之后,在代码所在的文件夹,就会出现output.png
图片文件。可以看出,wordcloud自动将and that by the not from
等废话词组过滤掉,并且把出现次数最多的people
大号显示。
# 导入词云制作第三方库wordcloud
import wordcloud
# 创建词云对象,赋值给w,现在w就表示了一个词云对象
w = wordcloud.WordCloud()
# 调用词云对象的generate方法,将文本传入
w.generate('and that government of the people, by the people, for the people, shall not perish from the earth.')
# 将生成的词云保存为output1.png图片文件,保存出到当前文件夹中
w.to_file('output1.png')
wordcloud
库为每一个词云生成一个WordCloud对象(注意,此处的W和C是大写)
也就是说,wordcloud.WordCloud()
代表一个词云对象,我们将它赋值给w
。
现在,这个w
就是词云对象啦!我们可以调用这个对象。
我们可以在WordCloud()
括号里填入各种参数,控制词云的字体、字号、字的颜色、背景颜色等等。
wordcloud库会非常智能地按空格进行分词及词频统计,出现次数多的词就大。
美化词云
2号词云:面朝大海,春暖花开(配置词云参数)
增加宽、高、字体、背景颜色等参数
# 2号词云:面朝大海,春暖花开
# CSDN专栏:程序媛柚柚
import wordcloud
# 构建词云对象w,设置词云图片宽、高、字体、背景颜色等参数
w = wordcloud.WordCloud(width=1000,height=700,background_color='white',font_path='msyh.ttc')
# 调用词云对象的generate方法,将文本传入
w.generate('从明天起,做一个幸福的人。喂马、劈柴,周游世界。从明天起,关心粮食和蔬菜。我有一所房子,面朝大海,春暖花开')
# 将生成的词云保存为output2-poem.png图片文件,保存到当前文件夹中
w.to_file('output2-poem.png')
如果参数过多,第二行写成长长的一行不好看,可以写成多行,让代码更工整
# 2号词云:面朝大海,春暖花开
# CSDN专栏:程序媛柚柚
import wordcloud
# 构建词云对象w,设置词云图片宽、高、字体、背景颜色等参数
w = wordcloud.WordCloud(width=1000,
height=700,
background_color='white',
font_path='msyh.ttc')
w.generate('从明天起,做一个幸福的人。喂马、劈柴,周游世界。从明天起,关心粮食和蔬菜。我有一所房子,面朝大海,春暖花开')
w.to_file('output2-poem.png')
常用参数
-
width 词云图片宽度,默认400像素
-
height 词云图片高度 默认200像素
-
background_color 词云图片的背景颜色,默认为黑色
background_color='white'
-
font_step 字号增大的步进间隔 默认1号
font_path 指定字体路径 默认None,对于中文可用
font_path='msyh.ttc'
-
mini_font_size 最小字号 默认4号
-
max_font_size 最大字号 根据高度自动调节
-
max_words 最大词数 默认200
-
stop_words 不显示的单词
stop_words={"python","java"}
-
Scale 默认值1。值越大,图像密度越大越清晰
-
prefer_horizontal:默认值0.90,浮点数类型。表示在水平如果不合适&#