王力宏事件終于得到回應(yīng),教你用Python分析

大家好,我是查理~

昨晚,剛剛王力宏終于回應(yīng)了。

今天干脆手把手教大家如何數(shù)據(jù)處理+可視化他的微博評(píng)論,下載完整代碼/數(shù)據(jù)見文末。


12月15日,王力宏在微博突然宣布離婚,表示“靚蕾和我的私生活很簡(jiǎn)單很單純,所以不會(huì)再回應(yīng)任何媒體”,結(jié)束了8年的婚姻。

12月17日深夜,王力宏前妻李靚蕾突然發(fā)文,表示長(zhǎng)期被王力宏及其家人羞辱和冷暴力,同時(shí)還曝出王力宏婚內(nèi)出軌、私生活混亂等不為人知的事件,使得王力宏多年來的“優(yōu)質(zhì)男星”形象岌岌可危。

文章一經(jīng)發(fā)出,引發(fā)熱議,王力宏長(zhǎng)期以來的“優(yōu)質(zhì)偶像”形象備受質(zhì)疑,不少網(wǎng)友在李靚蕾的微博下留言表示,“好難過,太失望了”“王力宏在我心中的形象坍塌了”。

今天就帶大家用數(shù)據(jù)——吃吃瓜。


我使用Python編程,爬取王力宏宣布離婚的微博下的評(píng)論。

下載的csv文件中包括用戶名、用戶id、評(píng)論創(chuàng)建時(shí)間、評(píng)論id、評(píng)論內(nèi)容等。

如上圖所示,原始數(shù)據(jù)中的內(nèi)容非?;靵y,微博評(píng)論中夾雜大量表情包、話題以及“轉(zhuǎn)發(fā)微博”等等,需要進(jìn)行數(shù)據(jù)清洗。

首先根據(jù)評(píng)論的唯一ID進(jìn)行去重

df_1 = df_1.drop_duplicates(['idstr']).iloc[:,1:]

接著,對(duì)所有的微博評(píng)論按照小時(shí)計(jì)數(shù)

df_1['created_date'] = pd.to_datetime(df_1['created_date'])df_1_date = df_1.groupby([pd.Grouper(key='created_date',freq='H')]).size().reset_index(name='count')

得到分時(shí)數(shù)據(jù)后,就可以使用Matplotlib繪制折線圖。

columns = df_date.columnsfig = plt.figure(figsize=(10, 5), dpi=100)plt.fill_between(df_date['created_date'].values, y1=df_date['count_x'].values, y2=0,                 label='王力宏微博新增評(píng)論數(shù)/小時(shí)', alpha=0.75, facecolor="#43a9cb", linewidth=1, edgecolor='k')plt.xlabel("Date")plt.ylabel("Value")plt.legend(loc='upper right')plt.show()fig.savefig('王力宏.png')

輸出結(jié)果如下所示

15日時(shí)剛剛發(fā)布微博,瞬間引爆評(píng)論,火速上熱搜。

16、17日便沒有什么評(píng)論了。

直到昨晚23點(diǎn),前妻李靚蕾深夜發(fā)文后,群眾們趕緊沖過來開團(tuán)。

PS:除了吃瓜群眾,速度最快的應(yīng)該是英菲尼迪。

12月16日14時(shí),豪華汽車品牌英菲尼迪才剛剛官宣王力宏成為品牌代言人。18日凌晨1點(diǎn)22分,微博名為@英菲尼迪中國 便發(fā)布聲明英菲尼迪決定即日起終止與王力宏先生的合作關(guān)系。英菲尼迪從和他簽約到解約,僅有35小時(shí)。


如果我們將王力宏和李靚蕾的微博評(píng)論數(shù)量,放在一張圖會(huì)是什么樣子呢?

正好我也爬了李靚蕾的微博評(píng)論,同樣進(jìn)行數(shù)據(jù)處理后

columns = df_date.columnsfig = plt.figure(figsize=(10, 8), dpi=100)plt.fill_between(df_date['created_date'].values, y1=df_date['count_x'].values, y2=0,                 label='王力宏微博新增評(píng)論數(shù)/小時(shí)', alpha=0.75, facecolor="#43a9cb", linewidth=1, edgecolor='k')plt.fill_between(df_date['created_date'].values, y1=df_date['count_y'].values, y2=0,                 label='李靚蕾微博新增評(píng)論數(shù)/小時(shí)', alpha=0.75, facecolor="#b7ba6b", linewidth=1, edgecolor='k')plt.xlabel("Date")plt.ylabel("Value")plt.legend(loc='upper left')plt.show()

輸出結(jié)果如下所示:

相比之下,王力宏這邊的評(píng)論就根本不是一個(gè)量級(jí),顯得是“弟中之弟”了。

吃瓜群眾原來全部涌向了李靚蕾的微博


