python生成词云的实现方法(推荐)


Posted in Python onJune 13, 2017

期末复习比较忙过段时间来专门写scrapy框架使用,今天介绍如何用python生成词云,虽然网上有很多词云生成工具,不过自己用python来写是不是更有成就感。

今天要生成的是励志歌曲的词云,百度文库里面找了20来首,如《倔强》,海阔天空是,什么的大家熟悉的。

所要用到的python库有 jieba(一个中文分词库)、wordcould 、matplotlib、PIL、numpy。

首先我们要做的是读取歌词。我将歌词存在了文件目录下励志歌曲文本中。

现在来读取他

#encoding=gbk
lyric= ''
f=open('./励志歌曲歌词.txt','r')
for i in f:
  lyric+=f.read()

加入#encoding=gbk是为了防止后面操作报错SyntaxError: Non-UTF-8 code starting with '\xc0'

然后我们用jieba分词来对歌曲做分词提取出词频高的词

import jieba.analyse
result=jieba.analyse.textrank(lyric,topK=50,withWeight=True)
keywords = dict()
for i in result:
  keywords[i[0]]=i[1]
print(keywords)

得到结果:

python生成词云的实现方法(推荐)

然后我们就可以通过wrodcloud等库来生成词云了

首先先自己找一张图片来作为生成词云的形状的图

python生成词云的实现方法(推荐)

from PIL import Image,ImageSequence
import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud,ImageColorGenerator
image= Image.open('./tim.jpg')
graph = np.array(image)
wc = WordCloud(font_path='./fonts/simhei.ttf',background_color='White',max_words=50,mask=graph)
wc.generate_from_frequencies(keywords)
image_color = ImageColorGenerator(graph)
plt.imshow(wc)
plt.imshow(wc.recolor(color_func=image_color))
plt.axis("off")
plt.show()

python生成词云的实现方法(推荐)

保存生成图片

wc.to_file('dream.png')

完整代码:

#encoding=gbk
import jieba.analyse
from PIL import Image,ImageSequence
import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud,ImageColorGenerator
lyric= ''
f=open('./励志歌曲歌词.txt','r')
for i in f:
  lyric+=f.read()


result=jieba.analyse.textrank(lyric,topK=50,withWeight=True)
keywords = dict()
for i in result:
  keywords[i[0]]=i[1]
print(keywords)


image= Image.open('./tim.jpg')
graph = np.array(image)
wc = WordCloud(font_path='./fonts/simhei.ttf',background_color='White',max_words=50,mask=graph)
wc.generate_from_frequencies(keywords)
image_color = ImageColorGenerator(graph)
plt.imshow(wc)
plt.imshow(wc.recolor(color_func=image_color))
plt.axis("off")
plt.show()
wc.to_file('dream.png')

以上这篇python生成词云的实现方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python文件操作整理汇总
Oct 21 Python
Python操作串口的方法
Jun 17 Python
Python中的getopt函数使用详解
Jul 28 Python
利用pyinstaller或virtualenv将python程序打包详解
Mar 22 Python
解决Pycharm中import时无法识别自己写的程序方法
May 18 Python
python 用正则表达式筛选文本信息的实例
Jun 05 Python
Python把csv数据写入list和字典类型的变量脚本方法
Jun 15 Python
Python爬取个人微信朋友信息操作示例
Aug 03 Python
python PrettyTable模块的安装与简单应用
Jan 11 Python
Python中new方法的详解
Jan 15 Python
Tensorflow中的降维函数tf.reduce_*使用总结
Apr 20 Python
python selenium xpath定位操作
Sep 01 Python
Python实现Linux中的du命令
Jun 12 #Python
python正则表达式的使用
Jun 12 #Python
Python简单删除列表中相同元素的方法示例
Jun 12 #Python
Python实现删除列表中满足一定条件的元素示例
Jun 12 #Python
Ubuntu 下 vim 搭建python 环境 配置
Jun 12 #Python
Django objects.all()、objects.get()与objects.filter()之间的区别介绍
Jun 12 #Python
详谈python http长连接客户端
Jun 12 #Python
You might like
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
php结合正则批量抓取网页中邮箱地址
2015/05/19 PHP
PHP+jQuery翻板抽奖功能实现
2015/10/19 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
PHP中十六进制颜色与RGB颜色值互转的方法
2019/03/18 PHP
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
Javascript实现单张图片浏览
2014/12/18 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
简介JavaScript中strike()方法的使用
2015/06/08 Javascript
js实现键盘自动打字效果
2016/12/23 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
JavaScript中EventLoop介绍
2018/01/22 Javascript
详解vue2.0+vue-video-player实现hls播放全过程
2018/03/02 Javascript
Vue 自定义动态组件实例详解
2018/03/28 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
关于layui时间回显问题的解决方法
2019/09/24 Javascript
浅谈vue中resetFields()使用注意事项
2020/08/12 Javascript
pymssql数据库操作MSSQL2005实例分析
2015/05/25 Python
浅述python中argsort()函数的实例用法
2017/03/30 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
2018/02/01 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
python 3.7.0 下pillow安装方法
2018/08/27 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
简单了解Python读取大文件代码实例
2019/12/18 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
H5仿微信界面教程(一)
2017/07/05 HTML / CSS
安全生产月活动总结
2014/05/04 职场文书
党员廉洁自律承诺书
2014/05/26 职场文书
化工专业求职信
2014/07/01 职场文书
优秀党员先进材料
2014/12/18 职场文书
Mysql数据库按时间点恢复实战记录
2021/06/30 MySQL