晚上八点二十七分,卫越先发来了视频邀请。
陆衍接上,对方屏幕共享已经开了,是一个空白文档,光标在第一行闪着。这是卫越讨论新问题时的习惯——先开一个空文件,等着记。不是提前准备,是等陆衍先把问题说清楚,他再判断技术上怎么处理。
「我先把问题重新说一遍,」陆衍说,「崔俊亮今天提了一类情况:危险品分类标准更新的时候,原来一个大类可能被细分成两个或更多小类。企业更新了SDS,按新标准写了小类,比如「急性毒性,类别三(经口)」;但登记证上还是旧标准的大类写法,比如「急性毒性物质」,没有细分到哪个类别。两边都对,但层级不一样。」
卫越在空白文档上打了几个字,陆衍看得出来是他在记关键词。
「现在工具的做法,」陆衍继续说,「是把SDS上的「危险性类别」和登记证上的「危险品分类」做字段比对,字符串不一样就标矛盾。这个逻辑处理文字差异是够的,但碰到大类和小类这种情况,工具会报出来一条矛盾,但那不是矛盾,是分类层级不同。」
「假阳性,」卫越说。
「对,假阳性。」
「那怎么处理,」卫越说,「我有两个思路,你听一下哪个可行。第一个:建一个映射表,把已知的大类和它能细分出来的小类对应起来,遇到大类-小类关系就不报矛盾,改成中置信度待核实。第二个:不做映射,直接在报告里加一个新输出类型「分类层级差异」,单独列出来,不归入高也不归入中,让律所自己判断。」
陆衍想了一下,「第一个思路有个问题,」他说,「映射表要维护,标准更新了映射表就要跟着更新,这是持续的维护成本。而且不同行业的分类标准不同,化工这套就已经很复杂,如果每个行业都要建映射表,工作量会很大。」
「所以你倾向第二个。」
「我更倾向第二个,但第二个有个问题你也看到了,」陆衍说,「如果加了一个新输出类型,报告格式就变了,客户需要理解一个新东西。」

「那就在报告里加说明,」卫越说,「和「工具不覆盖说明」放在一起,解释「分类层级说明」是什么,用什么逻辑识别出来的,怎么处理。」
「还有一个更根本的问题,」陆衍说,「「分类层级说明」识别的逻辑是什么?工具怎么判断一个字段差异是「层级不同」还是「真实矛盾」?」
卫越停了几秒,「这是关键,」他说,「如果工具不能区分,就没办法自动分类,还是要人判断。」
「我想了一下,」陆衍说,「有一种方法是做包含关系检查。如果SDS上的分类词从字面上「包含在」登记证上的分类词里,比如「急性毒性,类别三(经口)」包含在「急性毒性物质」里,这种情况可以标「分类层级差异(可能是版本细化,建议核实)」。如果两边的分类词没有明显的包含关系,还是报高置信度矛盾。」
「包含关系检查——」卫越在文档里打字,「字面意义上的「包含」,不是语义上的,是字符串上的。」
「对,最简单的做法是字符串包含,」陆衍说,「更准确的做法是做一个同义词词库,但词库维护成本又来了。先做字符串包含,覆盖最常见的场景,边缘情况留给人工。」
「那我先把字符串包含的逻辑写出来,在化工行业的SDS和登记证上测一下,看覆盖率怎么样,」卫越说,「覆盖率够高再推,覆盖率不够就暂时不做自动识别,全部走「分类层级差异」人工标注。」
陆衍觉得这个方向可行,「测试的话,你能拿到化工这类文件样本吗?」
「我问崔俊亮要一批脱敏样本,」卫越说,「就是SDS和登记证,越多越好,版本跨度越大越好。」
「好,我明天联系他,问他有没有样本可以提供。」

他在本子上记下:SDS-登记证,字符串包含检查,覆盖率测试,找崔俊亮要样本。
「还有一件事,」卫越说,「这个「分类层级说明」如果做出来,是放在报告里,还是放在人工附注里?」
「报告里,」陆衍说,「因为这是工具自动识别的,不是人工搜索的,来源是工具,性质和人工附注不同。但要加说明,解释这个类型是怎么来的,和高置信度、中置信度有什么区别。」
「那格式就改了,」卫越说,「报告变成五种类型:高置信度矛盾,中置信度待核实,分类层级说明,格式一致性提示,工具不覆盖说明。」
「五种,」陆衍把这个在本子上写下来,看了一下,「我觉得可以,但要测试一下,看这样报告会不会显得太复杂。如果化工行业的样本里「分类层级说明」出来的条数太多,客户可能会觉得报告难读。」
「我测了之后告诉你,」卫越说。
视频挂断之后,陆衍在桌前坐了一会儿。
今天下午处理了耀之资本的附注问题,晚上又处理了崔俊亮的颗粒度问题,两件事看起来是两个不同的方向,但其实是同一种矛盾:工具的判断能力是有边界的,边界之内的事情工具处理,边界之外的事情要么人工补,要么单独说明,不能混在一起。
附注是「人工补」,分类层级说明是「单独说明」,两种方式处理两种情形。
他在本子上把这个逻辑写了一行:工具边界以内:报告。边界外人工发现:附注。边界外工具部分识别:单独说明类型。
然后他想了一下,把「边界外工具部分识别」改成了「工具识别但判断不完整」。说法更准确一点。

第二天早上,他给崔俊亮发了消息,说明想测试字符串包含逻辑,需要一批SDS和危化品登记证的脱敏样本。
崔俊亮回得很快:「我有,我下午整理一批发你,大概三十到五十对,跨了近十年的版本,够测了。」
「谢了。」
崔俊亮发来的样本比预期快,当天下午四点就到了,一共四十二对,按产品类型分了三个文件夹,每对都打了脱敏标注,字段值保留了分类描述,公司名和产品名打了马赛克。
陆衍转发给卫越,「来了,你跑一下。」
卫越回复「好」,附了一句:「今晚能出初步数据。」
到了晚上十点,卫越发来测试结果。
「字符串包含覆盖率71%,」卫越说,「就是四十二对里面,有三十对里面的SDS-登记证分类差异是字符串包含关系,可以自动识别为「分类层级差异」。剩下十二对,字符串包含关系不成立,但其中有八对我看了,其实也是层级不同,只是用词方式不同,字符串对不上。所以字符串包含能覆盖七成,还有三成靠字符串对不上。」
「71%,」陆衍想了想,「对于第一版来说够用。另外的三成出来的还是什么?」
「另外的三成,如果字符串包含不成立,工具会标中置信度待核实,和现在一样,不会报假阳性,就是不会自动识别成「层级差异」,要靠律所人工看。」

「那就先这样,」陆衍说,「71%自动识别,29%走中置信度,律所人工判断。后续再迭代。」
「好,」卫越说,「我把这个逻辑写进去,明天更新版本给崔俊亮测。」
陆衍把版本更新的事记了下来,然后看了看手机。
连思妍今天早上发过来一条消息,他一直没有回,现在才看到。
消息是:「上周和三个律所的人喝咖啡,有两个人主动问起你们,说「听说有个工具专门做尽调文件核查的」。我没有主动宣传,他们自己听说的,你知道怎么来的吗?」
陆衍回:「不知道,可能是你之前聊的那几个人转出去了。」
连思妍:「大概是这样。」然后隔了几秒,「我说给他们了,有兴趣的可以联系你。」
陆衍:「谢谢。」
他放下手机,在本子上写了一行:工具没有变,是使用它的人开始把它放到不同的地方。
这是今天的最后一行字。