Python生成词云

词云在现在有很广泛的应用。尤其是汇总大量文字报告的时候,很容易直接找到主题。利用python的wordcloud库可以简单生成自定义图库的词云
环境:python 3.6
工具:结巴分词库,wordcloud库,matplotlib

import pandas as pd  
import jieba,re  
from scipy.misc import imread  
from wordcloud import WordCloud, ImageColorGenerator,STOPWORDS  
import matplotlib.pyplot as plt  
  
data=pd.read_excel('51jobanaly1.xlsx')#读取Excel转为dabaframe  
df=pd.DataFrame(data)  
nrows=df.shape[0]#获得一共有多少行  
file1=df.岗位职责.dropna(how='any')#去掉空值  
file2=df.岗位要求.dropna(how='any')  
text1=''.join(i for i in file1)#把所有字符串连接成一个长文本  
text2=''.join(i for i in file2)  
responsibility=re.sub(re.compile(',|;|\.|、|。'),'',text1)#去掉逗号等符号  
requirement=re.sub(re.compile(',|;|\.|、|。'),'',text2)  
wordlist1=" ".join(jieba.cut(responsibility,cut_all=True))#分析岗位职责  
#wordlist1=" ".join(jieba.cut(requirement,cut_all=True))#分析岗位要求  
font_path=r'C:\Windows\Fonts\simkai.ttf'  
stopwords = list(STOPWORDS)+['数据','分析','负责','相关','公司','进行','工作']#分析岗位职责  
#stopwords = list(STOPWORDS)+['以上学历','优先','计算','经验','学历','上学','熟练','使用','以上']#分析岗位要求  
bgimg=imread(r'C:\Users\lbship\Desktop\mice.jpg')#设置背景图片  
wc = WordCloud(font_path=font_path,  # 设置字体  
               background_color="white",  # 背景颜色  
               max_words=2000,  # 词云显示的最大词数  
               stopwords = stopwords,        # 设置停用词  
               mask=bgimg,  # 设置背景图片  
               max_font_size=100,  # 字体最大值  
               random_state=42,#设置有多少种随机生成状态,即有多少种配色  
               width=1000, height=860, margin=2,# 设置图片默认的大小,margin为词语边缘距离  
               ).generate(wordlist1)  
image_colors = ImageColorGenerator(bgimg)#根据图片生成词云颜色  
plt.imshow(wc)  
plt.axis("off")  
plt.savefig("examples.jpg")#必须在plt.show之前,不是图片空白  
plt.show()    

效果如下 image