使用python3.6创建词云
先给大家介绍一些词云在线生成网站:
国外网站
Wordle(http://www.wordle.net/)
WordItOut(https://worditout.com/)
Tagxedo(http://www.tagxedo.com/)
Tagul(https://wordart.com/)
Tocloud(http://www.tocloud.com/)
国内网站
图悦(http://www.picdata.cn/)BDP个人版(https://me.bdp.cn/home.html)
介绍了这么多,既然有在线生成词云的工具,那么我们为什么还要用python 来实现?“Because we can” python版本:3.6.4 用到的库:jieba、PIL、numpy、matplotlib、wordcloud(安装方法自行百度)
背景图
效果图
一、首先使用jieba库对文本进行分词 jieba分词有三种模式:精准模式(默认)、全模式和搜索引擎模式。在本文中我们使用关键词提取法jiepa.analyse,基于TextRank算法的关键词抽取。
jieba.analyse.textrank(l,topK=250,withWeight=True)
- text:代替去的文本
- topK:返回多少个TextRank权重最大的关键词
- withWeight:是否一并返回关键词的权重值
np.array(image)
- 使用nump将图片转化为数组
WordCloud(font_path='simhei.ttf',background_color='White',max_font_size=170,mask=graph)
- font_path:设置字体,注意要设置成支持中文的字体
- background_color:设置生成的词云背景颜色
- max_font_size:设置词云容纳的词量
- mask:设置背景图片
wc.generate_from_frequencies(keyworlds)
- 调用wordcloud中的generate_from_frequencies方法,根据分词的频率创建一个词云
image_color = ImageColorGenerator(graph)
- 使用ImageColorGenerator方法,提取RGB图片的颜色并应用于词云
import jieba.analyse
from PIL import Image,ImageSequence
import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud,ImageColorGeneratorl = ''
f = open('狼图腾.txt','r')
for i in f:l +=f.read()result = jieba.analyse.textrank(l,topK=250,withWeight=True)
keyworlds = dict()
for i in result:keyworlds[i[0]]=i[1]# print(keyworlds)image = Image.open('timg.jpg')
graph = np.array(image)
wc = WordCloud(font_path='simhei.ttf',background_color='White',max_font_size=170,mask=graph)
wc.generate_from_frequencies(keyworlds)
image_color = ImageColorGenerator(graph)
plt.imshow(wc)
plt.imshow(wc.recolor(color_func=image_color))
plt.axis('off')
plt.show()
wc.to_file('1.png') 本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
