python3 定制词云

翻了一下知乎,发现了以前收藏的制作词云的教程,于是动手试了一下

所需环境:

        1.python3

        2.wordcloud

        python原来就安装了,然后就是Wordcloud,安装方法有三个1.使用pip安装,2.使用whl文件安装,3.使用anaconda安装

我也不知道为什么,我每次用pip都会爆炸(我好绝望啊),然后开始百度,就下载了适合自己电脑及python版本的whl文件进行安装

用anaconda的话还是very方便的,但是我在第二种方法就安装完了,也就没怎么用anaconda


首先,来一段最简单的生成词云的代码(当然,最简单的一般没什么用)

import matplotlib.pyplot as plt#导入画图的库
from wordcloud import WordCloud#词云生成库
import jieba#jieba分词库

text=open("text.txt","r",encoding="utf-8").read(500)#打开所要分析的文本

wordlist=jieba.cut(text,cut_all=True)
wl_space_split=" ".join(wordlist)#使用结巴进行分词并用空格隔开
my_wordcloud=WordCloud().generate(wl_space_split)

plt.imshow(my_wordcloud)
plt.axis("off")
plt.show()#生成词云
因为Wordcloud默认使用的是不支持中文的字体库,所以这段代码只能对英文文本生成词云



上面是传入马丁路德金《i have a dream》得到的效果图


接下来,看一下这两个教程

https://zhuanlan.zhihu.com/p/23453890

http://blog.csdn.net/vivian_ll/article/details/68067574


啊,还是很多地方不懂啊,写不下去了

贴上最后版本的代码

import matplotlib.pyplot as plt#导入画图的库
from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS
import jieba#jieba分词库
import numpy as np
from PIL import Image
import jieba.analyse

#我在程序里用到的文件都是放在和程序同一个文件夹,当然你也可以写文件的绝对路径
text=open("text.txt","r",encoding="utf-8").read(10000000)#打开所要分析的文本
alice_coloring=np.array(Image.open("xiaohuangren.jpg"))#传入图片
wordlist=jieba.cut(text,cut_all=True)
wl_space_split=" ".join(wordlist)#使用结巴进行分词并用空格隔开

jieba.load_userdict("userdict.txt")#导入自定义词典
jieba.analyse.set_stop_words("stopwords.txt")
#,allowPOS=('nb','n','nr', 'ns','a','ad','an','nt','nz','v','d')
tags=jieba.analyse.extract_tags(text,topK=200,withWeight=True,allowPOS=('nb','n','nr', 'ns','a','ad','an','nt','nz','v','d'))#提取关键词


wc = WordCloud(
    font_path=u"C:\Windows\Fonts\simkai.ttf",#修改默认字体库,我这里使用的是Windows里面的楷体,你也可以按这一路径选择喜欢的字体库或者去下载其他字体库
    width=1920,#宽
    height=1080,#高
    margin=5,
    background_color="white",#背景颜色
    max_words=200, #最大词量
    mask=alice_coloring,#设置背景图片
    max_font_size=60,#最大号字体
    #stopwords=STOPWORDS.add("一个")
    )
#wc.generate(wl_space_split)
for word,fre in tags:
    print(word,fre)

keywords=dict(tags)
wc.generate_from_frequencies(keywords)

image_colors = ImageColorGenerator(alice_coloring)

plt.imshow(wc.recolor(color_func=image_colors))
plt.axis("off")
plt.show()#生成词云



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值