九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
一小時(shí)銷(xiāo)量破百萬(wàn),Python告訴你周杰倫的《Mojito》到底有多火!


 CDA數(shù)據(jù)分析師 出品  

作者:Mika

數(shù)據(jù):真達(dá)  

后期:澤龍

【導(dǎo)語(yǔ)】:今天我們來(lái)聊聊周杰倫的新歌《Mojito》,Python技術(shù)部分請(qǐng)看第三部分。公眾號(hào)后臺(tái),回復(fù)關(guān)鍵字“周杰倫”獲取完整數(shù)據(jù)。

Show me data,用數(shù)據(jù)說(shuō)話

今天我們聊一聊 周杰倫《Mojito》

點(diǎn)擊下方視頻,先睹為快:

6月12日0:00,周杰倫的最新單曲《Mojito》正式上線。

對(duì)周杰倫歌迷來(lái)說(shuō),這一天簡(jiǎn)直就是過(guò)年了。因?yàn)榫嚯x周杰倫上一次發(fā)歌,已經(jīng)過(guò)去了半年時(shí)間;而他的上一張專(zhuān)輯《周杰倫的床邊故事》,已經(jīng)是4年前的事情了。

這首以一種傳統(tǒng)的古巴雞尾酒命名的《Mojito》,前奏就充滿濃濃的古巴風(fēng)情和拉丁節(jié)奏,整首歌都寫(xiě)出在遇見(jiàn)愛(ài)情時(shí)令人神往的浪漫情調(diào)。尤其是令人驚艷的rap部分,不僅讓人感嘆我的青春回來(lái)了!

《Mojito》一經(jīng)上線也是火爆全網(wǎng),300多萬(wàn)人提前預(yù)約,一小時(shí)內(nèi)銷(xiāo)量破100萬(wàn),這也直接導(dǎo)致 QQ 音樂(lè)崩潰。

今天我們就用數(shù)據(jù)來(lái)全方位解讀一下,周杰倫的新歌《Mojito》。

豆瓣數(shù)據(jù)

1


首先我們分析整理了《Mojito》的豆瓣音樂(lè)數(shù)據(jù),目前這首歌在豆瓣共有2萬(wàn)3千余人進(jìn)行評(píng)價(jià),分?jǐn)?shù)為6.9分。

數(shù)據(jù)來(lái)源:豆瓣音樂(lè)短評(píng)

 https://music.douban.com/subject/35093585/comments/

 數(shù)據(jù)量:498條

雖然比起周董早年音樂(lè)的分?jǐn)?shù)有一定差距,但是對(duì)比起近兩年發(fā)布的《我是如此相信》《說(shuō)好不哭》在豆瓣的6.3分和5.9分,這首mojito還是不錯(cuò)的。

再具體看到評(píng)分?jǐn)?shù)據(jù)可以發(fā)現(xiàn),給出3星的人最多,占比39.02%。其次是4星,21.84%。給出5星的占比16.49%。

我們進(jìn)一步把給出1-2分的歸類(lèi)為負(fù)向評(píng)分,把4-5分的歸為正向評(píng)分。

分別對(duì)比負(fù)向的正向的詞云,我們可以看到:



在負(fù)向評(píng)價(jià)中,提到最多的就是"失望"、"難聽(tīng)"、"編曲"。正向評(píng)價(jià)中,大多數(shù)人都表示"好聽(tīng)"、"有夏天"的感覺(jué)、"喜歡"。有意思的是,無(wú)論正向負(fù)向評(píng)價(jià)都提到了充滿異域風(fēng)情的《Mojito》很容易讓人聯(lián)想到當(dāng)年周董的那首《迷迭香》。

微博數(shù)據(jù)

2


 下來(lái)我們分析了周杰倫中文網(wǎng)在微博發(fā)布的mojito mv的評(píng)論數(shù)據(jù)。

微博:周杰倫中文網(wǎng)JayCn發(fā)布的《Mojito》MV

https://weibo.com/1165631310/J6cxJ67HC?filter=hot&root_comment_id=0&type=comment

數(shù)據(jù)集大?。ㄈブ刂螅?/span>

  • 評(píng)論數(shù)據(jù):9976條

  • 粉絲數(shù)據(jù):9107條

分析發(fā)現(xiàn),評(píng)論用戶性別方面,女生占了絕大多數(shù),占比78.82%。

而用戶年齡方面,也是妥妥的90后的天下,占比高達(dá)74.91%。

微博評(píng)論中大家都在說(shuō)些什么呢?

