深夜,急诊室灯火通明。一位捂着胸口的患者被推进分诊台,值班护士并没有直接把他送进手术室,而是先量血压、问症状、做心电图,三分钟后,患者被推进了心内科。假如没有分诊这一步,患者直接冲到骨科,后果不堪设想。合同审查也一样。一家公司一年要签几百份合同,采购、销售、劳动、租赁……每一类合同的风险点、法律依据、审查重点都完全不同。如果法务拿到合同先不看类型,直接套模板,轻则返工,重则埋下法律风险。所以,合同审查的第一步,就是“分诊”——合同分类。 本文的主角,是一位不会疲倦的AI分诊护士:它通读合同全文,判断出这份合同属于哪个“科室”,然后自动把合同送到对应的审查通道。我们将从分类的意义、合同类型体系、文本分类模型、关键条款识别、多级分类流程、自动路由机制以及持续训练扩展七个方面,逐层拆解这位“AI分诊护士”是如何炼成的。

岗位关联

学习用AI构建合同分类系统,是进入智能合同审查领域的第一把钥匙。掌握它,你就能为法务、律所、企业风控搭建自动化的合同分诊台,让后续审查策略精准对号入座。

目录
  1. 可视化演示
  2. 1. 分类意义:医院分诊台为何存在
  3. 2. 合同类型体系:医院的科室目录
  4. 3. 文本分类模型:AI分诊护士的训练
  5. 4. 关键条款识别:分诊护士的检查单
  6. 5. 多级分类流程:先急诊后转诊
  7. 6. 自动路由机制:分诊后的转送
  8. 7. 持续训练扩展:护士的在职进修
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

演示智能合同审查系统的合同分类前置流程:文本分类模型归类、关键条款识别辅助、多级分类与自动路由,直观展示如何将合同按类型自动分拣到对应审查通道。

本节配有交互动效(进入视口后自动加载,约 3KB)。

文本分类模型归类 输入合同文本→输出类别 P(类别|文本) 合同是长文档,分类本质是文本分类任务,现代模型优于TF-IDF+SVM

1. 分类意义:医院分诊台为何存在

一个合格的急诊分诊台,是整个医院高效运转的起点。病人一到,分诊护士就通过“主诉加体征”判断就诊方向:胸痛去心内,骨折去骨科,发热去感染科。如果让病人自己摸索该挂哪个科,大厅早乱成一锅粥。合同审查的流程中也有这样一个“分诊台”——合同分类。它存在于一切审查动作之前,决定了一份合同接下来会走完哪条审查流水线,甚至能为合同的风险等级做一个初步判断。

在传统法务流程中,合同分类靠人工。法务专员收到合同后,先看标题、翻条款,凭经验确认类型,再手动套用对应模板。这套流程有两个痛点:慢,且不稳定。一个熟手分类一份合同需要几分钟,而一家中型公司一天可能有几十份新合同;不同的人对同一份合同类型的判断可能不一致,导致后续审查标准不统一。AI的介入,正是为了把这一步变成自动的、即时的、可复现的,并为后续差异化审查策略和风险等级初判奠定基础。

从数学上看,合同分类是一个标准的文本分类问题:把待分类的合同文本 D 映射到一个预定义的类型 c 上,并输出模型认为最可能的那个类型。形式化地写出来:

分类的精度直接决定后续所有环节的体验。就像分诊护士如果把人分错科室,轻则让患者多跑一趟,重则延误治疗;合同分类一旦出错,后续的审查模板、风险清单、责任分配全部跑偏。因此,这个“分诊台”值得被优先建造。

c^=arg⁡max⁡c∈CP(c∣D)\hat{c} = \mathop{\arg\max}_{c \in C} P(c \mid D)
通俗版:AI把合同从头到尾读一遍,在心里给每个类型打分,最高分就是它认为的类型。
  1. 预测类型符号\hat{c}(读作"c-hat")代表模型预测出的合同类型,与真实类型区分开。
    c^\hat{c}
  2. 取最大者\arg\max 表示“找出使得后面概率最大的那个类别 c”。
    arg⁡max⁡\arg\max
  3. 条件概率P(c \mid D) 表示给定合同文本 D 后,它属于类型 c 的概率。
    P(c∣D)P(c \mid D)

