哈哈小说
第 8 卷 · 把电搬下来 · 第 187 章 · 78 段 · 2831 字

解析

「我发给你了,」卫越发语音,语气平,但语速比平时快了一点,「三种格式,不只是排版不一样。」

陆衍把耳机塞上,打开卫越发来的截图。

屏幕上是三列并排:左边是第一份香港样本,一个四层缩进的结构,每一层都有明确的编号规则(1 / 1.1 / 1.1.a / Exhibit A);中间是第二份,编号规则换了一套,但大体逻辑相同;右边是第三份——没有编号,只有缩进,层级靠视觉位置区分,没有数字标记。

他盯着第三份看了几秒,「第三份是手工排的?」

「不是,」卫越说,「是模板自动生成的,有些法律事务所用这种格式,字体大小和缩进是层级标志,不靠编号。」

「那解析的时候靠什么判断层级?」

「靠这两个,」卫越发了一张放大图,「字号差和左边距。」

陆衍把图看了一会儿,「差多少?」

「字号差两磅,左边距差0.25英寸,」卫越说,「问题是这两个数值不是固定的,每份文件可能有微小偏差,不同律所的版本不一样,我试了三个开源解析库,没有一个能正确处理第三份。」

「第三份直接放弃?」

「那要看祁明那边这几份是不是必须的,」卫越说,「你先去问他。」


陆衍给祁明发了一条消息,问的很直接:「您发来的十三份样本里,哪几份是交割必须覆盖的,哪几份是参考材料?」

祁明回复比他预期的快,「主协议、披露清单、两份认证证书、两份许可——六份必须。其余七份是背景材料,有了最好,没有不影响交割。」

陆衍把这条消息截图下来,发给卫越,「背景材料七份,跳过不影响。」

「那第三份格式的在哪里?」

陆衍翻了一下祁明发来的文件清单,「其中一份认证证书用了第三种格式,」他把那份标出来截图给卫越,「这份是必须的。」

插图

「我知道了,」卫越停了几秒,「那就得处理。」


下午,卫越发来一个链接,是他新建的文档,标题是「香港格式3解析方案」。

陆衍点开,文档里有三段,每段一个思路:

第一段是卫越自己写的解析器,针对字号差和左边距建了一套逻辑,可以处理大多数情况,但遇到极端偏差(比如某行因为注脚意外改变了字号)会判断错层级。

第二段是引入第三方OCR+结构识别的方案,成本是每份大约多跑三分钟。

第三段是一个临时方案:遇到格式三的文件,先展示原文PDF截图让用户手动确认层级,确认完了再跑扫描。

陆衍把三段都读完了,然后发了一句:「第三段。」

卫越发了一个问号。

「前两段都是在试图让工具完全理解第三种格式,」陆衍回,「第三段是把不确定的那一步交还给用户确认,和预处理里字段映射不确定就让用户看一眼是同一个逻辑。」

「……我以为你会选第一段,」卫越说,「因为它是最自动的。」

「最自动不等于最准,」陆衍回,「准确是硬条件。」


卫越没有立刻说话。

隔了差不多三分钟,他发了一条:「好,但临时方案就是临时方案,之后还是得做格式三的通用解析,否则这条路会变成每一份格式三都让用户手动确认,律所那边不会接受。」

「我知道,」陆衍回,「这条路只用在这个项目里,下个季度再处理格式三的通用方案。这个项目不影响。」

「那行。」

陆衍把文档的第三段在心里转了一遍。他觉得卫越说的没错——临时就是临时,迟早要补——但眼下这个项目先跑完,把准确度保住,比让工具假装自己理解了更重要。

插图

下午四点,还有另一个问题冒出来。

卫越发了一段截图,是其中一份大陆文件的正文,有一行文字用红框圈了出来:

「如本合同第十七条所述,相关标准认证情况详见附件B之说明。」

「我碰到了,」卫越的消息在截图下面,「交叉引用。」

陆衍看了一眼,想了想,「你说的交叉引用是指什么情况——A文件里提到'见B文件X条款'?」

「对,」卫越说,「但不只是说'见B',是在说'如第十七条所述'——它在引用同一份文件内部另一个条款的内容,但那个条款里说的事情和我现在扫描的这个字段相关。如果不把那个条款的内容也拉过来,单独看这条的话,扫描结论可能会漏。」

「举个具体的?」