可以看到大多數(shù)人都表示"好聽(tīng)"、"喜歡"、"很有夏天"的感覺(jué)。讓人"單曲循環(huán)",特別"上頭"。同時(shí)經(jīng)典的周氏rap,也是整首歌的靈魂,一聽(tīng)就太有那味兒了!

教你用Python爬取QQ音樂(lè)評(píng)論數(shù)據(jù)

3


最后我們看到qq音樂(lè)的數(shù)據(jù):

QQ音樂(lè)評(píng)論信息。

https://y.qq.com/n/yqq/album/0009C3rp3Kfwg0.html

數(shù)據(jù)量:20245

我們先看到結(jié)論

首先在實(shí)時(shí)評(píng)論走勢(shì)圖上可以看到,在歌發(fā)布的12日0時(shí),評(píng)論人數(shù)最高,之后慢慢回落。

評(píng)論中也讓人感嘆"好聽(tīng)"、"青春回來(lái)了"。讓歌迷們紛紛下單支持,畢竟上線一小時(shí)突破一百萬(wàn)張,讓QQ 音樂(lè)軟件一度崩潰,周董的影響力還是不容小覷的。

下面我們看到具體的步驟

我們使用Python分別獲取了QQ音樂(lè)評(píng)論、豆瓣短評(píng)和微博相關(guān)的評(píng)論數(shù)據(jù),進(jìn)行了數(shù)據(jù)分析。此處我們展示QQ音樂(lè)評(píng)論分析部分。按照業(yè)務(wù)分析流程進(jìn)行:

  1. 數(shù)據(jù)獲取

  2. 數(shù)據(jù)處理

  3. 數(shù)據(jù)可視化


01 數(shù)據(jù)獲取

首先打開(kāi)QQ音樂(lè),搜索Mojito。翻到評(píng)論區(qū)后,使用谷歌瀏覽器的檢查功能,切換到Network部分,點(diǎn)擊翻頁(yè)進(jìn)行網(wǎng)絡(luò)抓包,很容易發(fā)現(xiàn)發(fā)現(xiàn)評(píng)論區(qū)的內(nèi)容是被封裝在json中的,如下圖所示:


切換到headers處,找到請(qǐng)求URL地址,我們對(duì)請(qǐng)求地址進(jìn)行精簡(jiǎn)和測(cè)試,得到評(píng)論數(shù)據(jù)請(qǐng)求的URL地址:

https://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg?biztype=2&topid=12924001&cmd=8pagenum=0&pagesize=25

其中參數(shù)pagenum代表頁(yè)數(shù),通過(guò)遍歷即可獲取所有數(shù)據(jù),代碼如下:

# 導(dǎo)入包
import pandas as pd
import time
import requests
import json
from fake_useragent import UserAgent


