欢迎访问我的个人博客:原文链接

前言

人生苦短,我用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折,但是最后还是成功了!!!看看源代码目录下的词云图!

效果图如下:

从CentOS安装完成到生成词云python学习日记的更多相关文章

  1. 根据词频生成词云(Python wordcloud实现)

    网上大多数词云的代码都是基于原始文本生成,这里写一个根据词频生成词云的小例子,都是基于现成的函数. 另外有个在线制作词云的网站也很不错,推荐使用:WordArt 安装词云与画图包 pip3 insta ...

  2. Python3+pdfminer+jieba+wordcloud+matplotlib生成词云(以深圳十三五规划纲要为例)

    一.各库功能说明 pdfminer----用于读取pdf文件的内容,python3安装pdfminer3k jieba----用于中文分词 wordcloud----用于生成词云 matplotlib ...

  3. python 基于 wordcloud + jieba + matplotlib 生成词云

    词云 词云是啥?词云突出一个数据可视化,酷炫.以前以为很复杂,不想python已经有成熟的工具来做词云.而我们要做的就是准备关键词数据,挑一款字体,挑一张模板图片,非常非常无脑.准备好了吗,快跟我一起 ...

  4. wordcloud + jieba 生成词云

    利用jieba库和wordcloud生成中文词云. jieba库:中文分词第三方库 分词原理: 利用中文词库,确定汉字之间的关联概率,关联概率大的生成词组 三种分词模式: 1.精确模式:把文本精确的切 ...

  5. 已知词频生成词云图(数据库到生成词云)--generate_from_frequencies(WordCloud)

    词云图是根据词出现的频率生成词云,词的字体大小表现了其频率大小. 写在前面: 用wc.generate(text)直接生成词频的方法使用很多,所以不再赘述. 但是对于根据generate_from_f ...

  6. Python 情人节超强技能 导出微信聊天记录生成词云

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: Python实用宝典 PS:如有需要Python学习资料的小伙伴可 ...

  7. 【python】itchat登录微信获取好友签名并生成词云

    在知乎上看到一篇关于如何使用itchat统计微信好友男女比例并使用plt生成柱状图以及获取微信好友签名并生成词云的文章https://zhuanlan.zhihu.com/p/36361397,感觉挺 ...

  8. Python统计excel表格中文本的词频,生成词云图片

    import xlrd import jieba import pymysql import matplotlib.pylab as plt from wordcloud import WordClo ...

  9. 【python3】爬取简书评论生成词云

    一.起因: 昨天在简书上看到这么一篇文章<中国的父母,大都有毛病>,看完之后个人是比较认同作者的观点. 不过,翻了下评论,发现评论区争议颇大,基本两极化.好奇,想看看整体的评论是个什么样, ...

随机推荐

  1. C++每次读取一行字符串输入(学习笔记) (转)

    1. 面向行的输入:getline()getline()函数读取整行,它使用通过回车键输入的换行符来确定输入结尾. cin.getline(Arr, 20) // Arr为用来输入行的数组的名称:   ...

  2. 什么是GUID?

    定义及格式 1.全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符.GUID主要用于在拥有多个节点.多台计算机的网络或系 ...

  3. Java 递归调用 recursive 给一个参数 返回一大堆

    需求: 需要组装成对象多层嵌套式的 json字符串; 想到使用 递归来完成这个多层嵌套: 憋了四个小时,终于写出来了; 先看效果: 数据库中的数据: 拼装后的效果: [ EmpVO{ ename='孙 ...

  4. C# 剪贴板中文乱码问题

    最近写了个小工具.主要功能是生成一些数据,然后一键复制,最终粘贴到需要的地方. 本来一切正常的,可是当把工具拿给朋友使用时,却被告知粘贴出来的数据是乱码.当时第一时间想到是区域问题(朋友是台湾人),不 ...

  5. 从json_encode过来的的字符串被返回到html页面时的解析

    在工作过程中经常需要向服务器请求数据.在需要返回多个值的时候,使用json_encode处理数组然后返回是很常用的做法.如果没有指定返回数据类型的情况下,默认返回的是json格式的字符串.那么需要将这 ...

  6. 2456: mode

    2456: mode Time Limit: 1 Sec  Memory Limit: 1 MBSubmit: 4798  Solved: 2009[Submit][Status][Discuss] ...

  7. Tempter of the Bone

    Problem Description The doggie found a bone in an ancient maze, which fascinated him a lot. However, ...

  8. inotify+rsync实现实时同步

    第1章 数据实时同步介绍 1.1 什么是实时同步:如何实现实时同步 A. 要利用监控服务(inotify),监控同步数据服务器目录中信息的变化 B. 发现目录中数据产生变化,就利用rsync服务推送到 ...

  9. css3 滚动条出现 页面不跳动

    .wrap-outer { margin-left: calc(100vw - 100%); }   .wrap-outer { padding-left: calc(100vw - 100%); } ...

  10. Problem I: STL——多重集的插入和删除

    Problem I: STL--多重集的插入和删除 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 1729  Solved: 1258[Submit][ ...