python通过使用wordcloud我们能够画出词云图,下面简单说下wordcloud的使用包括重复的处理
由于使用pip install直接安装会报错,相关依赖关系,所以这里我直接使用的whl文件来安装
下载地址点这里,选择你所对应的版本。
pip install xxx.whl 安装就行了,下面我们说说使用。
from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator import matplotlib.pyplot as plt import numpy as np f = open('路径','r').read() #这里读入已经使用分隔符分割了的文本 #如果要使用自定义的图片来做背景,使用下面这句导入图片 # alice_coloring = np.array(plt.imread('xxxxx.jpg')) font = r"C:\Windows\Fonts\STZHONGS.TTF" #由于默认不支持中文,这里导入自带的可用字体 wc = WordCloud( background_color='white', #背景设置为白色 font_path=font, #字体 max_words=200, #最大显示的关键词数量 stopwords=STOPWORDS, #使用上面导入停用词表 max_font_size=250, #最大字体 random_state=30, #设置随机状态数,及配色的方案数 height=860, #如果使用默认图片,则可以设置高 margin=2, #图片属性 width=1000, #设置宽 collocations=False, #是否包括两个词的搭配 # mask=alice_coloring #如果使用自定义图片,则导入上面我们读入的numpy类型数据 ) wc.generate_from_text(f) #将词按对应的词频在词云布局图上生成图片使用generate一样,都是使用核心方法generate_from_frequencies # img_colors = ImageColorGenerator(background_Image) #如果要使用自定义图片,这两行也取消注释 # wc.recolor(color_func=img_colors) plt.imshow(wc) #展示 plt.axis("off") #横纵坐标是否显示在图上,一般要关闭 plt.show()
上面已经将常用的基本方法都说了,如果要使用自定义的图片,需要使用黑白、或者颜色区分明显的图片,不然它自带的图形处理,不能将图片处理的很好,我亲自试过很多次。
对于关键词重复的问题,我们可以使用collocations参数来解决,默认collocations=True,我们将它设置为False就行了,具体原理,好像是把相邻的两词算作一个词,比如你的text如果是“苹果 使用 条款 下列 使用 条款”,当collation为True时就会把“使用条款”也当作一个词进行统计。(这个原理是借鉴一位网友的)