Python3在win7下生成云图 学习python过程以及坑
来源:互联网 发布:哪呢儿软件下载 编辑:程序博客网 时间:2024/06/04 19:53
一、前言
本人python小白一个,最近由于朋友推荐python,于是就利用空暇时间学习了下。
主要学习资料有:编程小白的第一本 Python 入门书,写的入门很容易接口,讲解的也比较清楚。
再进一步就是:Python编程:从入门到实践,图灵社区上是收费的,由于本人下载了一本免费的《Python编程:从入门到实践》电子书,通过电子书格式转换的方式将mobi格式转成了pdf的格式。下载地址:Python编程:从入门到实践_[美] Eric Matthes.pdf,参考资料:Python编程:从入门到实践_[美] Eric Matthes_章节源码文件。
Python编程:从入门到实践讲解了2D游戏开发-打飞机游戏、利用信息数据生成热图等、Web应用。对新手来说,还不错。
下图为跟学的效果:
二、win7利用python3生成云图
这次生成云图,在网上也查了一些资料,同样的也遇到了一些问题,这里一一表来。
生成云图的信息是一位过气歌手的歌曲-管维嘉,为什么选择他,主要是因为他的歌曲不多,下载歌词快,不像别的歌手,动不动就几十首上百首,歌词就得整半天。
说明:其实一个py文件就能满足需求,这里为了便于查询,分布分别罗列步骤、代码,最后提供整体代码。(可以自定义适量加打印等操作)
第一步:准备带生成云图的歌词文件。(不赘述)
代码如下:
import os, timedef read_content(content_path): content = ''# 初始化内容为空 print('...正在扫描文件...') for f in os.listdir(content_path): # 使用os模块的listdir函数枚举文件夹下所有文件 time.sleep(1) file_fullpath = os.path.join(content_path,f) # 拼接文件完整路径 if os.path.isfile(file_fullpath): # 判断是否是文件 content += open(file_fullpath,'r').read() content += '\n' print('...正在扫描完毕...') return content# 读取文件夹内容content = read_content('D:/workspace_python/zfiles/guanweijia/')
第二步:分词
这个有点像java中的庖丁解牛分词。代码如下(包含第一步):
import os, timeimport jieba.analysedef read_content(content_path): content = ''# 初始化内容为空 print('...正在扫描文件...') for f in os.listdir(content_path): # 使用os模块的listdir函数枚举文件夹下所有文件 time.sleep(1) file_fullpath = os.path.join(content_path,f) # 拼接文件完整路径 if os.path.isfile(file_fullpath): # 判断是否是文件 content += open(file_fullpath,'r').read() content += '\n' print('...正在扫描完毕...') return content# 读取文件夹内容content = read_content('D:/workspace_python/zfiles/guanweijia/')print('...正在提取关键字...')time.sleep(2)# 这里使用jieba的textrank提取出1000个关键词及其比重result = jieba.analyse.textrank(content, topK=1000, withWeight=True)# 生成关键词比重字典keywords = dict()for i in result: keywords[i[0]] = i[1]# print(keywords)print('...关键字提取完毕...')
第三步:生成云图
注意坑来了:
1.PIL包:所引用的PIL包目前只支持到python2.7,在python3中引用的话需要下载Pillow包,安装过程不赘述。
2.wordcloud包,这个包通过IDE工具安装是失败的,只能通过下载文件后安装。
方法如下:
首先查看自己系统支持版本信息,利用python代码可以查询:
import pip;
print(pip.pep425tags.get_supported())
返回信息(本机):[('cp35', 'cp35m', 'win_amd64'), ('cp35', 'none', 'win_amd64'), ('py3', 'none', 'win_amd64'), ('cp35', 'none', 'any'), ('cp3', 'none', 'any'), ('py35', 'none', 'any'), ('py3', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
下载wordcloud地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
根据上面执行代码返回的信息,可以看到wordcloud‑1.3.2‑cp35‑cp35m‑win_amd64.whl是支持本机安装的。
安装成功,坑填完了,再上代码:
import os, timeimport jieba.analysefrom PIL import Image, ImageSequenceimport numpy as npimport matplotlib.pyplot as pltfrom wordcloud import WordCloud, ImageColorGeneratordef read_content(content_path): content = ''# 初始化内容为空 print('...正在扫描文件...') for f in os.listdir(content_path): # 使用os模块的listdir函数枚举文件夹下所有文件 time.sleep(1) file_fullpath = os.path.join(content_path,f) # 拼接文件完整路径 if os.path.isfile(file_fullpath): # 判断是否是文件 content += open(file_fullpath,'r').read() content += '\n' print('...正在扫描完毕...') return content# 读取文件夹内容content = read_content('D:/workspace_python/zfiles/guanweijia/')print('...正在提取关键字...')time.sleep(2)# 这里使用jieba的textrank提取出1000个关键词及其比重result = jieba.analyse.textrank(content, topK=1000, withWeight=True)# 生成关键词比重字典keywords = dict()for i in result: keywords[i[0]] = i[1]# print(keywords)print('...关键字提取完毕...')#//////////////////////////////////////////////////print('...正在生成云图...')time.sleep(2)# 初始化图片image = Image.open('D:/workspace_python/zfiles/tmc.png')graph = np.array(image)# 生成云图,这里需要注意的是WordCloud默认不支持中文,所以这里需要加载中文黑体字库wc = WordCloud(font_path='./fonts/simhei.ttf', background_color='white', max_words=1000, mask=graph)wc.generate_from_frequencies(keywords)image_color = ImageColorGenerator(graph)print('...生成云图成功...')# 显示图片plt.imshow(wc)plt.imshow(wc.recolor(color_func=image_color))plt.axis("off") # 关闭图像坐标系plt.show()
结果:
原图:
有不完善,欢迎拍砖~
- Python3在win7下生成云图 学习python过程以及坑
- python学习笔记(1)之如何在python3.x下安装PIL、numpy以及matplotlib
- python 用字符串生成词云图
- Python爬取微博数据生成词云图片
- Python玩转微信 个性签名生成词云图
- python 将QQ聊天记录生成词云图
- R语言的学习-词云图生成
- win7下安装tornado以及python环境
- Python生成词云图,TIIDF方法文本挖掘: 词频统计,词云图
- win7下编译ffmpeg过程生成h264库过程
- win7下编译ffmpeg过程生成h264库过程
- oracle11gR2在win7下安装过程
- python学习——在Python3.6环境下Django连接MySQL
- selective_search的python使用,以及其在python3错误解决
- VB学习过程(一)在win7系统下VB6.0的安装
- win7下VS2010编译python3
- Python 3.x在WIN7下安装
- python在win7下的环境搭建
- GCD相关
- BZOJ3922 Karin的弹幕 [线段树]
- domain、entity和model的package的不同用法?
- Redis实战之多用户聊天室
- AC自动机模板
- Python3在win7下生成云图 学习python过程以及坑
- thinkphp5实战系列(三)入口文件隐藏和url路由优化
- ご馳走になる vs ご馳走する vs ご馳走様でした
- Android ViewPager Fragment 切换刷新数据,解决生命周期只走一次的问题
- 设计模式--观察者模式
- SpringMVC与LogBack集成
- HTML怎么让table表格中的td单元格内容过长显示为固定长度,多余部分用省略号代替?
- bug & 异常 小记集合
- 调优(二) 减少if语句的使用