-
2020-11-23 04:35:45
以前做词云的时候网上看的python做词云的坑都很多,耗了很多时间才高清楚wordcloud制作词云的精髓和脉络,整理如下。
相关文章
准备Mac环境下直接pip install wordcloud安装
windows环境下依赖c v++和.whl文件,将报错提示的链接复制粘贴到浏览器下载安装VC++,并装好相应的.whl文件
1.词云生成
wordcloud包的基本用法
class wordcloud.WordCloud(font_path=None, width=400, height=200, margin=2, ranks_only=None, prefer_horizontal=0.9,mask=None, scale=1, color_func=None, max_words=200,min_font_size=4,stopwords=None,random_state=None,
background_color='black', max_font_size=None, font_step=1, mode='RGB', relative_scaling=0.5, regexp=None, collocations=True,colormap=None, normalize_plurals=True)
wordcloud的所有参数
font_path : string //字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path = '黑体.ttf'
width : int (default=400) //输出的画布宽度,默认为400像素
height : int (default=200) //输出的画布高度,默认为200像素
prefer_horizontal : float (default=0.90) //词语水平方向排版出现的频率,默认 0.9 (所以词语垂直方向排版出现频率为 0.1 )
mask : nd-array or None (default=None) //如果参数为空,则使用二维遮罩绘制词云。如果 mask 非空,设置的宽高值将被忽略,遮罩形状被 mask 取代。除全白(#FFFFFF)的部分将不会绘制,其余部分会用于绘制词云。如:bg_pic = imread('读取一张图片.png'),背景图片的画布一定要设置为白色(#FFFFFF),然后显示的形状为不是白色的其他颜色。可以用ps工具将自己要显示的形状复制到一个纯白色的画布上再保存,就ok了。
scale : float (default=1) //按照比例进行放大画布,如设置为1.5,则长和宽都是原来画布的1.5倍。
min_font_size : int (default=4) //显示的最小的字体大小
font_step : int (default=1) //字体步长,如果步长大于1,会加快运算但是可能导致结果出现较大的误差。
max_words : number (default=200) //要显示的词的最大个数
stopwords : set of strings or None //设置需要屏蔽的词,如果为空,则使用内置的STOPWORDS
background_color : color value (default=”black”) //背景颜色,如background_color='white',背景颜色为白色。
max_font_size : int or None (default=None) //显示的最大的字体大小
mode : string (default=”RGB”) //当参数为“RGBA”并且background_color不为空时,背景为透明。
relative_scaling : float (default=.5) //词频和字体大小的关联性
color_func : callable, default=None //生成新颜色的函数,如果为空,则使用 self.color_func
regexp : string or None (optional) //使用正则表达式分隔输入的文本
collocations : bool, default=True //是否包括两个词的搭配
colormap : string or matplotlib colormap, default=”viridis” //给每个单词随机分配颜色,若指定color_func,则忽略该方法。
fit_words(frequencies) //根据词频生成词云
generate(text) //根据文本生成词云
generate_from_frequencies(frequencies[, ...]) //根据词频生成词云
generate_from_text(text) //根据文本生成词云
process_text(text) //将长文本分词并去除屏蔽词(此处指英语,中文分词还是需要自己用别的库先行实现,使用上面的 fit_words(frequencies) )
recolor([random_state, color_func, colormap]) //对现有输出重新着色。重新上色会比重新生成整个词云快很多。
to_array() //转化为 numpy array
to_file(filename) //输出到文件
2.Demo1:输入英文文本
# 导入wordcloud模块和matplotlib模块
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from scipy.misc import imread
# 读取一个txt文件
text = open('test1.txt','r').read()
# 读入背景图片
bg_pic = imread('3.png')
# 生成词云
wordcloud = WordCloud(mask=bg_pic,background_color='white',scale=1.5).generate(text)
# image_colors = ImageColorGenerator(bg_pic)
# 显示词云图片
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
词云图
3.Demo2:输入中文文本
和英文词云最大的不同是要设置字体
# -*- coding: utf-8 -*-
__author__ = 'taorui'
# wordcloud 生成中文词云
from wordcloud import WordCloud
import jieba
from scipy.misc import imread
from os import path
import matplotlib.pyplot as plt
# 绘制词云
def draw_wordcloud():
# 读入一个txt文件
comment_text = open('test1.txt','r').read()
# 结巴分词,生成字符串,如果不通过分词,无法直接生成正确的中文词云
cut_text = " ".join(jieba.cut(comment_text))
d = path.dirname(__file__) # 当前文件文件夹所在目录
color_mask = imread("3.jpg") # 读取背景图片
cloud = WordCloud(
# 设置字体,不指定就会出现乱码
font_path="STSONG.TTF",
# 设置背景色
background_color='white',
# 词云形状
mask=color_mask,
#允许最大词汇
max_words=2000,
#最大号字体
max_font_size=40
)
# print(cut_text)
word_cloud = cloud.generate(cut_text) # 产生词云
word_cloud.to_file("3.jpg") # 保存图片
# 显示词云图片
plt.imshow(word_cloud)
plt.axis('off')
plt.show()
if __name__ == '__main__':
draw_wordcloud()
词云图
4.Demo3:输入词频
from os import path
from wordcloud import WordCloud
import matplotlib.pyplot as plt
d = path.dirname(__file__)
frequencies = {u'知乎': 0.1, u'小段同学': 0.4, u'曲小花': 0.3, u'中文分词': 0.1, u'样例': 0.1}
wordcloud = WordCloud(font_path="STSONG.TTF").fit_words(frequencies)
plt.imshow(wordcloud)
plt.axis("off")
plt.show()
词云图
更多相关内容 -
最简单英文词云图
2022-05-11 12:06:56英文词云生成器在正式写代码前需要安装wordcloud库(pip install wordcloud),安装好之后就可以敲代码了
引用WordCloud
from wordcloud import WordCloud
在编辑代码的同目录下创建一个victory.txt,里面存你需要生成词云的英文,代码这里需要注意的是一定要加'utf-8'解码,要不然会出现乱码
if __name__ =='__main__': with open('victory.txt','r',encoding='utf-8') as f: text=f.read() #读取文件中的文本 wordcloud=WordCloud().generate(text) #生成wordcloud对象
img=wordcloud.to_image() #将生成的对象转换成图片的格式 img.show() #展示图片 img.save('victory.png') #保存图片
到这里就最简单的英文词云生成程序就写完了,下次更新中文版的。
-
Python生成英文词云图
2018-04-02 20:18:08Python生成英文词云图 什么是词云? 首先,什么是词云呢?词云又叫文字云,是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据...Python生成英文词云图
什么是词云?
首先,什么是词云呢?词云又叫文字云,是对文本数据中出现频率较高的“关键词”在视觉上的突出呈现,形成关键词的渲染形成类似云一样的彩色图片,从而一眼就可以领略文本数据的主要表达意思。
本文目的:
本篇博客主要介绍利用python的wordcloud包实现生成英文词云。
电脑环境要求:
安装好Pycharm或者Anaconda。建议同时安装Pycharm和Anaconda,并且将Pycharm配置好Anaconda,这样就不用手动安装wordcloud包了,以后也不用安装其他一些常用的包了。
安装Pycharm和Anaconda请参见Pycharm中使用Anaconda。代码实现:
#导入词云的包 from wordcloud import WordCloud #导入matplotlib作图的包 import matplotlib.pyplot as plt #读取文件,返回一个字符串,使用utf-8编码方式读取,该txt文本文件位于此python同以及目录下 #注意:该txt文本文件必须是utf-8编码 f = open(u'NINETEEN EIGHTY-FOUR.txt','r',encoding='utf-8').read() #生成一个词云对象 wordcloud = WordCloud( background_color="white", #设置背景为白色,默认为黑色 width=1500, #设置图片的宽度 height=960, #设置图片的高度 margin=10 #设置图片的边缘 ).generate(f) # 绘制图片 plt.imshow(wordcloud) # 消除坐标轴 plt.axis("off") # 展示图片 plt.show() # 保存图片 wordcloud.to_file('english_ciyun.png')
Pycharm下运行结果:
生成的英文词云图:
参考资料:
-
实战一:手把手教你中英文词云
2019-04-05 10:30:10实战一:手把手教你中英文词云 1.简介 词云是一种数据呈现方式。 2.准备 工具:python 3.6 sublime text 所需安装包: pip install wordcloud matplotlib jieba pillow 3.WordCloud()可选的参数 font_...实战一:手把手教你中英文词云
1.简介
词云是一种数据呈现方式。
2.准备
工具:python 3.6 sublime text
所需安装包:
pip install wordcloud matplotlib jieba pillow
3.WordCloud()可选的参数
font_path:可用于指定字体路径,包括otf和ttf
width:词云的宽度,默认为400
height:词云的高度,默认为200
mask:蒙版,可用于定制词云的形状
min_font_size:最小字号,默认为4
max_font_size:最大字号,默认为词云的高度
max_words:词的最大数量,默认为200
stopwords:将被忽略的停用词,如果不指定则使用默认的停用词词库
background_color:背景颜色,默认为black
mode:默认为RGB模式,如果为RGBA模式且background_color设为None,则背景将透明
4.英文词云
# _*_ coding:utf-8 _*_ # 进行英文词云生成 from wordcloud import WordCloud import matplotlib.pyplot as plt path = 'D://BaiduNetdiskDownload//深度有趣人工智能//实战一 词云的使用//' # 打开文本 text = open(path + 'source//constitution.txt').read() # 生成对象 wc = WordCloud().generate(text) # 显示词云 plt.imshow(wc,interpolation='bilinear') plt.axis('off') plt.show() # 保存到文件 wc.to_file(path + 'create_images//wordcloud1.png')
由于英文单词之间有空格,所以不需要额外的处理。
5.中文分词
(1)不分词的效果
这里以西游记为例
# _*_ coding:utf-8 _*_ # 中文不分词效果展示 from wordcloud import WordCloud import matplotlib.pyplot as plt path = 'D://BaiduNetdiskDownload//深度有趣人工智能//实战一 词云的使用//' # 打开文本 text = open(path + 'source//xyj.txt',encoding = 'UTF-8').read() # 生成对象 wc = WordCloud(font_path='Hiragino.ttf', width=800, height=600, mode='RGBA', background_color=None).generate(text) # 显示词云 plt.imshow(wc,interpolation='bilinear') plt.axis('off') plt.show() # 保存到文件 wc.to_file(path + 'create_images//wordcloud2.png')
(2)中文分词效果
这里用jieba进行中文分词
# _*_ coding:utf-8 _*_ # 中文分词后的词云 from wordcloud import WordCloud import matplotlib.pyplot as plt import jieba path = 'D://BaiduNetdiskDownload//深度有趣人工智能//实战一 词云的使用//' # 打开文本 text = open(path + 'source//xyj.txt',encoding = 'UTF-8').read() # 中文分词 text = ' '.join(jieba.cut(text)) print(text[:100]) # 生成对象 wc = WordCloud(font_path='Hiragino.ttf', width=800, height=600, mode='RGBA', background_color=None).generate(text) # 显示词云 plt.imshow(wc,interpolation='bilinear') plt.axis('off') plt.show() # 保存到文件 wc.to_file(path+'create_images//wordcloud3.png')
(3)使用蒙版
这里将mask翻译为蒙版,使用蒙版之后,可以根据提供的蒙版图片,生成指定形状的的词云
# _*_ coding:utf-8 _*_ # 使用蒙版 from wordcloud import WordCloud from PIL import Image import numpy as np import matplotlib.pyplot as plt import jieba path = 'D://BaiduNetdiskDownload//深度有趣人工智能//实战一 词云的使用//' # 打开文本 text = open(path+'source//xyj.txt',encoding='utf-8').read() # 中文分词 text = ''.join(jieba.cut(text)) print(text[:100]) # 生成对象 mask = np.array(Image.open(path+"source//black_mask.png")) wc = WordCloud(mask=mask,font_path='Hiragino.ttf', width=800, height=600, mode='RGBA', background_color=None).generate(text) # 显示词云 plt.imshow(wc,interpolation='bilinear') plt.axis('off') plt.show() # 保存到文件 wc.to_file(path+"create_images//wordcloud4.png")
(4)从蒙版中抽取颜色
# _*_ coding:utf-8 _*_ # 词云的颜色从蒙版中抽取 from wordcloud import WordCloud,ImageColorGenerator from PIL import Image import numpy as np import matplotlib.pyplot as plt import jieba path = 'D://BaiduNetdiskDownload//深度有趣人工智能//实战一 词云的使用//' # 打开文本 text = open(path+'source//xyj.txt',encoding='utf-8').read() # 中文分词 text = ''.join(jieba.cut(text)) print(text[:100]) # 生成对象 mask = np.array(Image.open(path+"source//color_mask.png")) wc = WordCloud(mask=mask,font_path='Hiragino.ttf', width=800, height=600, mode='RGBA', background_color=None).generate(text) # 从图片中生成颜色 image_colors = ImageColorGenerator(mask) wc.recolor(color_func=image_colors) # 显示词云 plt.imshow(wc,interpolation='bilinear') plt.axis('off') plt.show() # 保存到文件 wc.to_file(path+"create_images//wordcloud5.png")
6.实战一:手把手教你中英文词云
项目链接:链接: https://pan.baidu.com/s/1p-QFD3WchxrvIlCnGuexKQ 提取码: zhcf
-
WordCloud 中英文词云图绘制
2019-06-09 17:10:06本文将介绍常见的英文和中文文本的词云图绘制,以及 Frequency 频词频词云图。 这篇文章中详细说明各种形式的词云图绘制步骤。 1. 英文词云 我们先绘制英文文本的词云图,因为它相对简单一些。这里以《海上..... -
实战一:中英文词云
2019-06-09 16:48:26实战一:中英文词云 1.简介 词云,又称文字云,由词汇组成类似云的彩色图形。词云是一种数据呈现方式,用于展示大量文本数据。 2.准备 工具:Anaconda+Pycharm 所需安装包: pip install wordcloud ... -
Wordcloud中英文词云生成器WCM_V2.0升级版
2016-08-26 16:23:50词云生成器,支持中英文,注意:输出时要写图片文件的拓展名 版本更新:新加菜单, 新功能:按词频和词阶排序, 新链接:网上词云制作链接。 可在软件中发邮件联系作者。 -
Python英文词云wordcloud制作
2018-07-16 20:00:43最近有对词云产生兴趣,所以对他人的代码进行了一些改良(由于BUG和使用方式不太合意)从而达到了词云制作的目的 #导入wordcloud模块和matplotlib模块 import wordcloud as WD import matplotlib.pyplot as plt ... -
中英文词云生成器EXE
2016-08-22 16:55:26词云生成器,支持中英文,注意:输出时要写图片文件的拓展名 -
NLP:实现中文词云、英文词云、不同形状的词云等.zip
2022-04-21 16:47:42实现中文词云、英文词云、不同形状的词云等 建立词云貌似有两种方式:一种是直接传入文本,另一种传入词和对应的出现次数(本项目使用第二种方式) -
英语词云绘制
2020-06-11 20:17:04在数据的探索性分析过程中,对于数值型数据集,我们...这一节,我们对英文文本绘制词云。由于英文文本是以空格来分开的,所以不需要做分词处理,可以直接绘制词云。在绘制词云的时候,我们可以找一些模板,直接套用过 -
如何使用 Python 制作词云(Word Cloud)-英文词云篇
2020-11-20 23:48:27wordcloud 安装报错与解决虽然网络上也有各种工具可以一键生成词云,但是使用Python制作词云感觉是一件很酷的事情。作为一个 Python 小白,使用 Python 的过程并不那么轻松。比如最最基础的,用Python 制作词云需要... -
python3绘制Alice背景中英文词云
2019-04-14 17:15:19python3绘制含中英文的txt文件的词云,需要pip安装PIL,numpy,matplotlib,wordcloud模块实测有效。 -
通过英文txt文本通过分析词频得到英文词云图
2021-10-04 14:50:32通过自定义的背景图片和设置停用词以及自定义颜色字体等得到英文词云图片,代码包含详细注释 -
WordCloud 中英文词云图绘制,看这一篇就够了
2019-09-26 19:11:16作者 | 苏克1900 来源 | 高级农民工 摘要: 当我们手中有一篇文档,比如书籍...本文将介绍常见的英文和中文文本的词云图绘制,以及 Frequency 频词频词云图。 接下来,将详细说明各种形式的词云图绘制步骤。 ... -
中英文词云
2021-12-11 16:11:01width:词云的宽度,默认为400 height:词云的高度,默认为200 mask:蒙版,可用于定制词云的形状 min_font_size:最小字号,默认为4 max_font_size:最大字号,默认为词云的高度 max_words:词的最大数量,默认为... -
文本挖掘之WordCloud+Python3快速生成中英文词云图
2019-03-18 12:21:03引言: “词云”,又称文字云,是由词汇组成类似云的彩色图形。可对网络文本中出现频率较高的“关键词”予以视觉上的突出,形成"关键词云层"或"关键词渲染",从而过滤掉大量的... -
手把手教你制作中英文词云_英文.py
2018-10-19 11:18:46process_text(text) //将长文本分词并去除屏蔽词(此处指英语,中文分词还是需要自己用别的库先行实现,使用上面的 fit_words(frequencies) ) recolor([random_state, color_func, colormap]) //对现有输出重新着色... -
Python+wordcloud十分钟学会生成英文词云
2020-11-22 16:03:12基于python生成的wordcloud词云在这两年一直都热门...本篇我们讲解的是如何制作英文词云,下一期我们将给大家带来如何制作中文词云,敬请期待!快速生成词云from wordcloud import WordCloudf = open(u'txt/AliceEN... -
基于python生成英文版词云图代码实例
2020-09-16 21:06:09主要介绍了基于python生成英文版词云图代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
做词云与词频统计(中英文词云与中英文词频统计)的区别
2019-02-14 22:55:31英文词云: from wordcloud import WordCloud with open(r'Englishfilepath', 'r', encoding='utf-8') as file: text = file.read() wordcloud = WordCloud(background_color="white", \ width=800, \ height=600, ... -
3分钟教你用python制作一个简单词云
2020-11-20 23:48:27首先需要安装三个包:# 安装:pip install matplotlib# 安装:...制作英文字母的词云效果图:代码实现:import matplotlib.pyplot as pltimport jiebafrom wordcloud import WordCloud# 1.读入txt文本数据text = op... -
基于python的词云(英文内容)生成
2018-03-13 08:45:29基于python的词云生成(一) 1.背景 前段时间网络中出现很多关于很多文字组成的图片,生成的图片看起来还是挺有意思,这里使用python做出词云图片。其中需要解释的是:词云又叫文字云,是对文本数据中出现... -
skpaint matchcharacter 不能显示英文_PythonWordCloud: 中英文词云图
2020-11-24 22:25:20作者: 苏克1900,专注爬虫、数据分析与可视化。...本文将介绍常见的英文和中文文本的词云图绘制,以及 Frequency 频词频词云图。写在前面:由于文中有一些超链接,无法在公众号打开,建议点击底部... -
Python + wordcloud 十分钟学会生成英文词云
2020-11-20 23:48:15基于python生成的wordcloud词云在这两年一直都热门...本篇我们讲解的是如何制作英文词云,下一期我们将给大家带来如何制作中文词云,敬请期待!快速生成词云from wordcloud import WordCloudf = open(u'txt/AliceEN...