「比如说,」卫越停了一下,「这里扫的是'认证有效期至2025年12月',但它同时引用了第十七条,我去翻了一下,第十七条里有一句'如发生标准版本更新,有效期以新版本要求为准'——这句话等于在说这个日期其实是有条件的,不一定是绝对有效期。如果我只扫第一句,报告里就写有效期2025年12月,律所那边如果没有注意到第十七条,判断可能会出偏差。」

陆衍把这段话在脑子里过了一遍,「你现在遇到多少这种情况?」

「我跑了一遍大陆的六份,发现三个,」卫越说,「香港的那边我还没跑,估计更多。」

「三个全是这种'有条件的有效期'类型?」

「不全是,有一个是规格参数引用了另一份文件,一个是责任方的定义在同一份合同另一个章节,还有一个是你刚看到的有效期。」

陆衍想了一下,「跳过。」

「跳过?」

「标记为「交叉引用,未展开」,打上标签,附上引用的原文位置,让律所自己判断,」陆衍说,「我们不展开。」

插图

「为什么?」

「展开了就是做解读,」陆衍回,「我们的工具是找矛盾,不是帮律所读合同。他们自己读合同的能力比我们强,我们帮他们找的是那种机器能扫到、但人工容易漏掉的显式矛盾——日期前后倒置、失效认证、过期证书。交叉引用里的条件判断,不在这个范围里。」

卫越沉默了一会儿,「但如果我们标了「交叉引用,未展开」,律所那边能理解这意味着什么吗?」

「这个得跟祁明说清楚,」陆衍说,「我来说。」


他给祁明发了一条语音消息,用了大概两分钟,解释了交叉引用的情况:工具可以识别并标注,但不会展开分析交叉引用背后的逻辑,因为那是律师的判断范围;报告里会显示「此处有交叉引用,见原文X章X条」,律所团队可以据此手动复核。

祁明回了一条:「可以,我们自己来处理,有标注就行。」

然后停了一下,又补了一句:「这个判断是你们自己做的,还是有行业惯例?」

陆衍想了一下,「我们自己判断的,逻辑是工具做范围内的事,范围内是指机器可以客观核实的——日期、编号、证书有效期。逻辑判断不在这里,标注交给你们。」

「好,这个思路是对的,」祁明说,「之后也这样做就行。」

陆衍把这条消息截图下来,发给卫越,「他确认了。」

「好,」卫越回,「那我把标注格式先定下来。」


晚上,卫越发来了测试结果。

消息里没有说话,只发了一张截图:

大陆样本六份,右侧状态栏全是绿色的「解析成功」,底部有一行小字「共发现2处高置信度矛盾,3处中置信度发现,1处交叉引用标注」。

陆衍看到这个,没有发消息,拿起手边的水喝了一口。六份,全过。

然后第二张截图来了。

插图

香港样本四份,第一份绿色,第二份绿色,第三份右侧状态栏是黄色的「部分解析」,第四份是红色的「解析失败」。

「格式三,」卫越的消息跟在截图后面,「第四份是格式三,解析失败,第三份是格式一和格式三混排,系统判断到一半卡住了。」

「临时方案还没接上?」

「没,我今晚接,」卫越说,「但你看一下第三份的问题——混排是同一份文件里有两种格式,这个情况我之前没想到。」

陆衍把第三份截图放大,看了看,「这种文件多吗?」

「不知道,祁明发来的样本里只有这一份,我得等他把全部六十份发过来才能统计。」

「先把四份的问题处理掉,」陆衍说,「临时方案接上以后再跑一遍,看混排的情况具体有多少。」

「好。」

卫越的消息停了。

陆衍把那张有红色状态栏的截图放大,盯着第四份的状态看了一会儿,想的不是怎么修,而是同一批文件里同时存在三种格式这件事——那说明这批并购材料在原始准备阶段就是多个律所分别出具的,没有统一格式,出卖方或者买方在整合的时候也没有做格式规范化。

这不是偶然的。并购里的合规文件通常是这样:多方参与,各出各的,最后打成一包交给核查方。

他在本子上写了一行:「格式混排=多律所出具,整合层未规范化。」

这本来是一个常识,但写下来以后它变成了工具需要处理的一个具体场景——不是"三种格式里的一种",而是"同一份文件里可能包含不止一种格式"。

这是比他最开始预想的更宽一点的问题。

他把本子合上,把灯调暗,决定先等卫越把临时方案接上,再看接下来怎么走。