计算原理
一般情况下,番剧的单集播放量会随着集数的增加而减少,一步番剧播放量减少越剧烈,则说明该番观众中途弃坑人数较多,番剧可能剧情乏味或中途崩坏。我采集了B追番人数在前150名的番剧的播放数据,将集数扩大后与单集播放量进行最小二乘法拟合,以得到直线的斜率为依据进行排名。排行榜视频传到了B站:http://www.bilibili.com/video/av13742689/。 由于B站部分番剧采用分P分集的方式,无法获取到具体数据,故在本榜单中略去。
完整榜单
番剧名 | 弹幕总数 | 观众损失指数 |
---|---|---|
甲铁城的卡巴内瑞 | 1042966 | -2.258323648 |
GAMERS电玩咖! | 169133 | 0.144540753 |
三年E班 | 1951008 | 0.462847114 |
Fate/stay night [Unlimited Bla.. | 1965716 | 0.626720716 |
斩·赤红之瞳! | 1607920 | 0.741229817 |
双星之阴阳师 | 2297276 | 0.831016728 |
命运石之门 | 730135 | 0.875223121 |
Re:从零开始的异世界生活 | 6907632 | 0.961437343 |
小魔女学园 | 383944 | 1.050238504 |
终结的炽天使 | 1487069 | 1.118167605 |
四月是你的谎言 | 1303311 | 1.177939641 |
Charlotte | 2664830 | 1.219308438 |
齐木楠雄的灾难 | 638553 | 1.268257247 |
OVERLORD | 1093162 | 1.515096923 |
野良神 | 2213460 | 1.550257659 |
重装武器 | 1102233 | 1.666549249 |
日常 | 1062360 | 1.673067295 |
超时空要塞Δ | 610014 | 1.72636779 |
传颂之物 虚伪的假面 | 928716 | 1.747128157 |
3月的狮子 | 146376 | 1.79793033 |
食戟之灵 | 2160905 | 1.802290751 |
博人传 火影忍者新时代 | 884311 | 1.949803763 |
自由之翼 | 26464 | 2.224237707 |
TRICKSTER 少年侦探团 | 173427 | 2.224413676 |
我的青春恋爱物语果然有问题。 | 930185 | 2.248424329 |
幻界战线 | 892228 | 2.401250763 |
终结的炽天使 | 910205 | 2.436868124 |
学战都市Asterisk | 1018439 | 2.451519477 |
樱花任务 | 192730 | 2.496338531 |
伪恋 | 817620 | 2.705141542 |
路人超能100(灵能百分百) | 1172382 | 2.779356326 |
干物妹!小埋 | 3373142 | 2.910871665 |
弹丸论破3 The End of 希望峰学园 | 698807 | 2.967848909 |
Re:CREATORS | 829189 | 3.070127201 |
甘城光辉游乐园 | 486927 | 3.112907413 |
Fate/stay night [Unlimited Bla.. | 1469358 | 3.122084955 |
日常系的异能战斗 | 419047 | 3.145179423 |
星期一的丰满 | 75037 | 3.221649311 |
噬神者 | 671752 | 3.315299411 |
迷糊餐厅 | 160300 | 3.328996671 |
月色真美 | 898054 | 3.355742336 |
落第骑士英雄谭 | 1810528 | 3.415607209 |
Love Live! Sunshine!! | 1348396 | 3.432030523 |
变态王子与不笑猫 | 633261 | 3.449631042 |
弹丸论破3 The End of 希望峰学园 | 768724 | 3.469733282 |
银仙 | 528142 | 3.495181835 |
驱魔少年 | 303371 | 3.596220884 |
路人女主的养成方法 | 1908446 | 3.597648879 |
六花的勇者 | 965799 | 3.65088434 |
K | 1888335 | 3.659182418 |
一周的朋友。 | 422299 | 3.678132515 |
Rewrite | 649103 | 3.726841885 |
埃罗芒阿老师 | 2910490 | 3.754721348 |
对魔导学园35试验小队 | 648691 | 3.789620394 |
这个美术社大有问题! | 1398356 | 3.807777201 |
终物语 | 351978 | 3.818677737 |
NEW GAME! | 981468 | 3.864370619 |
热诚传说X | 1151522 | 3.906996542 |
请问您今天要来点兔子吗 | 835887 | 3.913232858 |
TRINITY SEVEN 七人魔法使 | 315836 | 3.923909271 |
小林家的龙女仆 | 1615409 | 3.980325447 |
问题儿童都来自异世界 | 309103 | 3.986187118 |
黑白来看守所 | 162274 | 4.017919302 |
我被绑架到贵族女校当庶民样本 | 1934730 | 4.030563818 |
学园孤岛 | 1438837 | 4.036371447 |
黑白来看守所 | 361127 | 4.156150414 |
从零开始的魔法书 | 484669 | 4.167026311 |
百武装战记 | 1559980 | 4.167667996 |
线上游戏的老婆不可能是女生 | 2198943 | 4.186430272 |
超自然9人组 | 178777 | 4.233473694 |
时钟机关之星 | 207921 | 4.25875271 |
在下坂本,有何贵干 | 5260979 | 4.28715556 |
爱丽丝和藏六 | 156670 | 4.3169219 |
刀剑乱舞-花丸- | 672763 | 4.356210612 |
迷家 | 1200998 | 4.39426238 |
月歌 | 373754 | 4.399806235 |
苍之彼方的四重奏 | 673662 | 4.428013961 |
小桃小栗Love Love物语 | 527046 | 4.443557446 |
SUPER LOVERS | 245185 | 4.460685361 |
就算是哥哥有爱就没问题了对吧 | 553701 | 4.463771515 |
夏目友人帐 | 747213 | 4.473388087 |
ACCA13区监察课 | 102342 | 4.504372808 |
恋爱暴君 | 472136 | 4.651204747 |
王室教师海涅 | 286910 | 4.659983016 |
三年E班Q | 94746 | 4.677076817 |
怪怪守护神 | 248197 | 4.678423565 |
我太受欢迎了该怎么办 | 986738 | 4.704850976 |
秋叶原之旅 THE ANIMATION | 169757 | 4.722279333 |
樱子小姐的脚下埋着尸体 | 847554 | 4.868618686 |
少女编号 | 404364 | 4.87169268 |
我,要成为双马尾。 | 787151 | 4.885292437 |
腐男子高校生活 | 156403 | 4.89976437 |
雏子的笔记 | 196444 | 4.989178298 |
初恋怪兽 | 552774 | 4.991610092 |
GANGSTA. | 353105 | 4.992524075 |
One Room | 81130 | 5.045102635 |
粗点心战争 | 1089607 | 5.192970417 |
风夏 | 627720 | 5.197259351 |
SEIREN | 407219 | 5.311204776 |
天真与闪电 | 299089 | 5.443797509 |
Hand Shakers | 236262 | 5.449409968 |
Taboo Tattoo-禁忌咒纹- | 524571 | 6.009652647 |
采集计算代码
使用方法:保存为py脚本,在B站得到番番剧ID后执行python demo.py 番剧ID
,得到的数据会存放在CSV文件中。如果报错或得到的数据极小,那么该番局可能采用了分P分集方式,无法获得最终结果。
# -*- coding: UTF-8 -*-
import requests
import sys
import json
import csv
import codecs
reload(sys)
sys.setdefaultencoding('utf-8')
r = requests.get('https://bangumi.bilibili.com/jsonp/seasoninfo/'+str(sys.argv[1])+'.ver?callback=seasonListCallback&jsonp=jsonp&_=1503473663364')
j= r.text[19:-2]
js=json.loads(j)
av_list=[]
view_list=[]
def get_view(av):
r = requests.get('http://api.bilibili.com/archive_stat/stat?aid='+str(av))
r_js=json.loads(r.text)
return int(r_js['data']['view'])
for id in js['result']['episodes']:
av_list.append(id['av_id'])
view_list.append(get_view(id['av_id']))
#get x average
x_num=float(len(av_list))
i=1
x_average=0
for ii in av_list:
x_average = x_average+(i/x_num)
i=i+1
x_average=x_average*view_list[-1]
#get y average
y_average=0
for ii in view_list:
y_average = y_average+(ii/x_num)
# get b aboves
count=0.0
i=1
for ii in view_list:
count = count+ii*i*view_list[-1]
i=i+1
b_above = count-(x_num*x_average*y_average)
#get b_down
b_down=0.0
i=1
for ii in av_list:
b_down=b_down+i*view_list[-1]*i*view_list[-1]
i=i+1
b_down = b_down - x_num*x_average*x_average
#get rank
rank = b_above/b_down
with open('2.csv', 'ab+') as csvfile:
spamwriter = csv.writer(csvfile)
csvfile.write(codecs.BOM_UTF8)
spamwriter.writerow([js['result']['bangumi_title'], js['result']['danmaku_count'], rank*100])
print js['result']['bangumi_title']+" "+str(rank*100)