python给乘风破浪的姐姐制作词云打call图

上一篇python爬取乘风破浪的姐姐弹幕–芒果TV爬虫,将乘风破浪的姐姐前四集的弹幕全部爬下来之后,可以为小姐姐们做一个词云打call图

import json
import pandas as pd
from wordcloud import WordCloud, ImageColorGenerator
import imageio
import seaborn as sns
import matplotlib.pyplot as plt
import jieba
import collections # 词频统计库
#画1个词云图
def get_photo(name):
    
    #设置停止词
    stop_words = []    
    with open(r"/Users/nika/Desktop/chineseStopWords.txt") as f:
        lines = f.readlines()
        for line in lines:
            stop_words.append(line.strip())
    #自定义停止词
    my_stop_words = ['第一期', '一堆', '三个', '真的', '哈哈哈', '哈哈哈哈', '啊啊啊']    
    stop_words.extend(my_stop_words)  
    
    #分词
    dff_sel = dff[dff.content.str.contains(name)]
    seg_list_exact = jieba.cut(dff_sel['content'].str.cat(sep='。'), cut_all=False) # 精确模式分词
    object_list = []
    for word in seg_list_exact: # 循环读出每个分词
        if word not in stop_words: # 如果不在去除词库中
            object_list.append(word) # 分词追加到列表

    word_counts = collections.Counter(object_list) # 对分词做词频统计
    
    #读取背景图片
    re_pic='/Users/nika/Desktop/jiejie/'+name+'.png'
    mk = imageio.imread(re_pic)
    wordcloud = WordCloud(background_color='white',
                          #设置字体为中文字体!!!
                          font_path="/Library/Fonts/Songti.ttc",
                          #设置清晰度
                          scale=15,mask=mk,stopwords=stop_words).generate_from_frequencies(word_counts) # 从字典生成词云
    image_colors = ImageColorGenerator(mk)
    #将图片颜色应用到词云中
    wc_color = wordcloud.recolor(color_func=image_colors)
    new_pic='/Users/nika/Desktop/jiejie/'+'new_'+name+'.png'
    #保存图片
    wc_color.to_file(new_pic)
    plt.imshow(wc_color)

这里我提前下载了每个姐姐的白底图片,并以 姐姐姓名+“.png” 保存在了桌面的“jiejie”文件夹里,生成的词云图就以’new_’+姐姐姓名+’.png’保存在同一个文件夹。大家可以根据需求自行修改哈

#搞一下静姐试试
name='宁静'
get_photo(name)

python给乘风破浪的姐姐制作词云打call图_第1张图片

没什么问题,就给每个姐姐都做一张吧

my_words_list =['袁咏琳','朱婧汐','钟丽缇','王智','沈梦辰','陈松伶','阿朵','白冰','海陆','刘芸','孟佳','金莎','伊能静','王霏霏','许飞','张萌',
                '黄龄','吴昕','金晨','王丽坤','李斯丹妮','蓝盈莹','张含韵','郑希怡','宁静','郁可唯','黄圣依','丁当','万茜','张雨绮']
for name in my_words_list:
    get_photo(name)

下面为大家表演一个端水





























你可能感兴趣的:(python)