# 微博内容分析——词云
def wordcloud(df):
tomato_str = ' '.join(df['内容'])
words_list = [] # 保存词汇的列表
# 分词
word_generator = jieba.cut_for_search(tomato_str)
for word in word_generator:
words_list.append(word) # 将拆分后的词汇添加至列表当中
words_list = [k for k in words_list if len(k) > 2] # 筛选词汇长度大于1的
# words_list.remove('视频')
# words_list.remove('全文')
# words_list.remove('微博')
back_color = imageio.imread('./images/词云背景.jpg') # 读取图片
wc = WordCloud(background_color='white', # 背景颜色
max_words=200, # 最大词数
mask=back_color, # 以该参数值作图绘制词云,这个参数不为空时,width和height会被忽略
max_font_size=300, # 显示字体的最大值
font_path="./images/STFANGSO.ttf", # 字体
random_state=42, # 为每个词返回一个PIL颜色
width=1000, # 图片的宽
height=860 # 图片的长
)
tomato_count = collections.Counter(words_list) # 统计数量
wc.generate_from_frequencies(tomato_count) # 生成词云图
# wc.generate(words_list)
# 保存词云图片
wc.to_file(('./images/微博内容词云.png'))
print('完成!!')
词云图