#1 - 2017-4-8 13:15
ic (. ∧ ∧ ( =╹ w ╹=) <)
1. 前言

这几年--虽然前几年甚至更早以前也不少,在华语黄油圈里经常听到有人说
xxx汉化了, 我去打了打,果然又是个吹出来的游戏
多大人了,你还玩汉化?不打原版等于没打,汉化体验多差啊
たま的又一个我喜欢的游戏被汉化了,又要有一堆什么都不懂的小学生一窝蜂涌上来的评价他们根本不了解的东西
这时候,自诩懂点统计的玩家可能会打开某个评分网站,或者在微博贴吧之类的地方随便搜搜。让我们拿bangumi举例好了,在网站上看看自己刚刚提到过的游戏的最近的评分
嗨你看我说的没错吧,这游戏刚汉化,你看着打分的都是什么人,给的都是什么低分写的都是什么垃圾评价
如果这位玩家旁边还恰巧有一个听众的话,ta可能深以为然,
可不是嘛!我看了下感觉你说的没错,汉化了明显分变低了!
等等,是不是哪里不对?
等等,讨论评价和分的话,在我们手边又有现成的评分网站数据的时候,难道不是应该把所有的数据都拿来分析做一个详尽的分析。如果不能做一个详尽的分析,难道不是应该谨言慎行,而不是随便瞟一眼搜一下凭不经思考的感觉发言?  
刚好最近爬了一份bangumi的全站评分数据,心血来潮,我决定就“汉化了游戏评价就变差”这个命题做一点初步的分析。
说实话,这个命题的结论是什么我不是很在乎,写到这里的时候我也完全没有任何预设的结论。我就是觉得,不光是黄油圈,甚至是整个acg圈里,充斥着太多明明可以通过某些方式验证,却毫无道理的被人理所当然的当作真理的命题,而每一分每一秒--甚至就在我写下这段话的时候,我也毫不怀疑在某个角落里又有一段“随便瞟一眼数据”的臆测诞生了。

所以,如果看完接下来的分析能让你在下一次“臆测”之前犹豫那么一秒钟,思考一下如何谨言慎行...那就再好不过了。

2. 数据准备

数据来源
本次的数据源主要来自
* 批评空间: エロゲーマーのためのSQL
    * 抽取空间的相关数据。
* bangumi: Bangumi_Spider
    * bangumi没有现成的数据库接口,只好自己爬了。基本就是用的这个脚本,顺便修了几个bug加了几个column。
* vndb : 修改自Public Database API的一个API wrapper
    * 没找到现成可用,带汉化发布时间的近几年中文游戏汉化列表,没想到反而是这个老外的网站做的最全...

数据筛选
为了保证接下来分析结果的可靠性,适当的筛选是必要的,使用的标准如下
* 被列为分析对象的游戏,必须在空间有>=50的data数,同时需要在bangumi有>=20的data数。此外,汉化前,汉化后的评分人数必须分别大于10,用户打分时标记的状态必须是“完成”。
    * 阈值选择的标准是网站所有条目的平均data数,空间约为51, bangumi约为32,考虑到bangumi还有不少枪车球手游等更大众的游戏,取min=20
* 判断一个评分是汉化评分还是日文版评分,这里简单的认为在bangumi上汉化的时间点前的所有用户评分都是对原版的评分,反之则为汉化版的评分。当然,后半句标准不会特别准,但我似乎也找不出一个更有效的判断标准(可以想到的方法有:检查用户对该游戏打过的tag,如果有汉化字样则认为玩的是汉化版,检查用户打过的所有游戏,如果都是汉化过的游戏则认为其打的是汉化版...但怎么看都是些吃力不讨好的方法)。
* 只对2012-2016年内发布过汉化的游戏进行分析,原因是bangumi在此之前用户数量不足,可能没有积累足够的原版用户评分。在2017年发布汉化的游戏则可能没有积累足够的汉化用户评分。
* 如果一个游戏有多个版本的汉化, 以最早的版本为准。
* 未来数位等代理的官方简中/繁中基本不列入此次的分析,不详细展开了。
    * 判断标准是vndb的patchflag,官方版本一般为False。
    * 但是也有一部分是(疑似)错误标记,如果我没有理解错的话这应该是个汉化补丁,但是却被标记为了True这就没什么办法了。

