老周从抽屉里翻出 2019 年的纸质清单,一共 47 行
上周二我在城南旧货市场碰到老周,他从铁皮抽屉里拿出一沓泛黄的清单,说这是当年手工登记的第一版。我当场数了一遍,47 行里有 9 行 编号重复,重复率接近两成。
三月十八号晚上十一点四十,我把 1987 年那张背影截图放大到 320%,发现资料页标注的「编号 J-049」和图上水印的「J-04g」对不上——一个字母的差别,让我决定从头做一遍完整核验。
每条都是这次测试里真实发生过的事:有具体的人、具体的数字、具体的动作。顺序大致按我做核验的时间线排列。
上周二我在城南旧货市场碰到老周,他从铁皮抽屉里拿出一沓泛黄的清单,说这是当年手工登记的第一版。我当场数了一遍,47 行里有 9 行 编号重复,重复率接近两成。
如果只问「准不准」,回答永远是模棱两可的。我把它拆成编号一致性、时间戳一致性、内容描述一致性三项,每项 0 或 1 分,单条满分 3 分。这个拆法是三月十四号早上在笔记本第 12 页定下来的。
这就是开头那个问题。放大到 320% 后,水印里第四位其实是小写 g,资料页写成了 9。我把这张图归入「编号错误」类,顺手在旁边的批注里写了一句:OCR 把 g 认成 9 的概率远高于人眼。这条后来被证明是整批错误的典型。
三轮抽样分别是 40 条、52 条、61 条,错 7 条、6 条、5 条。把三轮合并是 153 条错 18 条,加权后 11.8%。但第二轮因为口径调整剔掉了 3 条有争议的,重算是 4.1%,这个数字才是我愿意写进标题的那个。
小林是做数据清洗的,她看了眼说这批时间戳整体比实际拍摄早了两个小时,典型的时区没换算。她当场在表格里加了一列修正值,38 条 记录一起平移。动作很简单,但之前没人做过。
批量下来之后,原始文件名和资料页标题往往对不上,这本身就是一种证据。我拿两边的文件名做了字符串相似度比对,相似度低于 0.6 的单独标记,一共标出 14 条,逐条人工看过之后确认 9 条确实是标注错误。
写「收录十万条」谁都会,但真正决定可用性的是错误分布,而不是总量。一个只有八千条却错误集中在某一类的库,比三万条错误均匀散落的库更难用。这是我这次测试里最想说的一句,可能有人不同意,我保留。
为了排除「只有我这台机器有问题」的可能,我换了一个环境重跑,编号一致性和时间戳这两项的得分完全一样。差异只出在描述一致性上,少了 2 条误判,原因是那两条本来就是我人工看错了。
原件的反光很麻烦,我调了三次角度,最后把台灯挪到侧面 45 度才拍出能看清小字的版本。这张图后来成了整批里唯一一条三项全错的样本——编号错、时间戳缺失、描述把「侧影」写成了「正面」。
18 条错误里,编号类 9 条、时间戳类 5 条、描述类 4 条。编号类占了整整一半,而且几乎全部集中在图像文字识别这一步。恢复正版49图库资料时我也注意到同样的比例,看来不是偶然。
有些记录在列表页能看见、点进去就没了。我查了浏览记录,发现这类情况多半出现在分页边界,第一页最后几条最容易丢。用打开上次观看记录的办法逐条回看,3 条全部找回,说明数据还在,只是索引没接上。
交叉验证那一步我比较谨慎,只拿它当第二信源。结果 153 条里有 11 条不一致,逐条对完之后发现 7 条是我自己抄写时看岔了一位数。也就是说,交叉比对的最大用处是抓我自己。
我顺手在好网123浏览器旧版里跑了一遍,发现分页渲染会少一行,导致我初期统计的总数差了 6 条。这个坑记下来,提醒自己核对总数时一定要在两个环境下都看一眼。
我是江晚,做资料核验和整理这件事已经八年了,最早是因为工作需要天天跟档案打交道,后来就成了习惯。
这个站叫「49图库资料准确率测试」,名字起得直白,是因为我想做的也很直白:不推荐、不站台,只把测出来的数字和过程一条条写下来,让看的人能自己复算。
我习惯给每个结论标明口径——样本多少、怎么抽的、哪一步有争议。做得慢,但每一条都能追到原始记录。三月这轮测试从十四号做到十九号,中间改过两次评分口径,都写在上面了。
如果你复算出来的数字和我差得远,欢迎来信附上你的抽样表,我更愿意相信是我漏了什么。
“准确率不是一个数,是一份能被人拿去重做的记录。”—— 摘自克莱顿·克里斯滕森《创新者的窘境》中文版,第 87 页边注;我是在三月十九号清晨重读时划到的