前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >又鸽了?英雄联盟手游公测跳票跟我DNF手游有毛线关系!!

又鸽了?英雄联盟手游公测跳票跟我DNF手游有毛线关系!!

作者头像
可以叫我才哥
发布2021-09-24 15:55:48
1.4K0
发布2021-09-24 15:55:48
举报
文章被收录于专栏:可以叫我才哥可以叫我才哥

大家好,我是才哥。

就在前不久,万众期待的《英雄联盟手游》发布了9月15日公测上线的公告,无双铁粉欢呼!然而热度还没消散,9月9日上午9时48分,《英雄联盟手游》官微就发布了公测延期的告示!!WTF!!于是,炸了~

今天,我们就来看看,这两天taptap玩家们的反应!

目录:

  • 前情提要:
  • 1. 数据采集
  • 2. 统计分析
    • 2.1. 数据预览
    • 2.2. 评分分布
    • 2.3. 评价时段
    • 2.4. 获赞最多的评论
    • 2.5. 用户设备分布
  • 3. 评论词云

前情提要

9月3日,萌妹儿还特地宣布了公测时间是9月15日

那天的公测预告

结果热度还没消,不到一周的时间告诉我们 延期了!!

公测延期

我们可以看到taptap玩家表达热情的方式:不到2天时间新增3400条评论

近期评价趋势

有人说要和DNF同分,DNF手游表示???

那么,DNF手游评分是多少呢?

DNF手游

好了,我们就爬取taptap用户评价来看一看吧!

1. 数据采集

爬虫部分比较简单,可以参考之前《手游《航海王热血航线》的评论热词云图怎么做的,今天就手把手教你学废》,这里就贴一下爬取部分核心代码做简单讲解!

代码语言:javascript
复制
def tapReview(appid, start_date):
# 应用id 和 评论更新时间
    url = 'https://www.taptap.com/webapiv2/review/v2/by-app'
    page = 0
    appid = 176911
    dfList = []
    n = 0
    condition = True
    while condition:
        Parames = {
            'app_id': appid,
            'from': page*10,
            'limit': 10,
            'sort': 'new',
            'X-UA': 'V=1&PN=WebApp&LANG=zh_CN&VN_CODE=3&VN=0.1.0&LOC=CN&PLT=Android&UID=da52e3b7-a393-4a0a-b8c9-9157797114d4&VID=2663941'
            }
        
        rep = requests.get(url,params=Parames)
        js = rep.json()
        
        data = js['data']
        dataList = data['list']
        items = []
        for li in dataList:
            n = n+1
            item = {}
            moment = li['moment']['extended_entities']['reviews'][0]
            item['评价id'] = li['moment']['id']
            item['作者id'] = moment['author']['id']
            item['作者'] = moment['author']['name']   
            item['评价创建时间'] = moment['created_time']
            item['评价更新时间'] = moment['updated_time']
            item['评价内容'] = html.unescape(moment['contents']['text'].replace('<br>','\n'))
            item['评分(满分5分)'] = moment['score']
            item['游戏时长'] = moment['played_tips']
            item['点赞数'] = moment['ups']
            item['点踩数'] = moment['downs']
            item['设备'] = moment['device']
            
            items.append(item)
        df = pd.DataFrame(items)
        # 时间戳转化为日期
        df['评价创建时间'] = pd.to_datetime(df['评价创建时间'], unit='s') + pd.Timedelta(days=8/24)
        df['评价更新时间'] = pd.to_datetime(df['评价更新时间'], unit='s') + pd.Timedelta(days=8/24)
        
        print(f'{n} 个 评价已经采集')
        dfList.append(df)
        page = page+1
        condition = df['评价更新时间'].iloc[-1] >= pd.Timestamp(start_date)
    
    dfs = pd.concat(dfList)
    
    return dfs

定义的采集函数有两个参数:appidstart_date

前者是应用id,在taptap对应游戏产品页面地址栏就有;

后者是采集评论的时间区间,这里我们将采集的api中排序方式选择的 按照时间,也就是最新评论最前面,因此start_date就是往前采集的截止时间点,在本案例中我们可以将这个时间设置为 发布 公测延期的时间即可。

2. 统计分析

在采集到3400余条评价后,我们进行简单的统计分析

2.1. 数据预览

代码语言:javascript
复制
import pandas as pd

df = pd.read_excel(r'英雄联盟手游tap评论.xlsx')
df.head()

2.2. 评分分布

代码语言:javascript
复制
import pandas as pd
import pandas_bokeh

pandas_bokeh.output_notebook()
pd.set_option('plotting.backend', 'pandas_bokeh')
from bokeh.transform import linear_cmap
from bokeh.palettes import Spectral
from bokeh.io import curdoc
# curdoc().theme = 'caliber'

score_num = df.groupby('评分(满分5分)')['作者id'].nunique().to_frame('评论数')
y = score_num['评论数']
mapper = linear_cmap(field_name='评论数', palette=Spectral[11] ,low=min(y) ,high=max(y))
episode_bar = score_num.plot_bokeh.bar(
    ylabel="评论数量", 
    title="评分分布", 
    color=mapper,
    alpha=0.8,
    legend=False    
)

评分分布

我们可以看到超过1/3的评分都是1分,不过我也没想到5分的数量也蛮多(咳咳)

2.3. 评价时段

代码语言:javascript
复制
df['日期'] = pd.to_datetime(df['评价更新时间']).dt.date
df['时间'] = pd.to_datetime(df['评价更新时间']).dt.hour
time_num = pd.pivot_table(df,
                          values='作者id',
                          index=['时间'],
                          columns=['日期'],
                          aggfunc='count'
                         )
