Python3 装逼神器---词云(wordcloud)

词云 (Word Cloud)是对文本中出现频率较高的词语给予视觉化展示的图形, 是一种常见的文本挖掘的方法。

实例:

    

 

 依赖包:

  # pip3 install wordcloud  jieba   matplotlib  imageio

 

 wordcloud 模块介绍:

class wordcloud.WordCloud(   font_path=None, #(string)字体OTF or TTF路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path = '黑体.ttf'   width=400,#(int)输出画布的宽度,默认400像素   height=200,(int) #输出画布的宽度,默认200像素   margin=2, #(int)画布边缘留白的空隙,默认留白空间是2像素   ranks_only=None,   prefer_horizontal=0.9, #(float)词语水平方向排版出现的频率,默认 0.9 ,所以词语垂直方向排版出现频率为 0.1   mask=None, #(nd-array or None) 是否使用mask(蒙板),默认不使用。若使用mask,则需提供一个二值化的mask(即只有0和1的黑白色mask),此时参数width和height会被忽略,单词会出现在mask非白色(#FFFFFF)的位置上。   scale=1, #(float)在字段width和height乘以的倍数,最终呈现的画布尺寸以这个结果。默认是1,此方法适合需要呈现大尺寸的画布   color_func=None,#(callable)生成新颜色的函数,默认为空。如果为空,则使用 self.color_func   max_words=200, #(int)单词最多显示数量,默认200个   min_font_size=4, #(int)单词最小尺寸,默认4像素   stopwords=None,#(set of strings or None)设置需要屏蔽展示的词,如果为空,则使用内置的STOPWORDS。若使用generate_from_frequencies生成方式,则会忽略此参数   random_state=None, #(int or None)为每个单词返回一个PIL颜色   background_color='black', #(string)输出画布背景颜色,默认黑色   max_font_size=None, #(int)单词最大尺寸,默认不限制   font_step=1,#(int)字体步长,默认1。如果步长大于1,会加快运算但是可能导致结果出现较大的误差(这块确实不知道啥意思)   mode='RGB', #(string) 颜色显示模式,默认”RGB”。当参数为“RGBA”并且background_color是None时,背景色为透明   relative_scaling='auto', #(float)词频和字体大小的关联性(倍数)。默认是auto,即为0.5。若为0,只考虑单词的排列顺序;若为1,则单词展现的大小和出现的频率一致;若两者都考虑则可以设置为auto。若参数repeat=True,则此项为0   regexp=None, #(string or None (optional))把文本切片的通用方法。若为空,则使用正则匹配r"\w[\w'];若使用generate_from_frequencies生成方式,则忽略此参数   collocations=True,#(bool) 是否包含两个单词的搭配性,默认包含。若使用generate_from_frequencies生成方式,则忽略此参数   colormap=None, #(string or matplotlib colormap)给每个单词随机分配颜色或者使用Matplotlib调色板,默认颜色是”viridis”即翠绿色。若使用了参数color_func,则忽略此项   normalize_plurals=True, #(bool)是否去掉单词末尾的‘s’,默认去掉。若为真,并且单词以‘s’结尾(若以‘ss’结尾则不符合此规则),‘s’会被去除并且去除后的单词出现的频率会被统计。若使用generate_from_frequencies生成方式,则忽略此参数   contour_width=0, #(float)mask轮廓线宽。若mask不为空且此项值大于0,就绘制出mask轮廓 (default=0)   contour_color='black', #(color value) Mask轮廓颜色,默认黑色   repeat=False #(bool)单词是否重复展示,默认不重复 )

 

 

程序代码:

import jieba #jieba分词 import matplotlib.pyplot as plt #绘制图形 from imageio import imread #处理图像 from wordcloud import WordCloud,ImageColorGenerator #词云 #文本获取,利用jieba分词获取文本中的词 file=open('input.txt',encoding='UTF-8').read() #注意在指定路径中导入文本文件 word=' '.join(jieba.cut_for_search(file)) #词云背景图像获取 image=imread('test.jpg') # 解析该图片,注意在路径中导入图片 #词云设置 wc=WordCloud( mode='RGBA', #设置透明底色 background_color=None, mask=image, #词云形状设置为背景图像 max_words=100, #显示的词的最大个数 #font_path="C:\\Windows\\Fonts\\STFANGSO.ttf", #设置字体,否则中文可能会出现乱码 scale=3 #扩大三倍 ) #生成词云 image_colors = ImageColorGenerator(image) # 基于背景颜色设置字体色彩 wc.generate(word) #根据文本生成词云 #显示 plt.imshow(wc) #显示词云图 plt.axis("off") #关闭坐标轴 plt.show() #显示窗口 wc.to_file('test.png') # 保存图片

 


__EOF__

本文作者语 默
本文链接https://www.cnblogs.com/weijie0717/p/15123673.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   语~默  阅读(571)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言
点击右上角即可分享
微信分享提示