* vndb还收录了很多体验版的汉化信息,为了筛选掉体验版进行了type是否为"complete"的判断,难以避免误杀了少量type非"complete"但同样是正式发布的汉化版。
* 3个网站的游戏细节上各有不同需要进行匹配。这里我采用先去除所有标点符号并把英文字母全部转小写再使用fuzzy-wuzzy进行模糊搜索的方法,原则是宁可放过不确定的,也要确保匹配到的三网站标题尽可能准确。
    * 用Levenshtein distance直接对日语进行模糊搜索其实有点不太对,但是没找到什么现成好用的库...总之难免有疏漏,如果发现漏了什么游戏欢迎告知。


3. 结果与分析
本段中的所有统计图表均使用d3.js绘制。

中位数饼图
pre:汉化前分数中位数较高的游戏(比汉化后高0.1以上)
post:汉化后分数中位数较高的游戏(比汉化前高0.1以上)
equal:汉化前后分数中位数相同的游戏(汉化前汉化后分数差距在0.1之内)



可以看出,考虑中位数的话,大部分游戏其实评价差别不大,不过在有差异的游戏里,以汉化前评分较高的为主。


平均数饼图
pre:汉化前分数平均数较高的游戏(比汉化后高0.1以上)
post:汉化后分数平均数较高的游戏(比汉化前高0.1以上)
equal:汉化前后分数平均数相同的游戏(汉化前汉化后分数差距在0.1之内)




可以看出,考虑平均数的话,大部分游戏属于汉化前评价较高的类别。



中位数分布柱状图
pre:汉化前的游戏的中位数分布
post:汉化后的游戏的中位数分布
total:游戏全部评分数据的中位数分布



可以看到,在高分区汉化前的游戏较多,低分区汉化后的游戏居多。


平均数分布柱状图
pre:汉化前的游戏的平均数分布
post:汉化后的游戏的平均数分布
total:游戏全部评分数据的中位数分布



结论类似上面,此外评分分布基本呈正态。