這次我們還是想盤點(diǎn)一下:群眾們開團(tuán)后,都發(fā)了些什么?

與之前文章傳統(tǒng)的詞云圖不一樣,我打算玩點(diǎn)新東西。在前文中制作的折線面積圖中,將不同時(shí)間段的詞云填充其中。

很多小伙伴比較好奇怎么做的,其實(shí)就是ps將前文的折線圖和生成的詞云圖層疊加。如果你要問Python能不呢做到圖層覆蓋,我的回答是可以但沒必要。

做詞云圖前,需要將所有王力宏的微博評(píng)論分成兩部分(即前妻開錘前后),注意下方代碼中以2021-12-17 23:08:00"為界。

def get_cut_words(content_series):    # 讀入停用詞表    import jieba     stop_words = []     with open("stop_words.txt", 'r', encoding='utf-8') as f:        lines = f.readlines()        for line in lines:            stop_words.append(line.strip())    # 添加關(guān)鍵詞    my_words = ['分分合合', '拉黑']          for i in my_words:        jieba.add_word(i)     # 自定義停用詞    my_stop_words = ['快轉(zhuǎn)','轉(zhuǎn)發(fā)','微博']        stop_words.extend(my_stop_words)                   # 分詞    word_num = jieba.lcut(content_series.str.cat(sep='。'), cut_all=False)    # 條件篩選    word_num_selected = [i for i in word_num if i not in stop_words and len(i)>=2]        return word_num_selectedtext1 = get_cut_words(content_series=df_1[df_1["created_date"] < "2021-12-17 23:08:00"]['text1'])

接著準(zhǔn)備兩個(gè)蒙版(取自前面得到的折線圖)

詞云圖的代碼詳細(xì)大家都很熟悉了,這里只需注意一點(diǎn)。

background_color='white'# 改為background_color=None,mode='RGBA',

這樣就可以將詞云圖的背景色設(shè)置為透明,從而方便圖層疊加。

<figcaption style="margin: 5px 0px 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; text-align: center; color: rgb(136, 136, 136); font-size: 12px; font-family: PingFangSC-Light;">▲生成的詞云圖</figcaption>

這樣我們就可以制作如下所示的圖了??

在前妻李靚蕾曝光前,王力宏的微博評(píng)論下基本都是這樣的:“結(jié)婚是為了幸福,離婚也是”、“情人總分分合合”、“尊重二哥的選擇”。

曝光后,王力宏的微博評(píng)論下變成了這樣:“重新定義簡(jiǎn)單單純”、“渣男”、“下頭”、“私生活簡(jiǎn)單?你侮辱了簡(jiǎn)單這個(gè)詞”、“人設(shè)崩塌”。

PS:憤怒的吃瓜群眾還輸出了很多“臟話”,我在詞云圖里做了排除。

我們?cè)贀Q個(gè)方向,娛樂一下。

我決定用數(shù)據(jù)探究一下:吃瓜的猹們最愛發(fā)哪些表情呢?

我提取了10萬條評(píng)論中的emoji表情,先提取微博評(píng)論可以使用的emoji的所有名稱(此處僅展示一部分)。

emoji_list = ["[小紅花]","[微笑]","[可愛]","[太開心]","[鼓掌]","[嘻嘻]","[哈哈]","[笑cry]","[擠眼]","[饞嘴]","[黑線]","[汗]","[挖鼻]","[哼]","[怒]","[委屈]","[可憐]","[失望]","[悲傷]","[淚]","[允悲]"]

使用in判斷是否包含某個(gè)emoji

def emoji_lis(string):    entities = []    for i in emoji_list:        if i in string:            entities.append(i)    return entitiesemoji_s = []for index, row in df_1.iterrows():    text = str(row['text'])    emoji_s.extend(emoji_lis(text))    c = collections.Counter(emoji_s)print(c)

即可得到各emoji出現(xiàn)的次數(shù):

同樣還是使用使用Matplotlib繪制極坐標(biāo)圖

輸出結(jié)果如下所示:

匹配采集到評(píng)論中的表情后,按照出現(xiàn)次數(shù)選取前8名,并將其制作成極坐標(biāo)圖。

發(fā)現(xiàn)前8名的表情是:悲傷、淚、允悲、微笑、doge、吐、單身狗、吃瓜。


王力宏自出道便頂著“優(yōu)質(zhì)偶像”的名頭,家境良好、才華橫溢、長(zhǎng)相端正,出道多年更是鮮有負(fù)面出現(xiàn)。如今看來,優(yōu)質(zhì)的表皮只是假面,他千挑萬選找了一個(gè)最好拿捏的妻子,卻又在她多年的忍讓中得寸進(jìn)尺,變本加厲。

如同李靚蕾長(zhǎng)文所說“如果你的演藝事業(yè)有受影響,是你自己做出的種種選擇造成的,不是我。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容