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实现DES加密解密方法实例详解
Jun 30 Python
Python进阶_关于命名空间与作用域(详解)
May 29 Python
详解Python如何生成词云的方法
Jun 01 Python
解决python升级引起的pip执行错误的问题
Jun 12 Python
python 处理telnet返回的More,以及get想要的那个参数方法
Feb 14 Python
Python使用修饰器进行异常日志记录操作示例
Mar 19 Python
Python3 执行系统命令并获取实时回显功能
Jul 09 Python
python禁用键鼠与提权代码实例
Aug 16 Python
tensorflow实现二维平面模拟三维数据教程
Feb 11 Python
Django单元测试中Fixtures用法详解
Feb 25 Python
Python偏函数Partial function使用方法实例详解
Jun 17 Python
python跨文件使用全局变量的实现
Nov 17 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
自动分页的不完整解决方案
2007/01/12 PHP
通过PHP CLI实现简单的数据库实时监控调度
2009/07/01 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
高效的表格行背景隔行变色及选定高亮的JS代码
2010/12/04 Javascript
使用jQuery快速解决input中placeholder值在ie中无法支持的问题
2014/01/02 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
JavaScript必看小技巧(必看)
2016/06/07 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
如何通过非数字与字符的方式实现PHP WebShell详解
2017/07/02 Javascript
微信小程序实现复选框效果
2018/12/28 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
微信小程序实现星级评价
2019/11/20 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
前端深入理解Typescript泛型概念
2020/03/09 Javascript
用实例说明python的*args和**kwargs用法
2013/11/01 Python
python使用点操作符访问字典(dict)数据的方法
2015/03/16 Python
Windows上使用virtualenv搭建Python+Flask开发环境
2016/06/07 Python
Python 类的继承实例详解
2017/03/25 Python
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
解决Atom安装Hydrogen无法运行python3的问题
2019/08/28 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
感恩节红领巾广播稿
2014/02/11 职场文书
学雷锋宣传标语
2014/06/25 职场文书
公司自我介绍演讲稿
2014/08/21 职场文书
美容院合作经营协议书
2014/10/10 职场文书
2015年乡镇工作总结范文
2015/04/22 职场文书
2015年文明创建工作总结
2015/04/30 职场文书
初中班主任工作随笔
2015/08/15 职场文书
探讨Java中的深浅拷贝问题
2021/06/26 Java/Android
前端传参数进行Mybatis调用mysql存储过程执行返回值详解
2022/08/14 MySQL