摘要

游戏里有一个战斗日志(Logs)窗口,逐行记录“[时:分:秒] 玩家名:某某对某某造成了多少伤害”之类的事件。程序读日志时,每一行会用 OCR 读三次,三次结果一致才接受,这叫“一致规则”。

另一个实验(B167)读了 400 页日志,与预标注比,时钟只有 75% 一致、声明种类 74%。但本实验(B175)发现:B167 用的是严格规则,而生产中的路由(router,把一张截图分给各个读取器的程序)还打开了一个宽松一致选项,会修复漏掉的时钟括号、句末引号/句号,玩家名多数一致即可。B167 测的不是生产版。

因为每行三次读取的原文都保存着,不需要重新 OCR,直接离线用生产规则重算:test 上时钟 97.2%、声明种类 98.2% 与预标注一致。

要回答的问题

B167 报告的约 75% 是否代表生产版日志读取器?如果用生产实际使用的一致规则,结果是多少?

数据与来源

  • B167 的 400 页日志及其 dev/test 划分、每行三次读取的原文、B167 的机器预标注(PRELABEL)和评分器。
  • 预标注取自整帧 OCR,也就是三次读取之一。

方法

rescore.py 用生产规则离线重算每行的一致结果,然后用 B167 自己的评分器与它的预标注比较。不重新运行任何模型。

设置

同时报告严格规则和生产规则,dev 和 test 分开。

结果

与机器预标注的一致率:

字段 dev 严格 dev 生产 test 严格 test 生产
时钟 2187/2925 2705/2925(92.5%) 988/1322 1285/1322(97.2%)
安装模板 2082/2833 2568/2833 922/1238 1198/1238(96.8%)
声明种类 2134/2917 2665/2917 977/1301 1278/1301(98.2%)
行动者 1048/1461 1325/1461 466/608 597/608
法术 130/169 158/169 57/67 66/67
受到伤害 597/792 751/792 259/347 342/347

“安装模板”指这一行对应游戏文件里的哪条日志句式;“声明种类”指这一行在说什么事件(施法、受伤、被摧毁等)。

  • 不一致几乎都是生产读取器不给值(拒识);“给了值却不同”只有模板 4 处、行动者 7 处(dev 5、test 2)。
  • 9,264 个日志行里,严格规则判为冲突的 1,899 行:1,301 行在修复时钟括号后三次一致,304 行玩家名多数一致,剩下 294 行仍冲突;另有 111 行分数低于 0.9。

失败与负结果

  • B167 原报告的约 75% 是严格规则下的数字,不代表生产版。原报告不改,以后引用这批数字以本页为准。
  • dev 上仍有约 7% 的拒识(剩余的读取冲突和低分)。

局限

  • 这是与机器预标注的一致率,不是审核过的准确率。预标注本身来自三次读取之一,所以一致率偏高。真正的准确率要等用户审核 B167 的行。

结论与下一步

生产版日志读取器在这批数据上与预标注高度一致,主要差距是拒识而不是读错。下一步需要人工审核 B167 的行,才能得到真正的准确率。