def get_qq_comment(page_num):
 # 存儲(chǔ)數(shù)據(jù)
 df_all = pd.DataFrame()

 for i in range(page_num):
  # 打印進(jìn)度
  print('我正在獲取第{}頁(yè)的信息'.format(i))

  # 獲取URL
  url = 'https://c.y.qq.com/base/fcgi-bin/fcg_global_comment_h5.fcg?biztype=2&topid=12924001&cmd=8pagenum={}&pagesize=25'.format(i)

  # 添加headers
  headers = {
   'user-agent': UserAgent().random
  }

  # 發(fā)起請(qǐng)求
  try:
   r = requests.get(url, headers=headers)
  except Exception as e:
   print(e)
   continue

  # 解析網(wǎng)頁(yè)
  json_data = json.loads(r.text)

  # 獲取數(shù)據(jù)
  comment_list = json_data['comment']['commentlist']

  # 昵稱(chēng)
  nick_name = [i.get('nick'for i in comment_list]
  # 評(píng)論內(nèi)容
  content = [i.get('rootcommentcontent'for i in comment_list]
  # 評(píng)論時(shí)間
  comment_time = [i.get('time'for i in comment_list]
  # 點(diǎn)贊數(shù)
  praise_num = [i.get('praisenum'for i in comment_list]

  # 存儲(chǔ)數(shù)據(jù)
  df = pd.DataFrame({
   'nick_name': nick_name,
   'content': content,
   'comment_time': comment_time,
   'praise_num': praise_num
  })

  # 追加數(shù)據(jù)
  df_all = df_all.append(df, ignore_index=True)

  # 休眠一秒
  time.sleep(1)

 return df_all


# 運(yùn)行函數(shù)
df = get_qq_comment(page_num=912

通過(guò)上述程序,共獲取到截止6.13日22217條評(píng)論信息,數(shù)據(jù)集如下所示:

df.head()

02 數(shù)據(jù)讀入和數(shù)據(jù)處理

讀入數(shù)據(jù)集,并對(duì)獲取的數(shù)據(jù)集進(jìn)行清洗。

# 導(dǎo)入所需包
import jieba
import stylecloud
from pyecharts.charts import Pie, Bar, Map, Line, WordCloud, Page
from pyecharts import options as opts
from pyecharts.globals import SymbolType, WarningType
WarningType.ShowWarning = False

# 讀入數(shù)據(jù)
df = pd.read_excel('../data/QQ音樂(lè)評(píng)論數(shù)據(jù)6.13.xlsx')

# 查看重復(fù)值和空值
print(df.duplicated().sum())
print(df.isnull().sum()) 
# 轉(zhuǎn)換函數(shù)
def transform_time(time_second):
 time_array = time.localtime(time_second)
 otherStyleTime = time.strftime('%Y-%m-%d %H:%M:%S', time_array) 
 return otherStyleTime

# 時(shí)間數(shù)據(jù)處理
df['comment_time'] = df['comment_time'].apply(lambda x: transform_time(x))

# content初步處理
pattern = re.compile(r'\[em\](.*?)\[/em\]')
df['content'] = df.content.str.replace(pattern, '')
df.head() 

03 數(shù)據(jù)可視化分析


Mojito評(píng)論時(shí)間走勢(shì)圖

# 日期數(shù)量
comment_num = df.comment_time.str.split(':').str[0].value_counts().sort_index()
comment_num[:5] 
2020-06-12 00 12673
2020-06-12 01  1185
2020-06-12 02   364
2020-06-12 03   146
2020-06-12 04 80
Name: comment_time, dtype: int64
# 產(chǎn)生數(shù)據(jù)
x_line1 = [i.replace('2020-',''for i in comment_num.index.to_list()] 
y_line1 = comment_num.values.tolist()

# 繪制面積圖
line1 = Line(init_opts=opts.InitOpts(width='1350px', height='750px'))
line1.add_xaxis(x_line1)
line1.add_yaxis('', y_line1,
 markpoint_opts=opts.MarkPointOpts(data=[
  opts.MarkPointItem(type_='max', name='最大值'),
  opts.MarkPointItem(type_='min', name='最小值')
 ])) 
line1.set_global_opts(title_opts=opts.TitleOpts('Mojito評(píng)論人數(shù)走勢(shì)圖'), 
 xaxis_opts=opts.AxisOpts(axislabel_opts=opts.LabelOpts(rotate='30')),
 visualmap_opts=opts.VisualMapOpts(max_=12673)
   ) 
line1.set_series_opts(label_opts=opts.LabelOpts(is_show=False), 
 linestyle_opts=opts.LineStyleOpts(width=3))
line1.render() 

QQ音樂(lè)評(píng)論詞云圖

def get_cut_words(content_series):
 # 讀入停用詞表
 stop_words = [] 

 with open(r"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 = ['周杰倫''一首歌''好好聽(tīng)''方文山''30多歲'
 for i in my_words:
  jieba.add_word(i) 

#  自定義停用詞
 my_stop_words = ['歌有''真的''這首''一首''一點(diǎn)'
  '反正''一段''一句''首歌''啊啊啊'
  '哈哈哈''轉(zhuǎn)發(fā)''微博''那段''他會(huì)'
  ]   
 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_selected
text1 = get_cut_words(content_series=df.content)
text1[:5
['致敬''久石''人生''旋轉(zhuǎn)''木馬']
# 繪制詞云圖
stylecloud.gen_stylecloud(text=' '.join(text1), 
  max_words=1000,
  collocations=False,
  font_path=r'?C:\Windows\Fonts\msyh.ttc',
  icon_name='fas fa-music',
  size=624,
  output_name='./詞云圖/QQ音樂(lè)評(píng)論詞云圖.png')

本文出品:CDA數(shù)據(jù)分析師(ID: cdacdacda)

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Python爬取10529條《三十而已》熱評(píng),看看大家都說(shuō)了些啥!
可視化 | 文本數(shù)據(jù)分成n等份、詞云圖、情緒變化趨勢(shì)、相似度變化趨勢(shì)
使用Python獲取春節(jié)檔電影影評(píng),制作可視化詞云圖
教你做超驚艷的南丁格爾玫瑰圖
以騰訊5000部電影為例,告訴你Python數(shù)據(jù)分析該怎么做
中國(guó)人民志愿軍抗美援朝出國(guó)作戰(zhàn)70周年,我用 Python 為英雄們送上祝福
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服