2. 合同类型体系:医院的科室目录

医院分诊台的第一件事,是知道医院里都有哪些科室。如果医院只有内外科,病人再复杂也就在两个科之间打转;科室定得越细,分诊就越精确。合同分类的第一步,同样是定义那份“科室目录”——合同类型体系。

在企业实务中,最常见的合同类型包括采购合同、销售合同、劳动合同、租赁合同等。采购合同关注交付、验收、质保;销售合同关注付款、退货、知识产权;劳动合同关注薪酬、工时、解除条件;租赁合同关注租金、押金、维修责任。类型不同,审查清单就完全不同。所以合同类型体系不是一套放之四海而皆准的模板,而是需要结合企业所处行业、历史合同分布和合规要求动态维护的。

“分类”不是拍脑袋想一个词,而是需要维护一个动态的类型集合。这个集合既要覆盖企业历史合同的主要分布,又要与新业务对齐。把它写成集合形式:

正如分诊台的天职是把病人送进对的科室,合同分类的价值也取决于类型体系与企业业务流程的贴合度。科室目录是不是清晰、有没有兜底、多久更新一次,直接决定这位“AI分诊护士”的上限。

C={c采购,c销售,c劳动,c租赁,…,c其他}C = \{ c_{\text{采购}}, c_{\text{销售}}, c_{\text{劳动}}, c_{\text{租赁}}, \ldots, c_{\text{其他}} \}
通俗版:合同分类不是随心所欲的标签游戏,而是一张事先画好的“科室名单”,名单上有什么科,分诊台才能往哪里送。
  1. 类型集合C 是全集,花括号代表把所有候选类型打包成集合。
    C={…}C = \{ \ldots \}
  2. 类型元素c_{\text{采购}} 表示下标为“采购”的具体类型,c 代表单个类别。
    c采购c_{\text{采购}}
  3. 省略号\ldots 表示中间还有其他未列出的类型,实际系统中可能有十几种。
    …\ldots
  4. 兜底类型c_{\text{其他}} 作为“收纳盒”,容纳模型无法明确归类的文档。
    c其他c_{\text{其他}}

3. 文本分类模型:AI分诊护士的训练

新来的分诊护士不是天生就会分诊的。她要练几百个案例:看到“胸痛加大汗”就知道心梗,看到“发热加咳嗽”就想到肺炎。AI分诊护士也一样,它需要从大量“合同文本—正确类型”的配对样本中学会判断。这种学习方法的学名叫“文本分类模型”。训练数据的质量直接决定了这位护士的起点。

文本分类的两大支柱是“文本向量化”和“分类算法”。文本向量化把一段中文变成计算机能计算的数字序列;分类算法则从数字序列中学习决策边界。经典的实现路线是“TF-IDF 特征 + 朴素贝叶斯/逻辑回归”。训练完成后,还要用一份模型从未见过的测试合同来评估准确率,这就是模型评估——只有评估合格的模型才能上线分诊。

朴素贝叶斯是一种特别适合文本分类的概率模型。它利用贝叶斯定理反推“看到这份文本,更可能是哪一类”,并假设文本中的词互相独立:

回到分诊台,老护士会告诉你“患者的各项指标都要综合看”。朴素贝叶斯也是一样:它不依赖任何一个词,而是让合同里的所有词共同投票。这些票不是等权的,每个词用自己的“历史出现频率”作为话语权。

P(c∣D)∝P(c)∏t∈DP(t∣c)P(c \mid D) \propto P(c) \prod_{t \in D} P(t \mid c)
通俗版:先按历史比例给每个类型一个“底分”,再用合同里每个词去调整这张底分表。词越多,证据越充分,最后的分数就越可信。
  1. 正比符号\propto 表示两边相差一个常数倍,不影响比较大小。
    ∝\propto
  2. 先验概率P(c) 是类别 c 在历史合同中的占比。比如过去 20% 的合同是采购类,那先验就是 0.2。
    P(c)P(c)
  3. 连乘运算\prod 表示把所有词的条件概率乘起来,每个词都为“属于 c 类”投一票。
    ∏t∈D\prod_{t \in D}
  4. 词的条件概率P(t \mid c) 表示在 c 类合同中,词 t 出现的概率。若“交期”在采购合同中频繁出现,这个词就会把总分往采购方向推。
    P(t∣c)P(t \mid c)

4. 关键条款识别:分诊护士的检查单

分诊台前,有经验的老护士不会只凭患者一句“我不舒服”就做决定。她会翻开检查单:血压多少、心率多少、血糖多少。对于合同文本来说,那些“检查单上的关键指标”就是关键条款——付款方式、违约责任、知识产权归属、保密义务。

关键条款识别在合同分类中有两个作用。第一,作为辅助分类信号:当整篇文本的措辞模糊时,几处硬性条款能暴露合同的真实类型。例如出现“租赁期限”“押金”这类条款特征词,就指向租赁合同。第二,为后续审查直接提供素材:分类只是起点,条款级的信息抽取才能支撑审查。在工程实现上,通常用“规则先匹配 + 模型再判断”的组合打法:规则层负责锁定明显特征,模型层负责处理模糊文本,这就是规则模型结合。条款定位抽取则负责把特征词从长文本中准确抓出来。

关键条款识别的特征工具,是 TF-IDF——词频-逆文档频率。它回答一个问题:一个词在一份合同里出现得越多、同时在所有合同中出现得越少,说明这个词越能代表这份合同的类型。公式如下:

这就像分诊台的检查单:一个指标单独看没什么,但“体温39度 + 白细胞高 + 咳嗽”组合起来,几乎就能锁定肺炎的方向。TF-IDF正是帮AI挑出“那些值得多看两眼的词”,再用它们组成类型判断的证据链。

tf-idf(t,d)=tf(t,d)×log⁡(Ndf(t)+1)\mathrm{tf\text{-}idf}(t, d) = \mathrm{tf}(t, d) \times \log\left( \frac{N}{\mathrm{df}(t)} + 1 \right)
通俗版:词的“含金量”由两个因素决定:它在当前合同里的出场次数,以及它在全库中的稀有程度。出场多、又稀缺的词,才是辨识合同类型的“高权重证人”。
  1. 词频\mathrm{tf}(t,d) 表示词 t 在文档 d 中出现的次数,出场越多,权重越高。
    tf(t,d)\mathrm{tf}(t,d)
  2. 逆文档频率\log( N / \mathrm{df}(t) + 1 ) 表示“稀有度加分”:包含它的合同越少,这个值越大。
    log⁡(Ndf(t)+1)\log\left( \frac{N}{\mathrm{df}(t)} + 1 \right)
  3. 对数函数\log 把“稀有度”压缩成平稳的加分项,避免次数悬殊的词主导分类结果。
    log⁡\log
  4. 相乘两部分乘在一起,一个词既要“在本文出场多”,又要“在全库稀有”,才能成为强信号。
    ×\times

5. 多级分类流程:先急诊后转诊

优秀的急诊分诊,不是一步到位的。遇到一个昏迷患者,护士先在5秒内判断“这是内科还是外科问题”;如果怀疑是脑外伤,再精确一步“是神经外科”。这种“先粗后细”的策略,对应到合同分类就是多级分类流程。

单级分类把合同直接分到几十个细类里,模型要面对的决策面大,错误率高。多级分类把过程拆成两级甚至三级:第一级粗分类只分“采购/销售/劳动/租赁”等大类;第二级细分类才在粗类内部细化,比如把“采购合同”进一步拆为“原材料采购”“设备采购”“服务采购”。粗分类把决策空间缩小后,细分类的准确率会明显提高。

多级流程中,模型除了输出类型,还要输出“信心值”——置信度。它告诉系统“我对自己这个判断有多少把握”。置信度决定了自动化和人工的切换:

“能自动的尽量自动,不能自动的果断求助”,这是分诊台的设计哲学,也是多级分类流程的哲学。每一级分类都在逐步缩小范围,每一次置信度判断都在为“机器 vs 人”划定安全边界。

