前言
人生苦短, 我用 python 学习 python 怎么能不搞一下词云呢是不是( ̀_́)
于是便有了这篇边实践边记录的笔记
环境: VMware 12pro + CentOS7 + Python 2.7.5
安装系统
之前一直用的是 win10 子系统, 现在试试 CentOS,CentOS 官网下载最新系统 dvd 版 安装到 VMware 12pro 网上很多教程例如这个链接等待安装完成后开始
第一个命令
用 Ubuntu 的时候没有的命令会提示你安装, 感觉很简单的事但是到 CentOS 上却变得很头痛
打开终端在执行以下命令安装 python-pip 时提示
sudo yum install python-pip
没有可用软件包 python-pip
google 了一下说是这个包在 EPEL 源里, 要添加 EPEL 源才可以
执行下面两个命令就安装好了
- yum install epel-release.noarch
- yum install python-pip
python 库安装
接下来安装一个词云 wordcloud
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple wordcloud
截取部分提示错误信息
- unable to execute gcc: No such file or directory
- error: command 'gcc' failed with exit status 1
连 gcc 都没有 ( ̀_́) 先安装 gcc
yum install gcc
gcc 装完后继续安装 wordcloud! 又报了下面的错误
_posixsubprocess.c:3:20: 致命错误: Python.h: 没有那个文件或目录
于是需要先安装 python-devel
sudo yum install python-devel# 注意这里不是 python-dev
CentOS 下叫做 python-devel,Ubuntu 下还是叫做 python-dev
wordcloud 安装完毕!
代码
生成词云一份代码, 并且随便找一份英文(我在 ChinaDaily 找的文章 Recruiters starting to employ social media 放到 txt/word.txt 中
- # -*- coding: UTF-8 -*-
- import matplotlib
- # Force matplotlib to not use any Xwindows backend.
- #matplotlib.use('Agg')
- from wordcloud import WordCloud
- textfile = open(u'txt/word.txt','r').read()
- wordcloud = WordCloud(background_color="white",width=800, height=600, margin=5).generate(textfile)
- # width,height,margin 可以设置图片属性
- # generate 可以对全部文本进行自动分词, 但是它对中文支持不好
- #background_color 参数为设置背景颜色, 默认颜色为黑色
- wordcloud.to_file('word.png')
执行命令运行 python clouddemo.py 报错提示
- SyntaxError: Non-ASCII character '\xe5' in file clouddemo.py on line 6,
- but no encoding declared; see http://www.python.org/peps/pep-0263.html for details
原因如下
Python 默认是以 ASCII 作为编码方式的, 如果在 Python 源码中包含了中文(或者其他非英语系的语言), 此时即使你把自己编写的 Python 源文件以 UTF-8 格式保存, 但实际上, 这依然是不行的
解决办法很简单, 只要在文件开头加入下面代码; 指定文件的编码格式为 utf-8 上面的代码我已经加好了(`ω´)
# -*- coding: UTF-8 -*-
编码问题解决了接下来重新运行
还是报错!!!
ImportError: No module named Tkinter
首先 yum list installed | grep ^tk
查看是否存在相应模块, 如果不存在则通过 yum install tkinter 和 yum install -y tk-devel 下载相应模块
重新执行命令提示下一个错误
tkinter.TclError: no display name and no $DISPLAY environment variable
虽然一波 N 折, 但是最后还是成功了!!! 看看源代码目录下的词云图!
效果图如下:
来源: http://www.phperz.com/article/18/0221/361512.html