您現在的位置是:首頁 > 棋牌

王力宏事件終於得到迴應,教你用Python分析

  • 由 查理不是猹 發表于 棋牌
  • 2023-02-04
簡介’), cut_all=False)# 條件篩選word_num_selected = [i for i in word_num if i not in stop_words and len(i)>=2]

違例是什麼意思

大家好,我是查理~

昨晚,剛剛王力宏終於迴應了。

今天干脆手把手教大家如何資料處理+視覺化他的微博評論,下載完整程式碼/資料見文末。

12月15日,王力宏在微博突然宣佈離婚,表示“靚蕾和我的私生活很簡單很單純,所以不會再回應任何媒體”,結束了8年的婚姻。

王力宏事件終於得到迴應,教你用Python分析

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

王力宏事件終於得到迴應,教你用Python分析

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

今天就帶大家用

資料——吃吃瓜

我使用Python程式設計,爬取王力宏宣佈離婚的微博下的評論。

王力宏事件終於得到迴應,教你用Python分析

下載的csv檔案中包括使用者名稱、使用者id、評論建立時間、評論id、評論內容等。

王力宏事件終於得到迴應,教你用Python分析

如上圖所示,原始資料中的內容非常混亂,微博評論中夾雜大量表情包、話題以及“轉發微博”等等,需要進行資料清洗。

首先根據評論的唯一ID進行去重

df_1 = df_1。drop_duplicates([‘idstr’])。iloc[:,1:]

接著,對所有的微博評論按照小時計數

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’)

王力宏事件終於得到迴應,教你用Python分析

得到分時資料後,就可以使用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=‘王力宏微博新增評論數/小時’, 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’)

輸出結果如下所示

王力宏事件終於得到迴應,教你用Python分析

15日時剛剛釋出微博,瞬間引爆評論,火速上熱搜。

16、17日便沒有什麼評論了。

直到昨晚23點,前妻李靚蕾深夜發文後,群眾們趕緊衝過來開團。

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

12月16日14時,豪華汽車品牌英菲尼迪才剛剛官宣王力宏成為品牌代言人。18日凌晨1點22分,微博名為@英菲尼迪中國 便釋出宣告英菲尼迪決定即日起終止與王力宏先生的合作關係。英菲尼迪從和他簽約到解約,僅有35小時。

如果我們將王力宏和李靚蕾的微博評論數量,放在一張圖會是什麼樣子呢?

正好我也爬了李靚蕾的微博評論,同樣進行資料處理後

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=‘王力宏微博新增評論數/小時’, 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=‘李靚蕾微博新增評論數/小時’, alpha=0。75, facecolor=“#b7ba6b”, linewidth=1, edgecolor=‘k’)plt。xlabel(“Date”)plt。ylabel(“Value”)plt。legend(loc=‘upper left’)plt。show()

輸出結果如下所示:

王力宏事件終於得到迴應,教你用Python分析

相比之下,王力宏這邊的評論就根本不是一個量級,顯得是“弟中之弟”了。

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

這次我們還是想盤點一下:群眾們開團後,都發了些什麼?

與之前文章傳統的詞雲圖不一樣,我打算玩點新東西。在前文中製作的折線面積圖中,將不同時間段的詞雲填充其中。

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

做詞雲圖前,需要將所有王力宏的微博評論分成兩部分(即前妻開錘前後),注意下方程式碼中以

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()) # 新增關鍵詞 my_words = [‘分分合合’, ‘拉黑’] for i in my_words: jieba。add_word(i) # 自定義停用詞 my_stop_words = [‘快轉’,‘轉發’,‘微博’] 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’])

王力宏事件終於得到迴應,教你用Python分析

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

王力宏事件終於得到迴應,教你用Python分析

詞雲圖的程式碼詳細大家都很熟悉了,這裡只需注意一點。

background_color=‘white’# 改為background_color=None,mode=‘RGBA’,

這樣就可以將詞雲圖的背景色設定為透明,從而方便圖層疊加。

王力宏事件終於得到迴應,教你用Python分析

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

王力宏事件終於得到迴應,教你用Python分析

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

曝光後,王力宏的微博評論下變成了這樣:“

重新定義簡單單純

”、“渣男”、“

下頭

”、“私生活簡單?你侮辱了簡單這個詞”、“

人設崩塌

”。

王力宏事件終於得到迴應,教你用Python分析

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

我們再換個方向,娛樂一下。

我決定用資料探究一下:吃瓜的猹們最愛發哪些表情呢?

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

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

使用

in

判斷是否包含某個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出現的次數:

王力宏事件終於得到迴應,教你用Python分析

同樣還是使用使用Matplotlib繪製極座標圖

王力宏事件終於得到迴應,教你用Python分析

輸出結果如下所示:

王力宏事件終於得到迴應,教你用Python分析

匹配採集到評論中的表情後,按照出現次數選取前8名,並將其製作成極座標圖。

王力宏事件終於得到迴應,教你用Python分析

發現前8名的表情是:悲傷、淚、允悲、微笑、doge、吐、單身狗、吃瓜。

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

如同李靚蕾長文所說“

如果你的演藝事業有受影響,是你自己做出的種種選擇造成的,不是我。

Top