12行python代码制作中文词云(wordcloud)报告
2019/11
28
21:11
阅读(4884)
阅读(4884)
利用词云对进文本进行分析,可以很直观的突出出现频率较高的关键词,特别是对于很长的报告或书籍,人工阅读进行总结分析的可能很难抓住重点,也不能很好的量化,可视它。但利用词云进行分析,可以给于出现频率较高的”关键词”予以视频觉的上的突出(颜色和字体大小),对无用的文本信息进行了过滤,可以使阅读者一眼就能读懂报告或文本的主旨。
下面介绍利用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原创或整理--转载请注明: https://www.dszhp.com/wordcloud.html
发表回复