12行python代码制作中文词云(wordcloud)报告

2019/11 28 21:11
阅读(3770)

利用词云对进文本进行分析,可以很直观的突出出现频率较高的关键词,特别是对于很长的报告或书籍,人工阅读进行总结分析的可能很难抓住重点,也不能很好的量化,可视它。但利用词云进行分析,可以给于出现频率较高的”关键词”予以视频觉的上的突出(颜色和字体大小),对无用的文本信息进行了过滤,可以使阅读者一眼就能读懂报告或文本的主旨。

下面介绍利用python的jieba、wordcloud、imageio库12行代码实现中文词云分析:

 
import jieba
import wordcloud
import imageio
#获取图片的数据信息
mask=imageio.imread(r"C:/Users/python/Desktop/输入图片.jpg")
#打开需要处理的文本文件
f=open(r'C:/Users/python/Desktop/文本.txt','r',encoding='utf-8')
#将文本文件里的内容赋值给变量t
t=f.read()
#关闭文本文件
f.close()
#用结巴库对读取的文本进行分词,生成一个列表。
ls=jieba.lcut(t)
#进行格式转换,将ls列表转换成一个以空格分隔的字符串。
txt=" ".join(ls)
#生成一个自定义格式的词云对象.
w=wordcloud.WordCloud(
	font_path=r'C:\Windows\Fonts\msyh.ttc',#设置词云的字体.
	mask=mask,#文本信息根据之前读取到的图片数据信息进行填充。
	width=800,#设置图片的宽度.
	height=800,#设置图片的高度.
	background_color="white",#设置图片的背景颜色.
	min_font_size=1,#设置图片中最小的字体大小
	max_font_size=12)#设置图片中最大的字体大小
#将文本加载到词云对象中.
w.generate(t)
#输出结果
w.to_file(r'C:\Users\python\Desktop\输出图片.png')

生成的词云图示例:

词云样例

词云wordcloud的参数说明:

 
#字体路径,需要展现什么字体就把该字体路径+后缀名写上,如:font_path = '黑体.ttf'
font_path : string  
#输出的画布宽度,默认为400像素
width : int (default=400) 
#输出的画布高度,默认为200像素
height : int (default=200) 
#词语水平方向排版出现的频率,默认 0.9 (所以词语垂直方向排版出现频率为 0.1 )
prefer_horizontal : float (default=0.90) 
#如果参数为空,则使用二维遮罩绘制词云。如果 mask 非空,设置的宽高值将被忽略,遮罩形状被 mask 取代。
mask : nd-array or None (default=None) 
#按照比例进行放大画布,如设置为1.5,则长和宽都是原来画布的1.5倍
scale : float (default=1) 
#显示的最小的字体大小
min_font_size : int (default=4) 
#字体步长,如果步长大于1,会加快运算但是可能导致结果出现较大的误差
font_step : int (default=1) 
#要显示的词的最大个数
max_words : number (default=200) 
#设置需要屏蔽的词,如果为空,则使用内置的STOPWORDS
stopwords : set of strings or None 
#背景颜色,如background_color='white',背景颜色为白色
background_color : color value (default=”black”) 
#显示的最大的字体大小
max_font_size : int or None (default=None) 
 #当参数为“RGBA”并且background_color不为空时,背景为透明
mode : string (default=”RGB”)
#词频和字体大小的关联性。
relative_scaling : float (default=.5) 
#生成新颜色的函数,如果为空,则使用 self.color_func
color_func : callable, default=None 
#使用正则表达式分隔输入的文本。
regexp : string or None (optional) 
#是否包括两个词的搭配。
collocations : bool, default=True 
#给每个单词随机分配颜色,若指定color_func,则忽略该方法。
colormap : string or matplotlib colormap, default=”viridis” 
#为每个单词返回一个PIL颜色。
random_state : int or None  
#根据词频生成词云。
fit_words(frequencies)  

好了。利用python进行词云分析是不是很简单呢?加上使用不同的图片,可以做出很高大上的词云图。

o郭二爷o原创或整理--转载请注明: http://www.dszhp.com/wordcloud.html

发表回复

欢迎回来 (打开)

(必填)