(一)下载第三方模块
1.wordcloud:它把我们带权重的关键词渲染成词云。
2.jieba:是一个分词模块,因为我是从一个txt文本里提取关键词,所以需要 jieba 来分词并统计词频。如果是已经有了现成的数据,不再需要它。
pip install wordcloud
pip install jieba
3.如果pip install wordcloud按装失败!请复制报错的链接,下载Visual C++2015,安装完毕再使用pip install wordcloud就可以了。
4.生产中文词云包错的解决方法:
从你电脑文件管理系统引入一个支持中文的文件即可!
选择的文件路径:C:/Windows/Fonts/simfang.ttf
(二)WordCloud类的使用
WordCloud构造方法的参数 | 说明 |
---|---|
font_path | 字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path = ‘黑体.ttf’ |
width | 输出的画布宽度,默认为400像素 |
height | 输出的画布高度,默认为200像素 |
prefer_horizontal | 词语水平方向排版出现的频率,默认 0.9 (所以词语垂直方向排版出现频率为 0.1 ) |
mask | 如果参数为空,则使用二维遮罩绘制词云。如果 mask 非空,设置的宽高值将被忽略,遮罩形状被 mask 取代。除全白(#FFFFFF)的部分将不会绘制,其余部分会用于绘制词云。如:bg_pic = imread(‘读取一张图片.png’),背景图片的画布一定要设置为白色(#FFFFFF),然后显示的形状为不是白色的其他颜色。可以用ps工具将自己要显示的形状复制到一个纯白色的画布上再保存。 |
scale | 按照比例进行放大画布,如设置为1.5,则长和宽都是原来画布的1.5倍。 |
min_font_size | 显示的最小的字体大小 |
font_step | 字体步长,如果步长大于1,会加快运算但是可能导致结果出现较大的误差。 |
max_words | 显示的词的最大个数 |
stopwords | 设置需要屏蔽的词,如果为空,则使用内置的STOPWORDS |
background_color | 背景颜色,如background_color=‘white’,背景颜色为白色。 |
max_font_size | 显示的最大的字体大小 |
mode | 当参数为“RGBA”并且background_color不为空时,背景为透明。 |
relative_scaling | 词频和字体大小的关联性 |
color_func | 生成新颜色的函数,如果为空,则使用 self.color_func |
regexp | 使用正则表达式分隔输入的文本 |
collocations | 是否包括两个词的搭配 |
colormap | 给每个单词随机分配颜色,若指定color_func,则忽略该方法。 |
实例演示01
项目结构:
from wordcloud import WordCloud
with open("test.txt" ,encoding="utf-8")as file:
#1.读取文本内容
text=file.read()
#2.设置词云的背景颜色、宽高、字数
wordcloud=WordCloud(font_path="C:/Windows/Fonts/simfang.ttf",
background_color="black",width=600,
height=300,max_words=50).generate(text)
#3.生成图片
image=wordcloud.to_image()
#4.显示图片
image.show()
结果显示:
实例演示02
from wordcloud import WordCloud
import jieba
#1.将字符串切分为单个字符
def chinese_jieba(text):
wordlist_jieba=jieba.cut(text)
space_wordlist=''.join(wordlist_jieba)
return space_wordlist
with open("test.txt" ,encoding="utf-8")as file:
text=file.read()
text=chinese_jieba(text)
wordcloud = WordCloud(font_path="C:/Windows/Fonts/simfang.ttf",
background_color="black", width=600,
height=300, max_words=50,min_font_size=8).generate(text)
image=wordcloud.to_image()
image.show()
结果显示:
实例演示03
下载一张图片作为模板,并在该模板内填写文字。
from wordcloud import WordCloud
import jieba
import numpy
import PIL.Image as Image
#1.将字符串切分
def chinese_jieba(text):
wordlist_jieba=jieba.cut(text)
space_wordlist=" ".join(wordlist_jieba)
return space_wordlist
with open("test.txt" ,encoding="utf-8")as file:
text=file.read()
text=chinese_jieba(text)
#2.图片遮罩层
mask_pic=numpy.array(Image.open("china.jpg"))
#3.将参数mask设值为:mask_pic
wordcloud = WordCloud(font_path="C:/Windows/Fonts/simfang.ttf",mask=mask_pic).generate(text)
image=wordcloud.to_image()
image.show()
结果显示:
学习视频:https://www.365yg.com/a6461455837910008334