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实现一个简单的项目监控
Mar 31 Python
Python合并多个装饰器小技巧
Apr 28 Python
Python中的rjust()方法使用详解
May 19 Python
Python简单生成随机姓名的方法示例
Dec 27 Python
浅析python中的迭代与迭代对象
Oct 08 Python
Python第三方Window模块文件的几种安装方法
Nov 22 Python
python移位运算的实现
Jul 15 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
python中的数组赋值与拷贝的区别详解
Nov 26 Python
Python2与Python3的区别详解
Feb 09 Python
Python脚本打包成可执行文件过程解析
Oct 20 Python
opencv实现图像几何变换
Mar 24 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
文章推荐系统(三)
2006/10/09 PHP
PHP开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
如何使用“PHP” 彩蛋进行敏感信息获取
2013/08/07 PHP
PHP图片上传代码
2013/11/04 PHP
CodeIgniter错误mysql_connect(): No such file or directory解决方法
2014/09/06 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
ExtJS Window 最小化的一种方法
2009/11/18 Javascript
网络图片延迟加载实现代码 超越jquery控件
2010/03/27 Javascript
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
JavaScript 代码压缩工具小结
2012/02/27 Javascript
Jquery实现自定义弹窗示例
2014/03/12 Javascript
Javascript中对象继承的实现小例
2014/05/12 Javascript
jquery实现textarea 高度自适应
2015/03/11 Javascript
JS实现控制表格内指定单元格内容对齐的方法
2015/03/30 Javascript
js数组如何添加json数据及js数组与json的区别
2015/10/27 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
2017/01/19 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
vue项目引入字体.ttf的方法
2018/09/28 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
Python解析树及树的遍历
2016/02/03 Python
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
利用python生成照片墙的示例代码
2020/04/09 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
安德玛加拿大官网:Under Armour加拿大
2019/10/02 全球购物
如何提高MySql的安全性
2014/06/19 面试题
学校2014年度工作总结
2014/12/06 职场文书
北京天坛导游词
2015/02/12 职场文书
幼儿园万圣节活动总结
2015/05/05 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
python3+PyQt5+Qt Designer实现界面可视化
2021/06/10 Python