首先 如何安装wordcloud
这是在大神推荐的 wordcloud 库 使用很方便
github:https://github.com/amueller/word_cloud
官方地址:https://amueller.github.io/word_cloud/
1.前提是你得安装了wordcloud库才能使用 我使用的window环境
首先 到http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
我选择下载使用的是最后一个,那么如何安装到anaconda中呢?
在本机上找到:
打开之后:你得先进入这个.whl文件所在的位置,我是放在了D:\anaconda\myself-wordcloud文件夹下面,具体你去找自己下载放到了那里!!
注意 一定是你下载的文件名 是pip install XXXX.whl 不要直接复制我的哦
pip install wordcloud-1.3.1-cp36-cp36m-win_and64.whl
如何验证安装成功了呢 ?
我们测试一下 是否能行
# -*- coding: utf-8 -*-
from wordcloud import WordCloud
f = open(u'my_test1.txt','r').read()
#我们是从my_text.txt中读取文本的内容
wordcloud = WordCloud(background_color="white",width=1000, height=860, margin=2).generate(f)
# 我们可以对生成的词云的图片 设置width,height,margin属性
# generate 可以对全部文本进行自动分词,但是他对中文支持不好,所以我们使用英文测试
#wordcloud = WordCloud(font_path = r'D:\Fonts\simkai.ttf').generate(f)
# 你可以通过font_path参数来设置字体集
#background_color参数为设置背景颜色,默认颜色为黑色
import matplotlib.pyplot as plt
plt.imshow(wordcloud)
plt.axis("off")
plt.show()
wordcloud.to_file('my_test1.png')
# 保存图片
这样我们的第一个词云就OK啦!!!
2017.10.2
上面的教程都是基于Windows的, 后来渐渐的使用上了linux操作系统,同样的安装了一遍也是没有问题的。
conda list
发现存在wordcloud这个包,成功。
GitHub—-WordCloud 代码练手 包含结果图片
wordcloud的一下参数的详细用法
以上的教程都是基于英文的,中国文化博大精深,中文分词是有一定的难度。
jiaba官方介绍
中文分词jiaba的库Github代码
1.首先到上面的github网上去下载 jieba的包
官网上提供了几种安装方式 这里选择最简单的安装方式:
直接将下载好的jieba目录放到环境的指定位置,这里存放的是咱们的各种第三方的类库。
/xxx/xxx/python3.6/lib/site-packages/
这里 要注意我们由于liunx的环境内注重文件权限的安全,我们应该将文件的权限提高,不然会报没有模块内的某个属性这样的错误。
chmod -R 644 jieba
2.由于wordcloud是默认英文的,所有为了支持中文呢,必须导入中文字体的文件,这里提供了两个。
3.运行代码,现在是火热的十九大正在召开,那么我们在网上选取了一些报道的文章,来测试一下我们的功能。
#wordcloud生成中文词云
from wordcloud import WordCloud
import codecs
import jieba.finalseg
#import jieba.analyse as analyse
from scipy.misc import imread
import os
from os import path
import matplotlib.pyplot as plt
from PIL import Image, ImageDraw, ImageFont
# 绘制词云
def draw_wordcloud():
#读入一个txt文件
comment_text = open('test2.txt','r').read()
#结巴分词,生成字符串,如果不通过分词,无法直接生成正确的中文词云
cut_text = " ".join(jieba.cut(comment_text))
d = path.dirname(__file__) # 当前文件文件夹所在目录
color_mask = imread("bj.jpg") # 读取背景图片
cloud = WordCloud(
#设置字体,不指定就会出现乱码
font_path="hwxk.ttf",
#font_path=path.join(d,'simsun.ttc'),
#设置背景色
background_color='white',
#词云形状
mask=color_mask,
#允许最大词汇
max_words=2000,
#最大号字体
max_font_size=40
)
word_cloud = cloud.generate(cut_text) # 产生词云
word_cloud.to_file("pjl_cloud5.jpg") #保存图片
# 显示词云图片
plt.imshow(word_cloud)
plt.axis('off')
plt.show()
if __name__ == '__main__':
draw_wordcloud()
运行的两种不同的效果图如下: