想象一下,你拿着一份 50 页的合同走进律师办公室,律师没有从头读到尾,而是翻到几个关键页面,用荧光笔划出几行字:“甲方、乙方、150 万元、2024 年 3 月 15 日、违约金 30%”——然后告诉你,这份合同的重点都在这里了。这种感觉,就像医生拿到厚厚的体检报告,不会逐页念给你听,而是指着最关键的几项指标说:“血糖偏高,注意饮食。” 合同就像来做年度体检的病人,冗长的条款是它的血肉,而关键信息抽取要做的事情,就是像医生那样“望闻问切”:快速锁定甲方乙方是谁、金额是多少、钱什么时候付、违约怎么办,然后把这些“生命体征”整理成一张清晰的结构化化验单。 本文将从零开始认识合同审查中的关键信息抽取(Key Information Extraction,KIE):它是什么、核心技术有哪些、模型如何一步步进化、法律文本为什么难处理、工程上怎么落地。读完你会明白,AI 读合同和医生做体检,背后藏着同一套智慧。
关键信息抽取是 AI+法律 落地的基石技术,掌握它,相当于掌握了合同审查产品的核心引擎——这是法律科技赛道需求量最大的 AI 工程师技能之一。
目录
可视化演示
展示从合同文本中抽取当事人、金额、日期等核心要素的过程,可切换实体识别、规则抽取与BERT端到端抽取三种模式观察。
本节配有交互动效(进入视口后自动加载,约 3KB)。
实体识别 序列标注为每个字打上实体类型标签,圈定边界 识别公司名、人名、金额、日期等命名实体 文本 → 标签序列 → 实体边界 实体识别解决“信息在哪”的问题。
基本概念:给合同做“深度体检”
想象你去医院做年度体检。医生不会捧着一本体检手册从头读到尾,而是先把最要紧的几项拉出来量一量:血压、心率、血糖。在合同审查的世界里,关键信息抽取扮演的正是同样的角色——把动辄数十页的合同“量一量重点”,把隐藏在复杂句式里的甲方、乙方、金额、日期、违约责任挑出来放在桌面上。
在 AI+法律 领域,关键信息抽取(Key Information Extraction,KIE)的目标非常朴素:让计算机像一位经验丰富的律师助理那样,从非结构化的合同文本中识别出具备法律意义的要素,并输出为结构化的数据记录。注意“非结构化”四个字——合同的自然语言是流动的、含混的、充满长难句的,而结构化数据是固定的、确定的、机器可以检索的。KIE 就是架在这两者之间的桥梁。
要完成这座“桥梁工程”,通常需要四个基本任务协同:命名实体识别负责找出“谁是谁”(甲方、乙方、金额、日期);关系抽取负责理清“谁和谁有关”(甲方签约了乙方、甲方有付款义务);属性抽取负责确认“具体指标是多少”(金额 150 万、期限 12 个月);事件抽取负责还原“发生了什么”(违约、续约、解除)。四个任务层层递进,共同构成完整的抽取体系。整个过程,可以用下面的定义概括:
体检报告最终呈现的是一张结构化的表格——血糖 7.8 mmol/L,血压 120/80 mmHg。信息抽取的目标同样如此:把合同的“生命体征”登记成一条条清晰的记录,让后续的风险评估、条款比对都有了数据基础。没有这一步,后面的智能审查就是空中楼阁。
- $S$(源文本)需要抽取的合同全文,例如一份“采购合同”的全部文字。
- $\mathcal{E}$(实体集合)合同候选实体的集合,例如“甲方”“乙方”“150万元”“2024年3月15日”。
- $\mathcal{R}$(关系集合)可能抽取出的关系类型,例如“签约方”“支付义务”“生效时间”。
- $(h, r, t)$(抽取三元组)一条抽取结果,表示头部实体与尾部实体之间存在某种关系,例如“甲方”与“北京智法科技”之间存在“签约方”关系。
- $\text{抽取}(S)$(结构化输出)把所有三元组收集成一个集合,相当于把合同的“生命体征”登记成一张化验单。
核心技术:体检科的三大检查
体检科里有三台最常用的设备:血压计、心电图机、血液分析仪。它们分别回答了三个问题:“这是什么指标?”“这个指标和其他指标有什么关系?”“这个指标具体是多少?”——信息抽取的三大核心技术恰好对应这三台设备。
命名实体识别(Named Entity Recognition,NER)是信息抽取的基石,如同血压计锁定“这是收缩压读数”一样,它为每个词打上类别标签。比如“北京智法科技有限公司”被标注为“组织名”,“150万元”被标注为“金额”。关系抽取(Relation Extraction,RE)更进一步,像心电图机分析波峰与波谷的关联,它探明两个实体之间的语义关系——“甲方”与“乙方”之间存在“签约方”关系。属性抽取则像血液分析仪,不仅知道有异常,还报出具体数值——合同的“违约金比例”属性被抽取出"30%"这个值。
实现这三个任务,主流方案都把抽取建模为序列标注问题:给句子中的每个词分配一个标签。例如“甲方”打上“当事人”标签,“北京智法科技有限公司”依次打上“组织起始”“组织内部”“组织结束”标签。训练一个模型来预测最合适的标签序列,就能同时完成实体的边界确定和类别判断。关系抽取通常在实体识别之后进行,对候选实体对进行分类;属性抽取则可以看作是“主谓宾”式的三元组补全。每个词的标签选择,可以用下面的式子理解:
三大设备各司其职,检查报告才算完整。同理,仅做 NER 只能“认出谁是谁”,接上关系与属性抽取,才能真正回答合同里“钱怎么付、货怎么交、违约怎么办”这三个灵魂问题。体检的三大件,缺一不可。
- $\mathbf{x}$(输入文本序列)分词后的合同句子,例如“甲方 北京 智法 科技 有限公司”。
- $i$(当前位置)当前正在处理的词在句子中的下标,比如第 2 个词“北京”。
- $\mathcal{Y}$(标签集合)所有可能的实体标签,例如“当事人起止”“组织名”“金额”“其他”等类别。
- $P_{\theta}(y_i \mid \mathbf{x}, i)$(条件概率)给定整个句子和当前词的位置,把第 $i$ 个词标为标签 $y_i$ 的可信程度,它由模型参数 $\theta$ 计算得出。
- $\arg\max$(最优标签)在所有标签中挑概率最大的那一个,作为当前词的最终实体类型。
方法演进:从水银血压计到智能手表
爷爷辈量血压用水银柱式血压计,精确但笨重,还得安静坐着等读数;父辈用电子血压计,一键出数;到了这一代,智能手表不仅能量血压,还能结合心率、睡眠给出健康评估。信息抽取的方法演进,几乎复刻了这条“工具升级”的路径。
最早的方法是规则模板:工程师手写正则表达式和关键词词典,像水银柱一样精准规定“长什么样才算金额”。但这种方法的脆弱性也显而易见——合同里写“人民币壹佰伍拾万元整”这种大写金额时,规则就傻眼了。随后,统计学习把抽取变成了概率预测问题:隐马尔可夫模型(HMM)、条件随机场(CRF)从训练数据中自动学习标签的转移规律,不再依赖死板的人工规则。
深度学习的到来是“智能手表时刻”:BiLSTM 自动从数据中学习上下文特征,无需手工设计特征模板。再往后,BERT 等预训练模型带来了“通识能力”——模型先在海量通用文本上预训练,再在合同数据上微调,只需少量标注就能达到不错效果。这条路径的本质变化是:从“人告诉机器规则”走向“机器从数据中学规律”。最早期的规则方法,可以形式化为:
从水银血压计到智能手表,每一次工具升级都让测量更智能、更省心。同样,抽取方法每一代演进,都让机器在面对“不守规矩”的合同文本时多一分从容。但别忘了一件事:智能手表再聪明,也需要时不时用水银血压计校准——规则方法在今天依然有它不可替代的位置。
- $s$(文本片段)一段待判定的合同文本,例如“合同总金额为人民币150万元”。
- $\mathcal{P}$(模式库)手写规则模式集合,每条规则是一个正则表达式或关键词模板,例如“匹配'人民币数字万元'”的模式。
- $p \text{匹配} s$(模式匹配)判断文本片段是否与某条模式吻合,相当于拿着模板去卡文本。
- $f(s)$(判定结果)只要命中任意一条模式就返回“是”,否则返回“否”——规则方法的典型二分法。
法律文本特征:遇到一个“难搞的体检者”
体检科医生最怕遇到什么样的体检者?让往左站他偏往右走、说话带着浓重方言、病历本上还贴着撕不掉的旧胶带。法律文本在 AI 眼里,就是这样的“难搞体检者”。
法律文本摆在模型面前时会暴露四大“坏脾气”。其一是长句嵌套:一份合同里经常出现“若甲方未能按期支付且经乙方两次书面催告后仍不履行……”这种一百多字的长句,信息一层套一层,把付款条件、催告程序、时间节点全部藏在从句里。其二是术语密集:“不可抗力”“连带责任”“违约金”这类高度凝练的法律术语,一个词顶普通人十句话的信息量。
其三是指代模糊:“该方”“上述款项”“本合同”——几乎每一段都有指代词,必须结合前文内容才能确定它到底指谁,这要求模型具备篇章级理解能力。其四是格式多样:扫描件的模糊缺字、表格里的错位文本、印章遮挡造成的字符残缺,都在挑战抽取系统的健壮性。这四个特征直接导致一个结果:通用信息抽取模型在合同上“水土不服”。长句的嵌套程度可以用句法树深度来量化:
面对“难搞的体检者”,医生不会抱怨“你怎么不配合”,而是会换设备、调流程、多问几句。工程上应对法律文本的特征,同样需要“特事特办”——领域定制模型、数据增强、后处理纠错,都是为了驯服这个不配合的“病人”。
- 句法树 $T$把“若甲方未按期支付……”这样的长句拆成树形结构,每个节点是一个短语或从句。
- 叶子节点 $\text{leaf}$不再包含子从句的最基本短语,其深度定义为 1。
- 递归公式 $1 + \max \text{Depth}(c)$一个节点的深度等于其所有子节点中最大深度加 1——子句套子句,深度自然累加。
- 抽取难度与深度成正比嵌套越深,模型需要跨越的句法距离越远,信息定位越难,整体难度越高。
关键算法:多科室会诊
高危病情面前,医院会组织多学科会诊(MDT):心内科看心脏标记物,影像科看片子,检验科看指标,最后主诊医生综合所有信息拍板。合同信息抽取的经典算法体系,就是一场这样的“会诊”。
当模型读到“甲方北京智法科技有限公司在2024年3月15日前向乙方支付定金50万元”时,词向量嵌入层先把每个词转成数字向量;BiLSTM 像两个相向而行的侦察兵,分别从前往后、从后往前扫描,拼出每个词的完整上下文;注意力机制则像会诊中的“重点观察”——当模型处理“支付”时,注意力会集中到“甲方”“定金50万元”这些关键词上。
CRF 作为会诊的主诊医师,审查的不是单个词,而是整条标签序列的合法性——“当事人的标签后面不能再紧跟金额标签”,把不合理的标签路径直接否决。BERT 则像一个“读过万卷书”的通才医生,它用自注意力替代 BiLSTM 和注意力机制的组合,在海量文本上预训练后,只需在合同数据上微调就能显著提升抽取效果,尤其擅长解决法律文本的长距离依赖。CRF 的序列约束思想,可以用下面的式子表示:
会诊的价值在于互补:BiLSTM 负责读上下文,注意力负责聚焦重点,CRF 负责规则约束,BERT 则带着“通识”降维打击。没有哪个单一算法是万能的——组合起来,才能对付合同这个“复杂病人”。
- $\mathbf{x}$(输入序列)“甲方 北京 智法科技 有限公司”分词后的词序列。
- $\mathbf{y}$(标签序列)对应的实体标签序列,例如“当事人、组织起、组织内、组织终”。
- $\phi(y_{i-1}, y_i, \mathbf{x}, i)$(局部打分)评估在位置 $i$ 选择标签 $y_i$ 且前一位为 $y_{i-1}$ 的合理程度,合并了“上一个是什么标签”和“当前词像什么”两类证据。
- $\exp(\sum \phi)$(序列打分)把每个位置的分数累加并取指数,得到整条标签序列的“综合得分”。
- $Z(\mathbf{x})$(归一化因子)所有可能标签序列的得分总和,作为分母把分数压成概率。
- $P(\mathbf{y} \mid \mathbf{x})$(条件概率)给定输入文本,这条标签序列在所有候选方案中占的比重。
合同审查实践:从挂号到拿报告
体检不是坐在诊室里等医生,而是一整套流程:前台登记、分诊护士引导、各科室转悠、最后拿着报告找医生解读。合同审查的信息抽取实践,也是一条环环相扣的流水线。
工程上,一条典型的合同智审流水线有四站:第一站“条款定位”,找出合同中的章节和条款边界,比如“第四条 付款方式”,把庞然大物切成小块;第二站“要素对齐”,把每个小块里抽取出的要素映射到标准字段字典——A 公司写的“订金”和 B 公司写的“预付款”,统一归入标准字段“预付资金”;第三站“风险评估”,把结构化要素和风险规则库比对;第四站“报告生成”,用模板把风险点翻译成律师能直接看懂的结论。
要素对齐是其中最花心思的一环:标准字段字典要覆盖数百个字段,每个字段还要搭配同义词表、值域约束和默认值。风险评估层的规则库融合了法律专家经验,例如“违约金比例超过 30%”触发红色告警,“管辖地非乙方所在地”触发黄色提示。整条流水线最后输出的风险评分,指导律师优先处理最高危的条款。风险评分可以简化为如下加权求和:
体检报告的最后一页永远有一句“建议随访”——流水线输出的风险评分也一样,它不会替你下结论,但能把律师的注意力精准引向最需要复查的部位。这才是信息抽取在合同审查中的真正价值:不是取代人,而是帮人找到重点。
- $v_i$(指标取值)第 $i$ 个风险指标的数值化结果,例如违约金比例 0.30。
- $w_i$(风险权重)每个指标在整体风险中的相对重要性,由法律专家根据经验设定。
- $w_i \times v_i$(单项贡献)单个指标对整体风险的贡献量,权重越大、取值越高,贡献越突出。
- $\text{Risk}$(总风险分)所有指标贡献的累加和,超过预设阈值就触发人工复核。
工程优化:校准与培训
再精密的体检设备也要定期校准:用标准器一量,偏差超过 0.1 就报修。再资深的医生也要持续学习:诊疗指南更新了,就得去听新讲座。合同信息抽取系统的工程优化,同样绕不开校准、培训与协作。
数据标注是“校准”:需要专业律师参与制定标注规范——哪些字段算作有效、模糊边界如何判断,并形成标注指南。模型微调是“培训”:在通用预训练模型之上,用几千份已标注合同继续训练,让模型适应“法律语域”的说话方式。人机协同则是“协作机制”:AI 先给出初筛结果和置信度,律师只复核高风险的 20%,实现“机器干重活、人做决策”。
评估优化效果不能只看准确率:精确率(P)衡量“抽出来的对吗”,召回率(R)衡量“该抽的漏了吗”,F1 是两者的调和平均,也是业界最常用的综合指标。当一个合同抽取系统在自建测试集上 F1 逼近 0.95 时,不要高兴得太早——换个来源的合同、换种排版,分数可能跳水到 0.8 以下。稳健性测试和持续监控,是工程化不可省略的一环。F1 的计算方式如下:
校准、培训、协作,三者缺一不可。只有标准器准、医生水平够、流程配合好,体检报告才真正值得信赖。合同信息抽取系统的上线不是终点,而是一个持续优化循环的起点——就像体检年年要做,模型也要季季校准。
- $P$(精确率 Precision)模型判定为实体的一堆结果中,真正是实体的比例——好比体检仪器说“你血压高”,有多少次是真的高。
- $R$(召回率 Recall)所有真实的实体中,模型成功找出的比例——好比所有真正的高血压患者中,仪器查出了多少。
- $P + R$(分母)两者相加形成“互相牵制”——只追求精确率会让模型变得保守,只追求召回率又会让模型变得冒进。
- $F_1$(调和平均)综合衡量两者的平衡程度,取值范围 0 到 1,越接近 1 说明系统越可靠。
AI 应用场景
智能合同审查系统
阶段:信息抽取 + 风险评估
解决的问题:传统人工审阅一份 100 页合同需要一整天,且容易遗漏隐藏在长句中的风险条款。AI 先抽取当事人、金额、期限、违约金等关键要素,再自动对照风险规则库,15 分钟就能生成初审报告。
具体案例:某大型国企法务部上线的“合同智审”系统,每周处理约 200 份合同。系统自动识别出“乙方收款账户与签约主体不一致”的风险组合,法务人员只需复核系统标记的高危项,效率提升 5 倍。
合同要素数据库自动构建
阶段:信息抽取 + 知识库构建
解决的问题:企业积累了海量历史合同,信息散落在 PDF 和 Word 中,无法统计分析。用抽取技术将历史合同转化为结构化数据库,才能支持按金额、签订方、到期日等条件检索。
具体案例:某租赁公司把 10 年积累的 12000 份合同全部结构化,构建了合同要素数据库。管理层一键导出“未来三个月到期合同清单”,业务部门自动统计“平均付款账期”。
合同风险预警机器人
阶段:事件抽取 + 时序监控
解决的问题:合同签完不是结束,履约过程需要持续监控。抽取合同中的付款节点、交付节点、续约窗口等关键日期,结合日历自动触发提醒,避免因遗忘导致的违约或被动续约。
具体案例:某 SaaS 企业将合同中的“自动续约条款”抽取后接入 CRM 系统,在续约窗口前 30 天自动给销售发提醒,续约漏签率降为 0。
Python 演示
# -*- coding: utf-8 -*-import reimport json class ContractInfoExtractor: """合同关键信息抽取器(演示版)""" def __init__(self): self.party_keywords = ['甲方', '乙方', '丙方', '丁方'] self.amount_pattern = re.compile( r'(?:人民币|RMB|¥)?\s*([\d,,]+(?:\.\d+)?)\s*万(?:元)?', re.I) self.date_pattern = re.compile( r'(\d{4})\s*年\s*(\d{1,2})\s*月\s*(\d{1,2})\s*日') def extract_parties(self, text): parties = {} for keyword in self.party_keywords: pattern = re.compile(keyword + r'[::]\s*([^,。;,;\n]+)') match = pattern.search(text) if match: name = match.group(1).strip() parties[keyword] = name return parties def extract_amount(self, text): amounts = [] for match in self.amount_pattern.finditer(text): value = float(match.group(1).replace(',', '').replace(',', '')) amounts.append({'金额': value, '文本': match.group(0)}) return amounts def extract_date(self, text): dates = [] for match in self.date_pattern.finditer(text): year = int(match.group(1)) month = int(match.group(2)) day = int(match.group(3)) dates.append({'日期': '%04d-%02d-%02d' % (year, month, day), '文本': match.group(0)}) return dates def extract(self, text): result = { '当事人': self.extract_parties(text), '金额': self.extract_amount(text), '日期': self.extract_date(text), } return result def generate_report(self, result): lines = ['合同关键信息抽取报告', '=' * 20] for party, name in sorted(result['当事人'].items()): lines.append('- %s: %s' % (party, name)) for i, item in enumerate(result['金额'], 1): lines.append('- 金额%d: %g 万元' % (i, item['金额'])) for i, item in enumerate(result['日期'], 1): lines.append('- 日期%d: %s' % (i, item['日期'])) return '\n'.join(lines) if __name__ == '__main__': sample = """ 甲方:北京智法科技有限公司 乙方:上海云天信息技术有限公司 双方本着平等自愿原则,就软件开发服务达成如下协议。 合同总金额为人民币150万元,分三期支付。 本合同签订日期为2024年3月15日。 若发生争议,双方协商解决。 """ extractor = ContractInfoExtractor() result = extractor.extract(sample) print(json.dumps(result, ensure_ascii=False, indent=2)) print() print(extractor.generate_report(result))
self.amount_pattern = re.compile(预编译金额匹配模式,避免在循环中反复编译正则,提高匹配速度。pattern.search(text)在合同文本中查找当事人关键词冒号后面的内容,是 NER 中“词典+规则”的经典做法。r'[::]\s*([^,。;,;\n]+)'用否定字符类截取冒号后的名称,直到遇到分隔符或换行为止。match.group(1).replace(',', '')清洗金额中的千分位逗号,保证float转换不出错。result = {将当事人、金额、日期三类抽取结果汇总为结构化字典,模拟 KIE 的三元组输出。extractor.extract(sample)调用统一入口执行全流程抽取,屏蔽内部细节。
常见误区
误区合同格式都很规范,我写几个正则表达式就能搞定抽取,不用上什么深度学习。正则又快又准,几百行代码就能覆盖大部分合同。
正解现实中合同格式千差万别,同样是签约日期,有的写“二〇二四年三月十五日”,有的写“2024.3.15“,还有的藏在复杂从句里。规则能覆盖 80% 的标准场景,但剩下 20% 的”自由发挥“恰恰是风险最高的部分。深度学习方法通过大量样本学习,能像医生一样”见多识广”,应对各种非常规表达,并且能自动从上下文推断语义。
为何常见:正则表达式确实在小规模标准合同上表现很好,容易让人产生“够了”的错觉。只有当合同来源变得丰富、格式变得多样时,规则的脆弱性才会暴露出来。
误区只要我标注足够多的合同,模型效果就一定提升,所以我应该尽量堆量。十万份合同砸下去,模型自然就强了。
正解标注质量比数量更重要。如果标注规范不统一——有的标注员认为“违约金比例”只标数字,有的连单位一起标——模型会学到互相矛盾的模式。更关键的是要覆盖“难例”:长句、歧义、稀缺实体类型。1 万份高质量标注加上 2000 份难例,往往好过 10 万份粗糙标注。标注质量决定了模型效果的上限。
为何常见:深度学习给人的直觉就是“数据越多越好”,但忽略了标注一致性和难例覆盖对模型实际能力的决定性影响。
误区模型把甲方、金额、日期抽取出来,系统就能直接生成审查报告了。抽取完成,万事大吉。
正解模型只是“初筛”,抽出的实体还需要大量后处理。比如多个金额需要区分“合同总额”还是“预付款”;抽取的公司名可能有别名,需要统一链接到权威数据库;还要做交叉验证——“付款期限”和“逾期违约金”是否互斥。工程上,后处理逻辑往往占总开发量的 40% 以上,这一点在论文里看不到。
为何常见:学术论文展示的都是“效果惊艳”的抽取结果,让人误以为模型输出即可直接使用,忽视了工程落地的那些“脏活累活”。
面试题
Q1. 在合同关键信息抽取中,命名实体识别(NER)的主要任务是?
- A.判断合同是否有效
- B.识别文本中的实体并标注← 正确答案
- C.生成合同的摘要文本
- D.将合同翻译成其他语言
答案:B。NER 的核心任务是识别文本中的人名、组织名、金额、日期等实体并标注其类别,就像体检时先认出“这是血压计读数”。A 是合同的效力判断,C 是摘要生成,D 是机器翻译,都不属于 NER 的范畴。
Q2. 下列哪一项是规则模板方法在信息抽取中的典型不足?
- A.需要 GPU 算力支持
- B.无法处理规范格式表达
- C.面对多样表达时召回率低← 正确答案
- D.无法处理大规模合同数据
答案:C。规则模板靠手写模式匹配,对符合标准模式的文本效果好,但遇到同义表达、复杂嵌套时极易漏抽,召回率低。A 说反了,规则方法不需要 GPU;B 也说反了,规则对规范格式恰恰最有效;D 错误,规则方法跑大规模数据很快,难的是覆盖各种表达。
Q3. BiLSTM-CRF 中,CRF(条件随机场)的主要作用是什么?
- A.将文本转换为稠密词向量
- B.考虑标签间的约束关系← 正确答案
- C.大幅降低训练数据需求
- D.抑制梯度爆炸保持稳定
答案:B。CRF 在 BiLSTM 输出的基础上建模标签之间的转移关系,比如“当事人标签后不能直接跟金额起始标签”,从而保证整条标签序列合法。词向量由嵌入层负责(A),降低数据量和梯度缩放都与 CRF 无关(C、D)。
Q4. BERT 等预训练模型相比传统深度学习模型,在合同信息抽取中的优势包括?
- A.更强的长距离依赖捕获力← 正确答案
- B.微调所需标注数据较少← 正确答案
- C.完全免除后处理环节
- D.自注意力理解上下文语义← 正确答案
答案:ABD。BERT 的自注意力机制让任意两个词可以直接交互,天然擅长捕捉长距离依赖(A 正确);预训练获得的知识使模型在少量标注下微调也能有不错效果(B 正确);自注意力是 BERT 理解上下文的核心机制(D 正确)。但抽取结果的清洗、消歧、交叉验证等后处理在任何模型中都是必须的,C 错误。
Q5. 在关系抽取中,给定句子“甲方应于2024年3月15日前向乙方支付定金50万元”,下列哪组抽取方案最合理?
- A.抽取金额实体五十万元,忽略定金性质
- B.将支付日期设为核心实体直接关联甲乙方
- C.仅保留甲方与乙方之间的支付关系
- D.提取支付义务三元组并保留定金属性← 正确答案
答案:D。D 把“甲方—支付义务—定金50万元”抽为完整三元组,保留了款项性质,这是合同审查中最需要捕捉的法律关系。A 丢失了“定金”的法律性质,B 混淆了时间与义务的主次,C 遗漏了核心标的。关系抽取的粒度选择,决定了下游风险判断的准确性。
Q6. F1 分数是精确率(P)和召回率(R)的调和平均,当模型只输出极少结果但每个都正确时,F1 会如何变化?
- A.精确率高但召回低,F1偏低← 正确答案
- B.精确率召回率都高,F1也高
- C.精确率低但召回高,F1偏低
- D.F1 数值不会产生任何变化
答案:A。模型只输出少量结果时,输出的大概率正确,精确率很高;但大量真实实体被漏掉,召回率很低。调和平均对“偏科”很敏感,F1 会明显偏低。这就像体检只查一项指标,查到的都准,但覆盖面严重不足,整体评价不会高。
Q7. 关于法律文本的特征,以下说法正确的有?
- A.法律文本普遍使用短句强调逻辑
- B.长句嵌套提升信息抽取的难度← 正确答案
- C.指代模糊要求模型理解整篇文书← 正确答案
- D.术语密集对通用模型影响甚微
答案:BC。法律文本恰恰以长句和复杂嵌套著称,A 说反了;“该方”“上述款项”等指代词需要跨句回溯,要求篇章级理解,C 正确;密集的专业术语会导致通用词向量表示偏差,影响非常大,D 错误。这些特征正是通用 NER 模型在合同场景中表现不佳的根源。
Q8. 在合同审查实践流程“条款定位→要素对齐→风险评估→报告生成”中,“要素对齐”指的是什么?
- A.将合同原文翻译为通俗语言
- B.把要素映射到标准字段字典← 正确答案
- C.将多份合同合并为一份文档
- D.用大模型直接生成合同摘要
答案:B。要素对齐解决“叫法不统一”问题——A 公司的合同叫“订金”,B 公司的合同叫“预付款”,标准字段字典统一归入“预付资金”。它是把自然语言要素映射到统一结构化字段的关键步骤,是后续风险判断的数据基础。
Q9. 合同信息抽取中,常见的实体类型包括?
- A.甲方、乙方等双方当事人的名称← 正确答案
- B.合同的总金额及其支付方式← 正确答案
- C.合同签署日期与生效日期← 正确答案
- D.违约责任条款的完整段落
答案:ABC。当事人、金额、日期是典型的合同要素实体。D 的“违约责任条款完整段落”是一整段结构化条款,属于段落级内容而非实体。NER 的目标是把文本中离散的“要素点”标出来,而不是把长文本整体当作一个实体。
Q10. 工程优化中“人机协同”的核心思想是什么?
- A.用 AI 系统完全替代律师工作
- B.AI 做初筛而律师做终审← 正确答案
- C.人工标注数据供 AI 持续学习
- D.多头模型进行交叉验证决策
答案:B。人机协同定位为“AI 初筛 + 专家终审”:AI 快速抓取要素、识别风险,把最可疑的条款和理由推给律师,律师做最终判断。这不是取代(A 错),不是单纯的数据标注(C 错),也不是算法层面的多头验证(D 错),而是流程分工上的互补协作。