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中文编码那些事
Jun 25 Python
python实现根据用户输入从电影网站获取影片信息的方法
Apr 07 Python
python操作MySQL 模拟简单银行转账操作
Sep 27 Python
Django中间件工作流程及写法实例代码
Feb 06 Python
Python迭代器和生成器定义与用法示例
Feb 10 Python
Python入门学习指南分享
Apr 11 Python
Python增强赋值和共享引用注意事项小结
May 28 Python
Python高级编程之消息队列(Queue)与进程池(Pool)实例详解
Nov 01 Python
Python 将json序列化后的字符串转换成字典(推荐)
Jan 06 Python
Python定时器线程池原理详解
Feb 26 Python
Python celery原理及运行流程解析
Jun 13 Python
解决tensorflow 释放图,删除变量问题
Jun 23 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
excellent!――ASCII Art(由目标图象生成ascii)
2007/02/20 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
在PHP中使用X-SendFile头让文件下载更快
2014/06/01 PHP
轻量级 JS ToolTip提示效果
2010/07/20 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
ajax读取数据后使用jqchart显示图表的方法
2015/06/10 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
d3.js实现简单的网络拓扑图实例代码
2016/11/06 Javascript
Vue.JS入门教程之自定义指令
2016/12/08 Javascript
通过源码分析Vue的双向数据绑定详解
2017/09/24 Javascript
vue拦截器实现统一token,并兼容IE9验证功能
2018/04/26 Javascript
js实现图片上传并预览功能
2018/08/06 Javascript
Vue指令指令大全
2019/02/09 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
[01:05:56]2018DOTA2亚洲邀请赛3月29日 小组赛A组 Newbee VS VG
2018/03/30 DOTA
python根据路径导入模块的方法
2014/09/30 Python
windows下ipython的安装与使用详解
2016/10/20 Python
python实现12306火车票查询器
2017/04/20 Python
pandas数据分组和聚合操作方法
2018/04/11 Python
详解Python的循环结构知识点
2019/05/20 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
pycharm部署、配置anaconda环境的教程
2020/03/24 Python
利用python+request通过接口实现人员通行记录上传功能
2021/01/13 Python
小学生母亲节演讲稿
2014/05/07 职场文书
代领报检证委托书范本
2014/10/11 职场文书
2014年志愿者工作总结
2014/11/20 职场文书
人民的好儿女观后感
2015/06/18 职场文书
2016习总书记系列重要讲话心得体会
2016/01/15 职场文书
《折线统计图》教学反思
2016/02/22 职场文书
2016年学校安全教育月活动总结
2016/04/06 职场文书
React Hook用法示例详解(6个常见hook)
2021/04/28 Javascript