然后来个t test
简单来说,就是个用来检测两组数据是否有显著差异方法
这里假设两组数据互相独立,因为两组数据方差和大小不一样,所以每个游戏进行的是Welch's t-test
使用[scipy]计算p值(https://docs.scipy.org/doc/scipy ... tats.ttest_ind.html)

stats.ttest_ind(pre,post, equal_var = False)
如果p值大于0.05或0.1,则我们不能拒绝“两组数据没有显著差异”的假设。反之,则可以得出“两组数据有显著差异”的结论。
这里选择0.1为阈值。


然后把结果转换成文字云。因为这次的数据里总共有167个游戏,实在是太多了影响文字云的显示效果,在绘制文字云时我又多加了一个“游戏打分人数必须大于150”的限制。最后共留下了84个游戏。
需要注意的是,文字越大,说明差异越不明显(对第一个文字云而言)或越明显(对第二,第三个文字云而言)。同时,为了方便辨认,文字大小相同的两个游戏颜色也是相同的。


没有显著差异的游戏的文字云


大図書館の羊飼い在这个分类里还是挺可以接受的,对话轻松平易好理解,可以想见游戏的笑点能翻译出来的话评价确实不会相差太大。
SWAN SONG和キラ☆キラ也在这个分类里,有点意外。
BSD三部都在这个分类里,作为一个带有动作类要素的游戏有这种结果还是可以接受的。(其实做完之后发现VNDB把1和2的汉化时间计作了同一天,所以文本量这么长的游戏的汉化原来是同一天发布的吗...)

有显著差异,且汉化后评价变低的游戏的文字云


我要特意提一下弹丸,弹丸1的p值是8.54583145327e-09,2的p值是9.27049751749e-11,分别是第一小和第二小的p值...换而言之,差异最大最显著。
此外,CROSS†CHANNEL在没有显著差异的分类里,家族計画则在有显著差异且变差的分类里。


有显著差异,且汉化后评价变高的游戏的文字云


如果我没有看错的话,柚子的游戏好像不是评价差不多就是评价变高的..
这里我有点吃惊的是魔法使之夜竟然在这个分类里,可能是因为更多的用户认为这是个以演出取胜的游戏,而演出又是受汉化影响最小的因素之一?还有就是魔法使之夜是不是出过好几个汉化版本而且质量不一,会不会这方面也有影响...?
いろとりどりのセカイ属于有显著差异”且汉化后评价变高的游戏,但いろとりどりのヒカリ又属于“有显著差异”且汉化后评价变低的游戏...有点难以理解。
另外有朋友告诉我他印象里兰斯9也属于差异较大的游戏,不过我没打过就不太清楚了。


4. 结论

通过上面的分析,初步结论是:

汉化与否确实与游戏的评价有一定的关系。具体来说,因游戏而异。总体来说,汉化之后评价变差是普遍现象,但对更多的游戏来说,汉化之前之后评分差异不大。


其实还有不少其他想做的分析,但是在做t test的时候逐渐感觉自己进入了陌生的领域...(没有系统的学过统计学)。而更进一步多分析似乎需要不少统计学的知识,与其用一些自己也一知半解的方法得出一些可能错误的结论,还不如就此打住。可能有人注意到了本来准备了空间的数据最后没有用到,也是因为这个。

此外,目前所得出的结论也有如下限制。
* 数据准备方面的限制,前面已经总结过了。
* 严格来说实验对象应该是同一组人并保持除打的游戏是否为汉化外的其他条件尽可能相同,不过就现阶段来看似乎难以实现这一点。
* 数据的数量,虽然在收集数据时已经对数据的最小值进行了一定的控制,不过想必会有人质疑这点数据量不能说明什么问题。有意思的是,t test尤其在小样本数据上有优异的表现,所以这方面反而不是什么问题。
    * 应该不是问题吧!欢迎比较了解这方面知识的朋友打脸。不过有人不质疑t test是否真的针对小样本分析效果好反而一拍脑门跟我说“你这数据要前后平均分至少相差2数据有50个以上才算有说服力”,有点不知道该说什么...
    * 哦对了,顺便一问,对每个游戏的数据进行一次t test是不是不太对..?

接下来其实可以有更多的分析方向,比如
* 引入空间的数据,分类对数据进行分析。
    * 比如,我们可能会发现,POVテキストGOOD分类下的游戏受汉化因素影响最大,毕竟越是文笔独特的作者写出来的东西越难翻译。
    * 比如,拔作是不是会有更多的用户不需要汉化就打了然后直接打分,受汉化因素的影响会不会比较小?空间是有抜きゲー这个标签的(虽然好像不太准...),也可以依照这个进行分组。

* 一个经常被人提起的现象是,小众游戏汉化之后评价迅速降低。在这个方向上进行分析会不会有些成果?

* 以评分为标准对游戏进行更进一步分类
    * 一个可能对结论是“名作始终是名作,分数越高,受汉化因素对影响越小”

* 现在游戏直播越来越火,如果有玩家是直播通关然后打分,和打汉化的打原版的玩家作对比是不是又会有所不同?

越写越多,再回头看看感觉自己真的只做了最基础的分析...

所以,我把数据放在了Google Drive,解压密码是TYUrYPff7S5DeCaEax36mpcq  欢迎有想法的朋友进行更进一步的分析。
#2 - 2017-4-8 21:37
"这个命题的结论是什么我不是很在乎"  +1。
其实流行的观点被当作真的命题是很正常的
1.信息的渠道:
基本来自论坛、贴吧。此类信息未经过推敲验证,本身就是大家茶余饭后的谈资。
2.认知的特点:
面对大量的信息,人会基于自身固有的思维模式,根据“常识”以及相关的经验进行感性的认知。
1)以偏概全。基于自身熟知某几个知名度较高的游戏汉化后的影响进行判断。
2)处理信息乐于重视更直接的冲击性更强信息。
3)人是社交动物,乐于向他人传播信息。一般具有话题性的作品都会受到褒贬的传播,汉化作品的传播性更好。基于情感的分享和基于理性的分享,显然前者更多。
4)主观判断或成见。
#2-1 - 2017-4-9 16:37
ic
你这么一说我发现还应该有个5)网上的东西随便说说也不用负责任,我的文章就算写的再好也只能解决1)和4),对于5)似乎无能为力
#3 - 2017-4-9 00:54
(しんせいもてもておうこくにいきたい ...)
我十分想知道哪个汉化组的文本能使得作品评价下降最多,最好做个排行榜,能打起来那种。
先谢谢IC小天使,不急离线等༼ و̑̑ ຈل͜ຈ༽و ̑̑
#3-1 - 2017-4-9 16:31
ic
哈哈其实我真想过做这个,不过汉化组什么水平我也不了解做了就是罗列数据没法分析,然后就是两个变量的研究似乎要用方差分析我说实话不太会用...还有其他原因不详细展开了!这里写不下。
#3-2 - 2017-4-9 19:18
默不作声的结城照美(仮)
我觉得目前没有哪个汉化组汉化的作品数足够多使得这个数值具有统计学意义..
#3-3 - 2017-4-9 22:48
七文
朝三暮四的结城照美(仮) 说: 我觉得目前没有哪个汉化组汉化的作品数足够多使得这个数值具有统计学意义..
开玩笑啦。
单纯从存在的事实这一角度来看,似乎这事也没必要追求样本数然后去统计。而且不如说,攻其一点使劲黑那才符合本意是不是(坏水
#4 - 2017-4-9 16:04
(紫陽花の姫君)
感谢聚聚聚聚聚聚
我猜很快就会有剧本和会社分类排行的申请了(bgm38)
#4-1 - 2017-4-9 16:32
ic
まどかまじかー
#5 - 2017-4-9 20:29
(Enjoy your (real) life!)
您好。看了您使用 t-test 的方式,我有些不成熟的建议和想法:

1. 我觉得以汉化时间点把评分分成汉化前评分和汉化后评分根本就无法达到 i.i.d. 的实验要求:由于玩汉化的和不玩汉化的基本上就是会不会日语作为分界线,两个用户群有很明显的差异,而且基本上交集很少。你无法假设他们都有同样的评分准绳,也无法假设两个用户群的评分分布都是一样的!如果你要达到 i.i.d 的实验要求,就得让玩家们玩一遍汉化前的游戏,再把他/她的记忆清空,玩一遍汉化后的游戏,观察两者评分的差别。

2. 那么如何判断汉化到底会不会对作品有显著影响?假设我们有一部未汉化作品 A,和汉化作品 B,我们可以抽取同时评价过这两部作品的人。计算平均分时,以作品 B 的汉化时间为分割线,计算 B 汉化前两部作品的平均分差异和 B 汉化后两部作品的平均分差异。虽然这个没有完全解决同分布的问题,但是比那种无差别计算平均分的计算方法要强多了。

顺便,我就是 Bangumi_Spider 的作者。请问您发现了什么 Bug 并加入了什么 feature,请您在 GitHub 上提交 pull-request 好吗?
#5-1 - 2017-4-9 23:07
阿良良木翔
好的。
#5-2 - 2017-4-10 03:54
ic
没错,我也觉得这个样本的收集方法有问题,所以也在文章里提到这点了。
单纯的计算平均分差异我觉得就不是很科学,如果有什么能完全符合t test的假设的收集数据的方法就好了..
其实结果可解释性这么强是不是说明这方面的影响没那么大
#5-3 - 2017-4-10 03:54
ic
不好我本来是想加一个pull-request的,但是因为数据是3月初爬的,然后我也没改多少就在服务器上改了,爬完之后服务器直接删了忘了备份...等想起来的时候一切都晚了。我尝试回忆一下遇到的问题吧
1. RecordSpider里的self.id_max=300000小了,可以改成400000
2. Azure blob storage我觉得应该是一个optional的功能,可以用try: import  except ImportError:的方式
3. 现在想想可以加入python3的支持,把mysqldb换成python2,3都支持的interface应该就行了(我是用的pymysql)
4. sai改了网站式样,所以RecordSpider现在爬不到东西,如果我没有记错的话,应该是对

followlinks = response.xpath(".//*[[user=id]nomoenomoe[/user]='headerProfile']/div/div[2]/ul//@href").extract

进行某种修改..
5. 如果我没有记错的话,你的spider没有记录英文/日文原名,我觉得如果要做和其他网站的对比的话这个还挺重要的,可以考虑把日文原名也爬下来

        subjectnamecn = response.xpath(".//*[[user=id]nomoenomoe[/user]='headerSubject']/h1/a/attribute::title").extract()[0]
        if not subjectnamecn:
            subjectnamecn = response.xpath(".//*[[user=id]nomoenomoe[/user]='headerSubject']/h1/a/text()").extract()[0]
        subjectnameorig = response.xpath(".//*[[user=id]nomoenomoe[/user]='headerSubject']/h1/a/text()").extract()[0]

应该还有几个想说的,抱歉,过了一个月实在是想不起来了
#5-4 - 2017-4-10 03:55
ic
ic 说: 不好我本来是想加一个pull-request的,但是因为数据是3月初爬的,然后我也没改多少就在服务器上改了,爬完之后服务器直接删了忘了备份...等想起来的时候一切都晚了。我尝试回忆一下遇到的问题吧
1...
怎么[code] block长这么丑,不管了(
#5-5 - 2017-4-10 09:05
Genius、小乖
ic 说: 不好我本来是想加一个pull-request的,但是因为数据是3月初爬的,然后我也没改多少就在服务器上改了,爬完之后服务器直接删了忘了备份...等想起来的时候一切都晚了。我尝试回忆一下遇到的问题吧
1...
Thanks for feedback! 2 和 4 好像比较重要,回去要仔细检查一下;5 的话做与外部数据的 entity linking 时会考虑的。至于 1 的问题,我现在使用爬虫都是直接加参数 -d id_max=400000 的。3 的话我上个周末好像也发现了这个问题,不过我现在倾向于不使用 mysql,直接用 pandas 处理 tsv 文件比较方便,而且现在厂里都是用集群处理数据,tsv 也更通用一些。

Thanks again for using Bangumi_Spider!
#6 - 2017-4-10 17:41
(抵触杀必死作,也不喜欢“废萌”这词的含义被无限扩大 . ...)
无显著差异的文字云内,《KIRA☆KIRA》的汉化组萌你妹多次被指翻译质量低劣,其中有这么张批评贴子,给我留下很深刻的印象,而我自己玩他们汉化的《暗之部屋》也确实看到了不少病句。
汉化之后评价明显降低文字云内,《Muv-Luv Alternative》的汉化组杏爱会则称得上是一个优质组。

不愿意好作品被烂翻译毁掉,因而很不喜欢萌你妹这个组,很不愿意看到秽翼的枫笛汉化版广为流传。
但我以为,作品评分多会随data数的上升而下降,ErogameScape亦有如此现象,而汉化是决定一部作品data数目高低的分水岭,这一份影响力应该远胜多数汉化组的翻译质量。
#7 - 2017-4-10 18:04
(少年听雨歌楼上,红烛昏罗帐。)
说汉化后评分变化会很大的感觉已经比以前少了,以前还能炸出很多“这游戏不该被汉化”党
我自己这几年也观察过不少汉化的游戏,应该说绝大多数游戏分数都是没什么变化的,略微有点变化的可能也是data数上升的正常浮动。而变化大的几个游戏我想了想应该也是原先data低,玩的人都是厨子,毕竟没汉化的老游戏找起来也是有点麻烦的,愿意啃完的肯定都是先期就被这游戏吸引了,所以纷纷打高分。汉化后涌入大量群众分数肯定会下来。
至于汉化质量,我觉得只要不是差破天际,什么病句一大堆,对分数是没太大影响。大多数玩家打分时是不会因为什么文字不优美就去扣分的。
#8 - 2017-4-25 10:25
(世界)
我觉得我还是需要很多时间去玩很多游戏 需要时间....时间.....啊
#9 - 2017-6-18 07:25
几天不见你搞了这么有意思的东西!而且我现在才看到orz
#9-1 - 2017-6-19 01:56
ic
原来只有几天嘛,我体感大概有几年了(
#10 - 2017-6-19 15:30
前天晚上刚考了四个小时的线性回归的路过……从统计的角度上看感觉您这个东西有点问题,等等有空时整理一下详细说说
#10-1 - 2017-6-19 15:42
Genius、小乖
前排聆听专业人士意见。
#10-2 - 2017-6-20 15:18
ic
Genius、小乖 说: 前排聆听专业人士意见。
+1
#10-3 - 2017-6-21 20:26
uniko
Genius、小乖 说: 前排聆听专业人士意见。
非专业人士…学了点皮毛而已…
#11 - 2017-6-21 20:25
前面数据获取和数据清理以及EDA感觉都没啥太大问题
t检验开始可能就有些问题了……从统计的角度来看,我们要分析一个问题,做好上面三步之后要做的应该是建模,我们考虑一个什么模型?
t检验做的事情是,假定我们的样本来自于正态总体的情况下,构造了一个t统计量,并用其做检验,并且检验的原假设一般都是关于总体的均值的。而在此之前样本是否来自于正态总体的这个假定也是需要检验的。
另外p值一般我们都是用0.05作为阈值的,不过这个并不是硬规定,理论上来说看个人喜好。
“对每个游戏的数据进行一次t test是不是不太对..?”如同上面所说,这得看你的模型假设到底是什么。
5楼的想法没太看懂,是想考虑Neyman-Rubin模型吗?
欢迎讨论!
#11-1 - 2017-6-24 09:47
ic
所以从统计学角度来说,要确保结论可靠首先应该确定模型假设是什么..?有什么好的建议嘛..?
#11-2 - 2017-6-24 14:49
uniko
ic 说: 所以从统计学角度来说,要确保结论可靠首先应该确定模型假设是什么..?有什么好的建议嘛..?
在统计里面,模型指的是对样本的一系列假定,比如说最简单的线性模型,我们就假定样本有$y_{i}=\beta_{0}+\beta_{1}x_{i}+\epsilon_{i},i=1,2,...,n$的关系,其中$\epsilon_{i}\overset{iid}{\sim}N(0,\sigma^{2})$
对于模型的选择其实只能凭经验了,对于这个问题我也没啥推荐的,一般来说可以仔细看看数据,多详细做一点EDA(探索性数据分析)看看数据有什么规律或者关系,这样才可能做出一些比较合理的假定。但统计里面一般做了假定还是需要检验的,检验假定是否合理。我感觉上面提到的Neyman-Rubin模型也许可以尝试。
不过你这里的问题主要还是t检验的使用的问题,上面也说了要使用t检验必须要假定样本来自正态总体,并且t检验主要检验的是关于均值的问题。
#11-3 - 2017-6-25 11:28
ic
uniko 说: 在统计里面,模型指的是对样本的一系列假定,比如说最简单的线性模型,我们就假定样本有$y_{i}=\beta_{0}+\beta_{1}x_{i}+\epsilon_{i},i=1,2,...,n$的关...
也就是说还是要多试才能知道什么样的最合适,感觉这部分还挺繁琐的..最近是没什么机会了,有时间想继续做的话会考虑的,十分感谢!