route(c^)={自动路由,若 pmax⁡≥τ人工兜底,若 pmax⁡<τ\text{route}(\hat{c}) =\begin{cases}\text{自动路由}, & \text{若 } p_{\max} \ge \tau \\\text{人工兜底}, & \text{若 } p_{\max} < \tau\end{cases}
通俗版:分数过线的合同直接进自动化流水线,分数不够的合同送到人工手里复核,谁也不硬扛。
  1. 最高概率p_{\max} 表示模型给出的最看好的那个类型的概率。对所有类型打过分后,最高分就是 p_max。
    pmax⁡p_{\max}
  2. 阈值判断\tau 是人为设定的置信度门槛,可以根据业务对误分类的容忍度调低或调高。
    τ\tau
  3. 分支结构\begin{cases} 表示分情况讨论:条件一满足执行第一行,否则执行第二行。
    {自动路由人工兜底\begin{cases} \text{自动路由} \\ \text{人工兜底} \end{cases}

6. 自动路由机制:分诊后的转送

分诊台决定病人去心内科还不够,还要做三件事:开一张去心内科的路条、通知心内科值班医生、把病人病历同步给病房。合同分类之后也一样:AI不仅要说出“这是采购合同”,还要让这个结论驱动后续动作——自动路由机制。

路由机制的输入是分类模型输出的类型,输出是一整套可执行的动作集合。动作包括:选用对应的审查模板匹配、分配对应法务或风控人员、设定审查优先级、标记该类型特有的风险项。在大型企业里,路由结果还会推送到合同管理系统中,形成一条待办任务。这就是差异化策略配置与责任部门分配的落地过程。

路由规则本质上是一个从类型集合到路由结果的路由规则映射函数:

自动路由让“分类”从“贴个标签”升级为“改变流程”。就像分诊台不仅给病人挂好号,还提前给科室打了电话,合同一到审查环节,对应的人员资源已经就位。分类的价值,在这一刻真正落地。

f:C→R,r=f(c^)f: C \to R,\quad r = f(\hat{c})
通俗版:路由就是“每种病都有一张对应的诊疗方案”,AI只是把病人带到该去的诊室,后续的流程由规则引擎自动衔接。
  1. 映射符号f: C \to R 读作“从 C 到 R 的映射”。
    f:C→Rf: C \to R
  2. 路由结果r 是某一条具体的路由动作集合,包含模板、责任人、优先级。
    rr
  3. 作用对象f(\hat{c}) 表示把预测类型代入映射函数,得到对应的路由动作。
    f(c^)f(\hat{c})

7. 持续训练扩展:护士的在职进修

一个分诊护士再厉害,遇到新病毒也会手足无措。医院的做法是定期把疑似病历拿去讨论、更新诊疗指南。AI合同分类器同样需要“在职进修”——持续训练扩展,让它可以吸收新样本、学习新类型。

持续训练的驱动力来自两类反馈收集:一是用户的显式修正(法务手动把“加工承揽”改为“服务合同”),二是模型的隐式试探结果(低置信度样本经人工确认后的真实标签)。这些反馈积累到一定量后,触发增量训练,模型在不重演全部历史数据的情况下更新自己。

新类型检测特别需要谨慎。当模型遇到一个“四不像”合同,先做相似度检测:如果它离所有现有类型的中心都远,说明它可能属于新类型。此时建议走一段“标注—评审—入型”的流程,再纳入训练集。增量更新参数可以写成一个简单的加权平均,实现模型的动态更新:

合同类型不是静态的,企业业务一变,新合同形态就会冒出来。一个优秀的AI分诊护士,应当像真正的医务体系一样,有“临床反馈到诊疗指南更新”的闭环。持续训练机制,就是这个闭环的驱动引擎。

θnew=(1−λ)θold+λθfeedback\theta_{\text{new}} = (1 - \lambda) \theta_{\text{old}} + \lambda \theta_{\text{feedback}}
通俗版:模型不会把老本事一键清空,而是“九成经验保留,一成吸收新经验”,通过控制步长避免被少量异常反馈带偏。
  1. 新参数\theta_{\text{new}} 是更新后的模型参数,代表“进修后”的新能力。
    θnew\theta_{\text{new}}
  2. 旧参数\theta_{\text{old}} 是当前线上模型的参数,代表已有经验。
    θold\theta_{\text{old}}
  3. 反馈方向\theta_{\text{feedback}} 代表从新反馈数据里学到的调整方向。
    θfeedback\theta_{\text{feedback}}
  4. 步长\lambda 控制新旧信息的配比,0.9 表示保留 90% 旧知识、吸收 10% 新知识。
    λ\lambda

AI 应用场景

企业法务部的合同智能分诊系统

阶段:合同审查前置处理

解决的问题:传统法务每天收到大量合同,人工分类慢、标准不一,导致审查模板选择混乱,紧急合同还容易在邮件里“排队等分诊”。AI先自动分类并给出置信度,高置信合同直接路由到对应法务,低置信合同转人工确认,把分诊台从“人肉”变成“自动化”。

具体案例:某制造业法务部每月处理 600 份合同。部署分类系统后,采购、销售、劳动、租赁四类的自动识别准确率达 92%,原本每天 2 小时的人工分类时间缩减到 20 分钟,剩余低置信度合同由资深法务人工复核,合同平均审查周期缩短了近一半。

律所并购尽调中的批量合同归档

阶段:数据分析与归档

解决的问题:并购尽调中,目标公司共享出几千份历史合同,律师需要快速梳理合同类型、定位高风险的融资和股权协议。人工逐份翻看效率极低,AI 批量分类帮助律师快速建立“合同地图”。

具体案例:某律所承接一项并购尽调,目标公司提供 4200 份历史合同。AI 系统按类型自动归档,并按风险等级排序,律师团队优先审查风险最高的融资合同和股权协议,整个尽调周期从三周压缩到十天。

电子签约平台的合同类型识别推荐

阶段:用户入口优化

解决的问题:用户在电子签约平台上传合同,平台需要推荐适配的签署模板和审查流程。AI 自动识别合同类型,为用户预先匹配模板、联动法务审查接口,减少用户手动选择模板的步骤和出错率。

具体案例:某电子签约平台在合同上传入口接入分类模型,用户上传一份租赁合同后,系统自动推荐“房屋租赁合同模板”并联动法务审查接口,用户只需确认即可进入下一步,签约转化率提升 18%。

Python 演示

python78 行
# -*- coding: utf-8 -*-"""纯Python实现的朴素贝叶斯合同分类演示"""import mathfrom collections import defaultdict TRAIN_DATA = [    ("采购合同 甲方采购钢材一百吨 供应商十五日内交货", "采购"),    ("供货协议 乙方按订单向甲方供应电子元器件", "采购"),    ("销售合同 甲公司向乙公司出售软件使用许可", "销售"),    ("销售协议 卖方授权买方在限定区域内销售产品", "销售"),    ("劳动合同 用人单位与劳动者约定试用期与薪酬", "劳动"),    ("劳动合同 公司雇佣员工并缴纳社会保险", "劳动"),    ("租赁合同 甲方将写字楼出租给乙方使用", "租赁"),    ("租赁协议 承租人按月支付租金 租期两年", "租赁"),]  def tokenize(text):    return list(text)  def train(data):    classes = []    for _, label in data:        if label not in classes:            classes.append(label)    docs_of_class = defaultdict(list)    for text, label in data:        docs_of_class[label].append(tokenize(text))    vocab = set()    for text, _ in data:        vocab.update(tokenize(text))    priors = {}    cond_probs = {}    for label in classes:        toks_list = docs_of_class[label]        priors[label] = len(toks_list) / len(data)        total_words = 0        word_counts = defaultdict(int)        for toks in toks_list:            for t in toks:                word_counts[t] += 1                total_words += 1        cond_probs[label] = {}        for t in vocab:            cond_probs[label][t] = (word_counts[t] + 1) / (total_words + len(vocab))    return classes, vocab, priors, cond_probs  def predict(text, classes, vocab, priors, cond_probs):    toks = tokenize(text)    scores = {}    for label in classes:        score = math.log(priors[label])        for t in toks:            if t in vocab:                score += math.log(cond_probs[label][t])        scores[label] = score    best = max(scores, key=scores.get)    probs = {}    total = sum(math.exp(s) for s in scores.values())    for label, s in scores.items():        probs[label] = math.exp(s) / total    return best, probs  def main():    classes, vocab, priors, cond_probs = train(TRAIN_DATA)    doc = "甲方出租厂房 年租金五十万元 租期五年 押三付一"    best, probs = predict(doc, classes, vocab, priors, cond_probs)    print("合同文本:", doc)    print("预测类型:", best)    for label, p in sorted(probs.items(), key=lambda x: -x[1]):        print(f"  {label}: {p:.2%}")  if __name__ == "__main__":    main()
目的:演示一个不依赖第三方库的朴素贝叶斯合同分类器,用字符级特征从标注样本中学习,并对新合同输出类型与概率分布。
  1. classes, vocab, priors, cond_probs = train(TRAIN_DATA)读取标注好的合同样本,分别得到类型列表、词表、先验概率和条件概率。
  2. priors[label] = len(toks_list) / len(data)计算先验概率:这种类型在历史合同中的占比。
  3. cond_probs[label][t] = (word_counts[t] + 1) / (total_words + len(vocab))拉普拉斯平滑,防止某个词在某类合同里没出现过导致概率为 0。
  4. score = math.log(priors[label])从先验概率出发,取对数防止大量连乘时数值下溢。
  5. best = max(scores, key=scores.get)选分数最高的类型作为预测结果,等价于公式中的 \arg\max。
  6. probs[label] = math.exp(s) / total把对数分数还原成概率分布,方便人看“AI分诊护士”的把握程度。

常见误区

误区我觉得合同分类很简单啊,看标题是《采购合同》就归为采购类,标题写着劳动合同就归劳动类,三秒钟就分完了,为什么要搞这么复杂的AI模型?

正解标题经常不反映合同的真实性质。一份名为“合作框架协议”的文件可能是采购、销售或合资;更离谱的是,标题写“采购合同”但正文全是融资租赁条款。AI分类必须基于全文,而不是标题。这就像分诊时不能只听患者说“我感冒了”,还要看体温、听诊结果和化验单。标题只是最外层的主诉,正文条款才是真正的症状群。

为何常见:人眼分类时习惯先看标题,这是一种高效启发式,但忽略了合同正文才是权利义务的载体,也低估了“标题党”合同在实务中的普遍性。

误区分类就是要细,最好把采购合同拆成“钢材采购、设备采购、配件采购、服务采购”,分得越细,审查就越精准。

正解类型粒度必须与后续审查策略配套。把“采购合同”细分成“设备采购/原材料采购/服务采购”,如果能对应不同的审查模板和风险清单,就有价值;但如果没有差异化流程,细分只会浪费分类器的精度。过度细分会让每个类别的训练样本变少,模型更易混淆。分类的粒度取决于下游动作,不是越细越好,就像医院开“左手外科”和“右手外科”并不会提升诊疗质量。

为何常见:因为大家对“精细化管理”有直觉崇拜,却忘了分类的初衷是服务于审查决策,而非制造标签游戏。

误区AI 分得又快又准,那就全自动吧,分类结果直接进流程,不用人再看了,反正机器不会累。

正解分类模型必然有不确定的时候。合理的系统用置信度判断:低置信度合同自动转人工复核。高质量的分类系统是“人机协作”,AI 处理批量常规合同,人工处理边缘合同,再把人工结果作为训练数据反哺模型。分诊台的老护士也会有拿不准的时候,这时她会请示值班医生,而不是硬着头皮乱送科室。

为何常见:因为演示视频里 AI 对几个样本都分对了,让人产生“AI 全对”的错觉,忽略了真实数据的分布复杂性和长尾效应。

误区公司新签了“联合开发合同”,我把几份样本扔进训练集重新跑一遍,新类型就能分了,这不是很简单的操作吗?

正解新类型扩展不是“加数据”这么简单。至少要经过四个步骤:新类型检测(判断新样本与现有类型都存在较大差异)、样本标注(保证数据质量)、类别体系评审(确认业务上确实需要新类型)、模型更新(防止灾难性遗忘)。直接加样本可能导致模型在旧类型上的性能下降,就像给护士塞了一本新疾病的教材却不更新诊断流程,反而可能把以前会的病也分错。

为何常见:因为训练模型的代码只要几行就能跑,让人觉得“训练”本身是最省事的环节,忽略了数据质量与类别体系设计才是真正的难点。

面试题

Q1. 合同分类在合同审查流程中的位置是?

单选题 · easy

  • A.审查完成后的归档步骤
  • B.审查流程的最后一步
  • C.审查流程的前置步骤← 正确答案
  • D.独立于审查流程的合规动作

答案:C。合同分类是审查流程的前置步骤,先判断类型,才能选择模板、分配人员和设定优先级。就像分诊必须先于诊疗,分类也先于审查。

Q2. 以下哪一项属于常见的合同类型?

单选题 · easy

  • A.采购合同← 正确答案
  • B.数据库合同
  • C.网络合同
  • D.硬件合同

答案:A。采购、销售、劳动、租赁是典型的业务合同类型。“数据库合同”“网络合同”等都不是标准分类体系中的常见类型,实际业务中很少作为一级分类使用。

Q3. 公式 \hat{c} = \arg\max_c P(c|D) 表达的分类思路是?

单选题 · mid

  • A.选择历史中出现最多的类型
  • B.选择使条件概率最大的类型← 正确答案
  • C.选择与标题最相似的类型
  • D.选择模型认为最冷的类型

答案:B。\arg\max 返回令 P(c|D) 最大的那个 c,也就是模型认为概率最高的类型。它不等于“历史出现最多”,因为条件概率已经结合了当前合同 D 的内容证据。

Q4. 朴素贝叶斯模型的核心假设是?

单选题 · mid

  • A.词与词之间相互独立← 正确答案
  • B.词与词之间完全相关
  • C.文档之间相互独立
  • D.类别之间相互独立

答案:A。朴素贝叶斯假设给定类别后,各特征(词)之间相互独立。这样 P(c|D) 才能拆成各项连乘。现实中词并非完全独立,但这个假设大幅简化了计算,且在很多场景下效果依然不错。

Q5. 与单级分类相比,多级分类有哪些优势?

多选题 · mid

  • A.缩小决策空间降低错误率← 正确答案
  • B.可以直接省去所有人工审核
  • C.支持粗类型后细化的灵活策略← 正确答案
  • D.无需训练数据就能直接使用

答案:AC。多级分类先粗后细,逐层缩小决策空间,提高准确率,也支持灵活的策略配置。但它并不能省去人工审核——低置信度仍需兜底;它也离不开训练数据,因此 B 和 D 错误。

Q6. 当分类置信度低于阈值时,正确的处理方式是?

单选题 · easy

  • A.直接删除该合同
  • B.自动归入采购类
  • C.转人工兜底复核← 正确答案
  • D.强制重新抽取条款

答案:C。低置信度意味着模型判断不确定,安全做法是转人工复核。删除合同会造成业务损失,强行归入某类或盲目重抽条款都无法消除不确定性。

Q7. 合同分类的自动路由可以联动哪些动作?

多选题 · mid

  • A.匹配审查模板← 正确答案
  • B.分配责任部门← 正确答案
  • C.设置审查优先级← 正确答案
  • D.自动修改合同条款

答案:ABC。路由会触发审查模板匹配、责任部门分配和优先级设置,让合同进入对应处理通道。但 AI 不会自动修改合同条款,条款的修改权在法律专业人员手中。

Q8. TF-IDF 中 idf 部分的作用是?

单选题 · hard

  • A.衡量词在文档中出现的次数
  • B.衡量词在全库中的稀有程度← 正确答案
  • C.计算类别的先验概率
  • D.计算模型的预测置信度

答案:B。idf 是逆文档频率,包含该词的合同数越少,idf 越大,代表词越稀缺、辨识度越高。tf 衡量的是“在本文中出现的次数”,而 idf 衡量的是“在全库中的稀有程度”。

Q9. 持续训练中,哪些属于合法的训练数据来源?

多选题 · hard

  • A.法务手动修正的分类结果← 正确答案
  • B.高置信度自动分类的合同
  • C.人工复核低置信度后的标签← 正确答案
  • D.未经处理的原始历史合同

答案:AC。法务手动修正和人工复核后的标签都经过了人的确认,是可靠的反馈信号。高置信度自动分类的合同没有人工确认,可能包含系统性误判;未处理的原始历史合同存在噪音,需要清洗和标注后才能使用。

Q10. 新增合同类型时,以下哪一步必须最先完成?

单选题 · extreme

  • A.直接向训练集添加新样本
  • B.检测新样本与现有类型的距离← 正确答案
  • C.删除全部旧类型合同数据
  • D.提高所有类型的置信度阈值

答案:B。必须先通过相似度检测确认新样本确实与所有现有类型都有足够差异,才谈得上“新增类型”。否则直接加样本会破坏已有决策边界。删除旧数据或调高阈值都无法解决类型缺失问题。