time_line = time_num.plot_bokeh(kind="line",
                                legend="top_left",
                                title="分时评论数"
                               )

评分时段

很明显可以看到,从9点48分微博发布延迟公告后,很快就开始受到关注并引发了讨论,不得不说这个LOLM真受欢迎!

2.4. 获赞最多的评论

代码语言:javascript
复制
(df.sort_values(by='点赞数',ascending=False)
 [['作者','评价创建时间', '评价更新时间', '评价内容', '评分(满分5分)','点赞数', '点踩数', '设备',]].head()
 .style.hide_index()
)

点赞数最多的基本都是在表达 最近几天的操作很搞心态(前几天发布公测,各种加群、预约抢先注册啥的,结果来这么一出

有从之前好评改为差评的用户

滚吧,搞玩家心态,恶心玩家,让大部分人经过一番操作啥也没有,使抽不到的玩家寒心,让抽到激活码的玩家可以发资格成为人上人,让号贩子快乐可以卖激活号还可以二次资格销售,关键最恶心的一点,为了推广游戏,弄一些直播送激活资格给游戏涨热度,然而大多数人都是白操作,浪费了时间,消耗了情怀,只有你腾讯做得出来,吐了 十周年宣布9月15日不删档,结果今天突然来个推迟不删档,又来一次删档测试,又搞dnf的阴间操作,哈哈哈,腾讯真牛笔!!!真当玩家是牛马,一次二次搞心态

有最近第一次评价的用户

我快qnmd吧!下一个DNF手游?我真的要被气死了!这就是腾讯的操作?真的别解释,所有的解释都是苍白无力的。作为一个从S3开始的老玩家,玩了4年端游,后来由于工作没太多时间玩断游戏,从知道lol要出手游后就很兴奋,我从来没有过因为一款游戏而认真填问卷注册获取游戏资格,从来没有过!英雄联盟手游是第一个,当初外服没公测的时候,小范围测试就需要测试资格,我研究好半天才填写了,后来有了,去玩了几天,感觉不错,那个感觉回来了,后来外服公测,我又去重新体验了一下,感觉也还是不错,所以一直期待国服的上线。因为有朋友所以想在国服玩,也约好了当年一起通宵开黑的大学同学,组了队,就等着15号上线,满欢欣喜,这应该是我最近听到的最让我开心的消息了。结果呢?我很想骂脏话,但是这里不允许,但是我还想说*。千言万语汇聚成三个字:***。一颗给当年未被腾讯收购时候的英雄联盟。另一颗防删。这个分数永远不会改,就这样吧,别上了,永远别上,别给我希望,腊鸡游戏。

也有规劝新朋友不要生气的好评玩家

1.本次测试所有资产数值全部保留,包括皮肤,英雄,表情包,回程特效,头像等一切游戏资产全部保留到不删档 2.本次测试成就数值不会保留,包括排行榜,排位,英雄成就等一切成就数值 3.本次测试资格由前两次测试资格直接继承,后续增加其他获取资格的方式 4.兄弟们,能玩就玩吧,不删档以后就不用做那些免费拿英雄宝箱的活动了,送的英雄跟皮肤将会保留,不删档以后直接拿来上分 还有什么不懂的可以直接在本贴留言,同时也欢迎各位加入开黑群一起来交流:866230905 5.9.15号测试对于有资格的玩家来说真的血赚,大不了多打几把排位而已,新玩家也别发飙,官方说这几天将会推出大量资格,能玩就玩!

2.5. 用户设备分布

代码语言:javascript
复制
device_num = df.groupby('设备')['作者id'].nunique().to_frame('数量').sort_values(by='数量').tail(10)
y = score_num['数量']
mapper = linear_cmap(field_name='数量', palette=Spectral[11] ,low=min(y) ,high=max(y))
episode_bar = device_num.plot_bokeh.barh(
    ylabel="设备型号", 
    title="设备分布(前10)", 
    color=mapper,
    alpha=0.8,
    legend=False    
)

用户设备分布

居然说,评论的用户中用小米、vivo和华为中高端机最多!!

3. 评论词云

3400评价词云

整体来说,跳票延期等表示9月15日公测不在的字眼最多,此外就是垃圾恶心等负面词汇。

因为此前DNF手游也出现过类似情况引发大量玩家暴动,本次也无奈躺枪,是被提及最多的关键字了,远超事件本身!

词云核心代码

代码语言:javascript
复制
def ciYun(data,addWords,stopWords):
    print('正在作图...')
    comment_data = data
    
    for addWord in addWords:
        jieba.add_word(addWord)

    comment_after_split = jieba.cut(str(comment_data), cut_all=False)
    words = ' '.join(comment_after_split)
    
    # 词云停用词 
    stopwords = STOPWORDS.copy()
    for stopWord in stopWords:
        stopwords.add(stopWord)

    # 就下面代码,即可获取满足类型要求的参数
    stylecloud.gen_stylecloud(
                              text=words,
                              size = 800,
                              palette='cartocolors.qualitative.Vivid_10',#'tableau.BlueRed_12', # 设置配色方案
                              icon_name='fas fa-angry',# paper-plane mountain thumbs-up male fa-cloud
                              custom_stopwords = stopwords,
                              font_path='WenYueXinQingNianTi.otf'
                              # bg = bg, 
                              # font_path=font_path,  # 词云图 字体(中文需要设定为本机有的中文字体)
                             )
    print('词云已生成~')
    pic_path = os.getcwd()
    print(f'词云图文件已保存在 {pic_path}')  
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 可以叫我才哥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.1. 数据预览
  • 2.2. 评分分布
  • 2.3. 评价时段
  • 2.4. 获赞最多的评论
  • 2.5. 用户设备分布
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档