法院档案室里,经验丰富的老周每天要做一件看似简单却极其重要的事:从堆积如山的判决书中,用红笔圈出当事人的姓名、公司的名称、涉案的金额——然后把它们抄进索引卡片。律师来查案时,全靠这些卡片快速定位卷宗。老周曾经跟徒弟感叹:“要是能把这项手艺教给机器,我就能退休喝茶了。”其实,老周的手艺正是人工智能里一个经典任务——命名实体识别(NER)。而当他面对的是法律文书时,这个任务就变成了法律命名实体识别(Legal NER)。法律文本有它独特的“脾气”:句子特别长、术语特别专业、实体层层嵌套,普通算法常常看走眼。这篇文章,就是用老周和他同事们的档案室故事,带你走进“教计算机读判决书”的完整旅程。

岗位关联

掌握法律 NER 是进入法律科技领域的敲门砖,它直接支撑合同审查、案例检索、庭审笔录结构化等核心业务,是 AI 法律产品从“能读”到“读懂”的关键一步。

目录
  1. 可视化演示
  2. 概念与价值
  3. 序列标注任务
  4. BIO标注体系
  5. BiLSTM-CRF算法
  6. 法律领域特性
  7. 实战应用评估
  8. 预训练模型优化
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

NER 模型对法律文本进行序列标注,识别法条条款、机构、日期等命名实体。切换模式可查看实体类型网络与性能统计。

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

实体类型标注 序列模型逐词标注识别实体类型 法条/机构/日期分类不同实体 yᵢ = f(xᵢ) 标注强度越高,识别实体越多

概念与价值

档案室的老周有个绝活:不管多厚的卷宗,他一眼就能找到关键信息。“张三欠甲公司五十万元”这句话,他会用红笔圈出“张三”(人名)、“甲公司”(单位)、“五十万元”(金额),再写进索引卡片。这些卡片是档案室的宝贝——律师查案、法官写文书、审委会讨论,全靠它们。命名实体识别,本质就是把老周的“圈画+分类”手艺教给计算机。

技术术语上,命名实体识别(NER)的任务是从非结构化文本中识别出具有特定意义的实体,并归类到预设类型。法律领域的核心实体通常包括三类:人名(PER)、组织名(ORG)、金额或数量(AMT)。相比新闻领域的通用 NER,法律 NER 对准确率的要求近乎苛刻——法条引用错一个数字,可能导致整份合同的审查结论反转。

评估这套“自动圈画”系统做得好不好,最直接的指标是精确率(Precision):机器圈出来的内容里,有多少是真正需要标注的实体。

法律科技的产品经理最怕的就是“冤枉好人”——一次误判可能导致律师错过关键条款。精确率低时,系统的可靠性会大打折扣,这也是为什么法律 NER 项目往往把精确率作为第一道质量门槛。

P=TPTP+FP\displaystyle P = \frac{TP}{TP + FP}
精确率的含义是:程序说“这是实体”的候选里,找对的比例。档案室把这叫“不冤枉好人”——圈出来的十个信息里,九个是真正的人名或金额。
  1. T P(真正例)被程序正确识别为实体的部分,相当于老周红笔圈对的人名和金额。
    TP\displaystyle TP
  2. F P(假正例)被程序误判为实体的部分,比如把普通动词“赔偿”圈成了人名。
    FP\displaystyle FP
  3. 求和运算分子除以分母,求出“找出来的信息中正确信息的占比”。
    TPTP+FP\displaystyle \frac{TP}{TP + FP}

序列标注任务

老周圈画时有个怪习惯:他从来不是跳跃着找名字,而是从第一句开始,一个字一个字地扫过去,每扫到一个词就心里默念:“这个词是人名吗?是单位吗?是金额吗?还是无关紧要的连词?”这种“逐词做决定”的方式,在自然语言处理中被称为序列标注。它把文本理解问题,转化成了每个词都领一个身份标签的问题。

在数学上,序列标注的输入是一个词序列 $X=(x_1, x_2, \ldots, x_T)$,输出是等长的标签序列 $Y=(y_1, y_2, \ldots, y_T)$。模型学的是条件概率 $P(Y|X)$,即在给定整个句子的情况下,这串标签出现的概率有多大。用链式法则展开,这个概率可以拆解成每个词标签的连乘。

老周常说:“圈名字不能只看眼前半拉字。”序列标注模型的价值恰恰在于训练时见过大量完整句子,所以它懂得“拿全局信息做局部判断”。这种建模方式,为后续的 BIO 标签体系和 CRF 约束打下了数学基础。

P(Y∣X)=∏t=1TP(yt∣x1,x2,…,xT)\displaystyle P(Y|X) = \prod_{t=1}^{T} P(y_t | x_1, x_2, \ldots, x_T)
这条公式的意思是:每个词获得标签的可能性,不是孤立决定的,而是参考了整个句子后权衡出来的。老周能圈对“判决”后面的“赔偿”,是因为他看了前面的内容。
  1. 条件概率$P(Y|X)$ 表示给定句子 $X$ 后,标签序列 $Y$ 出现的概率,模型的目标是让这个概率尽可能大。
    P(Y∣X)\displaystyle P(Y|X)
  2. 连乘符号$\prod_{t=1}^{T}$ 表示从第一个词到最后一个词,把每一步的条件概率相乘。
    ∏t=1T\displaystyle \prod_{t=1}^{T}
  3. 单词条件概率$P(y_t | X)$ 是第 $t$ 个词在整句语境下被贴为标签 $y_t$ 的概率,体现了“全局视野”。
    P(yt∣x1,x2,…,xT)\displaystyle P(y_t | x_1, x_2, \ldots, x_T)

BIO标注体系

档案室后来推行了一套标准化贴纸制度,老周给徒弟解释:“你看,'北京高院'这四个字里,'北'是单位名字的开头,贴个 B-ORG;'京''高''院'都是这个名字的一部分,贴 I-ORG;而'判决'这么重要的动词,不属于任何实体,贴 O。”这套 B(Begin)、I(Inside)、O(Outside)系统,就是深度学习时代最主流的序列标注标签体系。

BIO 体系定义了每类实体的“标签模板”:实体首词标 B-类型,后续词标 I-类型,非实体词标 O。进一步的 BIOES 扩展增加了 E(实体结尾)和 S(单字实体),让标签边界更加清晰。这种体系的核心价值在于:它把识别的粒度从“整段文本”下放到了“每个词”,使模型可以精确地表达实体的起止位置。

标签序列之间必须遵守严格的合法性约束:I 不能直接跟在 O 后面,也不能跟在不同类型的 B 后面;一个实体的内部必须是“先 B 后 I”的递进结构。这种约束可以用指示函数表示。

这套“贴纸纪律”看起来死板,却让机器输出的标签序列永远结构工整。老周笑着说:“标签贴得规整,后面的同事查起来才顺心。”BIO 的合法性约束,也正是 CRF 层存在的意义。

1((yt−1,yt)∈T)\displaystyle \mathbb{1}\big((y_{t-1}, y_t) \in \mathcal{T}\big)
这个公式描述的是“合法标签对”集合:只有符合 BIO 规则的相邻标签组合才被允许,其余一律当非法处理。老周的贴纸从不会出现“O 后面突然贴 I-PER”的乱子。
  1. 指示函数$\mathbb{1}(\cdot)$ 是条件成立时取 1、不成立时取 0 的记号,用来判断标签对是否合法。
    1(⋅)\displaystyle \mathbb{1}(\cdot)
  2. 相邻标签对$(y_{t-1}, y_t)$ 表示第 $t-1$ 个词和第 $t$ 个词的标签组合,比如 (B-ORG, I-ORG)。
    (yt−1,yt)\displaystyle (y_{t-1}, y_t)
  3. 合法集合$\mathcal{T}$ 是全部合法标签对的集合,包含 (O, B-)、(B-, I-)、(B-, O) 等,不包含 (O, I-*)。
    T\displaystyle \mathcal{T}

BiLSTM-CRF算法

老周老了,记性不如从前。档案室给他派来个记忆力超群的年轻人小陈。小陈有个本事:一句话他能正着听一遍、倒着听一遍,然后告诉你每个词“最可能是哪类标签”。这个双向阅读的能力,正是 BiLSTM 模型的核心——先用正向和反向两个方向的 LSTM 读取整个句子,再把两个方向的隐藏状态拼接起来,形成每个词的上下文表示。

小陈每读完一个词,会写下一串“候选得分”,比如“张三”这个词,他会给出:人名得分 8.2、组织得分 1.1、金额得分 0.3。这些得分在建模中叫发射得分(Emission Score),通常通过一个全连接层把 BiLSTM 的输出映射到每个标签上得到。

但小陈偶尔会过于自信,贴出“O 后面直接跟 I-PER”这种违背 BIO 纪律的序列。这时,资深督导老李登场了——他对应的就是条件随机场(CRF)层。老李手里有一本“转移得分手册”,记录着每种标签到另一种标签的合理性:O→B-PER 得分高,O→I-PER 得分极低。序列的总得分由每步发射得分和转移得分相加决定。

老李不真的一条条审核,他用的心算方法叫维特比解码——只保留到当前位置为止的“得分最高的前缀路径”,最终一步到位找出全局最优标签序列。这就像老李从几十种贴法中,瞬间挑出最顺眼的组合。

s(X,Y)=∑t=1T[E(yt∣xt)+T(yt−1,yt)]\displaystyle s(X, Y) = \sum_{t=1}^{T} \big[ E(y_t|x_t) + T(y_{t-1}, y_t) \big]
这条公式把“小陈的意见”和“老李的规矩”加在一起,共同评判一条标签序列的好坏。序列的最终得分,是所有词的发射得分与相邻转移得分之和。
  1. 发射得分$E(y_t|x_t)$ 是 BiLSTM 在词 $x_t$ 位置上对标签 $y_t$ 的偏好强度,来自小陈的双向阅读。
    E(yt∣xt)\displaystyle E(y_t|x_t)
  2. 转移得分$T(y_{t-1}, y_t)$ 是相邻两个标签之间的衔接合理度,来自老李的手册。
    T(yt−1,yt)\displaystyle T(y_{t-1}, y_t)
  3. 求和从第 1 个词到第 $T$ 个词,把所有发射得分和转移得分累加,得到整条路径的总分。
    ∑t=1T[⋅+⋅]\displaystyle \sum_{t=1}^{T} \big[ \cdot + \cdot \big]

法律领域特性

法律文书在老周眼里,是档案室里最难啃的“方言”。普通新闻句子几十个字就换行,判决书却是一句话动辄三四百字,逗号粘连,还特别喜欢在句子里套句子。“最高人民法院”是一个组织实体,但内部的“最高”二字单独看却什么都不是;“乙方向甲方支付十万元违约金”,“十万元”这个金额的意义,要看完后面的“违约金”才确定——这叫长距离依赖。

法律 NER 的难点可以归纳为三个。第一是嵌套实体:组织名内部还可能包含地名或人名,标签体系难以表达“实体套实体”的层次。第二是长距离依赖:“甲方”和“乙方”两个实体的身份往往要在跨越多半页文本后才能区分。第三是数据稀缺:法律标注需要专业人员,一份判决书的实体标注成本远高于通用文本,高质量标注数据极其有限。

针对这些难点,领域微调成为主流方案——用通用文本训练好的模型,再用少量法律标注数据继续训练,使模型适应法律文本的特殊分布。

老周感慨:“我花了十年才看懂判决书的门道,小陈刚来半年,靠的就是把通用档案的经验迁移到法律卷宗上。”领域微调正是这种“迁移经验”的数学化表达——让模型带着通用语法知识,快速学会法律文书的特殊表达。

L=−log⁡P(Y∣X)\displaystyle L = -\log P(Y|X)
这个公式是微调时的损失函数。它鼓励模型提高正确标签序列的概率——对应着老周不断纠正徒弟“这句判词里谁是原告,别圈错”。
  1. 负对数$-\log$ 将概率转换为损失值,概率越高损失越小,模型训练时不断降低这个值。
    −log⁡\displaystyle -\log
  2. 正确标签概率$P(Y|X)$ 是模型给正确答案分配的概率,理想情况下应接近 1。
    P(Y∣X)\displaystyle P(Y|X)
  3. 整体损失$L$ 是所有训练样本的平均损失,微调过程就是让 $L$ 不断下降。
    L\displaystyle L

实战应用评估

档案室的价值,最终要在业务中兑现。老周最得意的一天,是律师王主任拿着他整理的索引卡说:“三秒钟就找到了所有涉及'张三'和'甲公司'的判决!”在法律科技产品中,这种价值有两个最典型的落地方向。

第一个是合同审查。传统合同审查靠律师逐条翻阅,动辄数小时。法律 NER 可以自动抽取合同中的当事人、金额、付款期限、违约责任等关键实体,把枯燥的条文变成结构化表格,帮助律师快速定位风险条款。第二个是案例检索。判决书中的案号、法院、当事人、案由、法条引用,经过 NER 抽取后进入索引系统,律师只需输入一个公司名,就能秒级检索到相关的全部判例。

但要衡量这类系统的效果,光看精确率不够——万一程序漏掉了一个关键金额,再高的精确率也无法阻止合同漏洞。因此实践中通常用 F1 值同时考察精确率和召回率。

老周总结自己的手艺:“圈得准是基础,圈得全才是本事。”F1 指标正是档案室对老周的 KPI——要让律师每一次检索都不落空,同时也不被噪声干扰。一个合格的法律 NER 系统,F1 通常需要达到 90% 以上才敢真正进入业务流程。

F1=2×P×RP+R\displaystyle F1 = \frac{2 \times P \times R}{P + R}
F1 是精确率(P)和召回率(R)的调和平均。P 是“找出来的里对的占比”,R 是“该找的里找到的占比”,F1 两者兼顾。
  1. 精确率 P程序圈出来的实体里,真正的实体占比,衡量“圈得准不准”。
    P\displaystyle P
  2. 召回率 R文本中所有该圈的实体里,程序找到的占比,衡量“圈得全不全”。
    R\displaystyle R
  3. 调和平均$\frac{2 \times P \times R}{P + R}$ 同时惩罚过高精确率和过低召回率,让系统不偏科。
    2×P×RP+R\displaystyle \frac{2 \times P \times R}{P + R}

预训练模型优化

档案室迎来了一位“外聘专家”——老陈,他曾被送到国家图书馆学习了半年,读过千万本书,对任何语言的文本都有天生的直觉。虽然他没接触过法律卷宗,但只要给他一小摞标注好的判决书,他很快就能上手。这位专家在 AI 领域对应的,就是预训练语言模型(如 BERT)。

预训练模型的核心机制是自注意力(Self-Attention)。它允许句子中任意两个位置的词直接交互,无论相隔多远,“甲方”在第一段出现的信息,可以直接影响后面“乙方应付款项”的实体判断。这对法律文本极有价值,因为法律句子中跨半页的“但是”“然而”转折,常常隐蔽地改变着实体关系。

专家老陈的上手过程,数学上就是两个阶段:先在海量通用语料上预训练,学习通用语法和语义;再用少量法律标注数据进行微调,调整参数使其适配法律任务。

有了专家老陈,老周终于可以退休喝茶了。预训练模型的迁移能力让法律 NER 在数据量不大的情况下,也能刷新准确率纪录——这是当前法律 NLP 产品落地的最强技术杠杆。

Attention(Q,K,V)=softmax(QKTd)V\displaystyle \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d}}\right)V
这个公式是自注意力的核心运算:每个词通过查询(Q)与键(K)计算与其他词的关联强度,再用这个强度加权求和值(V),实现“隔着半页也能引用前文”的效果。
  1. 查询与键的匹配$QK^T$ 计算一个词与所有词的关联得分,得分越高代表关系越密切。
    QKT\displaystyle QK^T
  2. 缩放与归一化$\frac{\cdot}{\sqrt{d}}$ 防止得分过大,$\text{softmax}$ 把得分变成权重,总和为 1。
    softmax(⋅d)\displaystyle \text{softmax}\left(\frac{\cdot}{\sqrt{d}}\right)
  3. 加权聚合与 $V$ 相乘并按权重求和,把全句信息压缩进当前词的表示。
    V\displaystyle V

AI 应用场景

智能合同审查系统

阶段:模型推理与结构化抽取

解决的问题:传统合同审查靠律师逐条人工阅读,一份 30 页的合同耗时数小时,且容易漏看隐藏在长句中的金额和期限。法律 NER 自动从合同全文中抽取签约主体、金额、付款节点、违约条款等关键实体,生成结构化摘要,让律师把精力集中在高风险条款的研判上。就像老周把卷宗里的关键信息抄成索引卡,律师要做的只是核对卡片有没有遗漏。

具体案例:某互联网公司法务部部署了基于法律 NER 的合同审查工具。上传一份采购合同后,系统自动抽取“供应商:甲公司”“合同金额:五十万元”“付款期限:收货后三十日”等实体,并高亮显示。法务人员用 15 分钟完成了原来需要 2 小时的初审,准确率高达 96%。

判决书智能检索平台

阶段:数据预处理与索引构建

解决的问题:法院公开的判决书动辄数十万份,律师想找“张三诉甲公司合同纠纷”的类似判例,靠关键词搜索往往返回无关结果。法律 NER 从每份判决书中抽取案号、审理法院、原告、被告、案由、判决金额等实体,构建结构化知识索引。用户输入一个公司名,系统就能检索出该公司涉诉的全部案件并智能排序。

具体案例:某法律科技公司构建了全国判决书检索平台,每天处理超过 5 万份新增判决书。NER 抽取的实体被存入图数据库,支撑“以案找案”功能——律师输入“甲公司”,即可看到其胜诉率、平均赔偿金额和关联律师。平台上线后,用户检索时长平均缩短了 70%。

法律咨询预筛选助手

阶段:用户输入理解与实体识别

解决的问题:法律咨询平台每天收到大量口语化提问,如“我朋友借了我五万不还怎么办”。传统客服机器人无法理解其中的关键实体——借款金额、借贷主体、时间。法律 NER 从用户问题中抽取实体,匹配对应的法律条款和维权流程,实现智能预筛选。

具体案例:某线上法律服务平台的智能助手接入 NER 后,能够识别用户问题中的“五万元”(金额)、“我朋友”(借贷关系)等实体,自动推荐“民间借贷纠纷”的法律指引,并附上相关判例。人工律师只处理高价值复杂咨询,整体服务效率提升 3 倍。

Python 演示

python60 行
# Legal NER 演示:BIO 标注 + Viterbi 解码# 模拟 BiLSTM 发射得分与 CRF 转移约束,找最优标签序列 TAGS = ['B-PER', 'I-PER', 'B-ORG', 'I-ORG', 'B-AMT', 'I-AMT', 'O']N = len(TAGS) def emit_score(w, t):    if t == 'B-PER' and any(c in w for c in '张李王'):        return 7.0    if t == 'B-ORG' and any(c in w for c in '北京上海甲'):        return 7.0    if t == 'I-ORG' and w in ('高院', '公司'):        return 6.0    if t == 'B-AMT' and any(c in w for c in '十百万元'):        return 7.0    if t == 'O' and w in ('判决', '赔偿'):        return 5.0    return 0.3 def trans_score(a, b):    if a == 'O' and b == 'O':        return 3.0    if a == 'O' and b.startswith('B-'):        return 4.0    if a.startswith('B-') and b.startswith('I-') and a.split('-')[1] == b.split('-')[1]:        return 4.5    if a.startswith('I-') and b.startswith('I-') and a.split('-')[1] == b.split('-')[1]:        return 4.5    if a.startswith(('B-', 'I-')) and b == 'O':        return 3.0    if a.startswith(('B-', 'I-')) and b.startswith('B-'):        return 2.0    return -100.0 def viterbi(words):    T = len(words)    dp = [[-1e9] * N for _ in range(T)]    bk = [[-1] * N for _ in range(T)]    for t in range(N):        dp[0][t] = emit_score(words[0], TAGS[t])    for i in range(1, T):        for t in range(N):            for p in range(N):                s = dp[i-1][p] + trans_score(TAGS[p], TAGS[t]) + emit_score(words[i], TAGS[t])                if s > dp[i][t]:                    dp[i][t] = s                    bk[i][t] = p    last = max(range(N), key=lambda t: dp[T-1][t])    path = [last]    for i in range(T-1, 0, -1):        path.append(bk[i][path[-1]])    return [TAGS[t] for t in reversed(path)] if __name__ == '__main__':    words = ['北京', '高院', '判决', '张三', '赔偿', '甲', '公司', '五十万元', '。']    result = viterbi(words)    print('句子:', ''.join(words))    for w, t in zip(words, result):        print(w + '\t' + t)    print('F1(模拟): 0.93')
目的:这段代码从零实现了一个简化版的法律 NER 解码器,用发射得分模拟 BiLSTM 输出,用转移得分模拟 CRF 约束,通过 Viterbi 算法找出最优标签序列。
  1. emit_score(w, t)模拟 BiLSTM 层的发射得分:根据词形特征(是否含人名姓氏、机构关键字等)给每个候选标签打分。
  2. trans_score(a, b)模拟 CRF 层的转移约束:O 后面只能跟 B 开头标签,I 必须跟在同类 B/I 后面,非法转移返回极低分。
  3. dp[i][t]保存到第 i 个词为止、当前标签为 t 的最高累计得分,是动态规划的状态表。
  4. bk[i][t]回溯表,记录每个状态是从哪个前一标签转移来的,用于最后还原整条路径。
  5. max(range(N), key=lambda t: dp[T-1][t])找到最后一个词上得分最高的标签,作为最优路径的终点。

常见误区

误区“命名实体识别不就是用字典找人名和公司名吗?我把法官名单、上市公司名录整理成词典,扫一遍文本不就行了?”

正解词典匹配只能识别“见过”的实体,而真实文本中实体形态千变万化:判决书里可能出现“张三的弟弟张四”这种未见表述,金额可能是“人民币伍拾万元整”这种汉字大写。NER 模型学的是上下文模式,即使一个词从未出现在训练数据中,模型也能根据语义特征判断它是不是实体。更关键的是,模型能处理“同名歧义”——“李法官”可能指人名,也可能指职务。

为何常见:NER 任务看起来就是“找名词”,早期基于规则和词典的系统确实能解决一部分问题,导致很多人低估了通用化理解的难度。

误区“BIO 不就是给每个词贴标签吗?'张三'贴 B-PER,'赔偿'贴 O,那下一个词'甲公司'直接贴 I-ORG 不就行了?”

正解I 标签的含义是“内部延续”,它必须承接一个同类型的 B 或 I 标签。O 后面如果直接出现 I-ORG,就没有实体开始标记,模型无法知道这个组织的起点在哪里。这种非法序列在训练时会被 CRF 层的转移得分大幅惩罚。合法的序列应该是 O → B-ORG → I-ORG,就像写句子必须先写开头字才能写后续字。

为何常见:初学者把 BIO 理解成“任意贴标签”,忽略了标签之间存在严格的序列依赖关系,因为人眼阅读时自动补全了实体边界。

误区“BERT 在新闻领域的 NER 准确率都 95% 了,直接用现成模型跑判决书应该也没问题吧?”

正解法律文本和新闻文本的分布差异极大——判决书的长句结构、专业术语、嵌套实体远超通用语料。通用模型在法律语料上往往出现显著的准确率下降,F1 可能从 95% 跌到 80% 以下。正确做法是使用法律语料进行领域微调:用预训练模型的参数做初始化,在法律标注数据上继续训练。这就像让一个通用档案员先熟悉法律文书格式,才能胜任法院的工作。

为何常见:预训练模型的强大通用性让人忽略了领域适配的必要性,而实际上“通用能力强”不等于“专业领域直接可用”。

误区“测试集上精确率 98%,这套法律 NER 系统肯定能上线了,漏掉几个实体没关系。”

正解在类别极度不平衡的实体识别中,追求极致精确率往往导致系统变得保守——只挑最有把握的实体识别,大量不常见但关键的实体被漏掉。法律场景下,漏掉一个“乙方”的付款金额可能造成商业纠纷。实践中应同时监控召回率,并优先使用 F1 值进行模型对比。老周整理索引卡时,领导考核的从来不只是“圈对的占比”,还有“该圈的是否全部圈到”。

为何常见:精确率是直觉上最容易理解的指标,很多人习惯只看它,忽视了“漏报”在法律场景中的高风险代价。

面试题

Q1. 法律命名实体识别(Legal NER)的核心任务是什么?

单选题 · easy

  • A.将法律文本翻译成英文
  • B.找出人名单位金额并分类← 正确答案
  • C.判断判决结果是否公正
  • D.生成整篇判决书内容

答案:B。Legal NER 的目标是从法律文本中识别出人名、组织、金额等实体并标注类别,对应档案管理员“圈画关键信息”的工作。A 是机器翻译,C 是法律推理,D 是文本生成,都偏离了实体识别的定义。

Q2. BIO 标注中字母 B 的含义是什么?

单选题 · easy

  • A.实体名称的起始位置← 正确答案
  • B.实体的唯一缩写代号
  • C.无实体的普通字符
  • D.实体末尾的收尾位置

答案:A。B(Begin)代表实体开始的第一个词,与老周贴纸制度中“名字开头的字贴 B”一一对应。I 代表延续,O 代表无关。C 和 D 分别对应 O 和 E 标签的含义,容易混淆。

Q3. 句子“北京高院”中“高院”的正确标签是什么?

单选题 · easy

  • A.I-ORG(组织延续)← 正确答案
  • B.B-PER(人名开头)
  • C.O(无关紧要)
  • D.B-AMT(金额开始)

答案:A。在“北京高院”中,“北京”是组织开头(B-ORG),“高院”是同一个组织名的延续部分,应标为 I-ORG。B 序列才是 B-ORG → I-ORG,符合 BIO 的合法性约束。如果把“高院”标为 B-PER 会造成标签类型冲突。

Q4. BiLSTM 在 BiLSTM-CRF 模型中负责输出什么?

单选题 · mid

  • A.最终标签序列
  • B.各标签的发射得分← 正确答案
  • C.各标签的转移得分
  • D.文本的分词结果

答案:B。BiLSTM 通过前向和后向读取整个句子,为每个词输出一个向量,再经过全连接层映射成每个标签的发射得分,对应速记员小陈的“候选打分”。转移得分由 CRF 层负责,最终标签序列由维特比解码得到。

Q5. CRF 层在模型中扮演的核心角色是什么?

单选题 · mid

  • A.加快词向量训练速度
  • B.检查标签序列的合法性← 正确答案
  • C.提高文本分词准确率
  • D.自动生成新的法律文本

答案:B。CRF 层通过转移得分约束标签之间的顺序,例如禁止 O 后面直接跟 I-ORG,对应督导老李的“审核手册”。它不参与训练加速、分词或文本生成,专注保证输出标签序列的整体合法性。

Q6. 下列哪些属于法律文本中的常见实体类型?

多选题 · mid

  • A.当事人姓名(PER)← 正确答案
  • B.公司名称(ORG)← 正确答案
  • C.判决金额(AMT)← 正确答案
  • D.页面排版颜色

答案:ABC。法律 NER 的三大核心实体类型是人名(PER)、单位名(ORG)和金额(AMT),对应老周索引卡上的三大类信息。页面排版颜色与文本语义无关,不属于命名实体。

Q7. Viterbi 解码在序列标注中的用途是什么?

单选题 · hard

  • A.找到概率最高的标签序列← 正确答案
  • B.随机采样一组标签序列
  • C.计算每种实体出现频率
  • D.将文本切分成多个句子

答案:A。Viterbi 算法通过动态规划在指数级的候选标签序列中,找到总得分(发射得分+转移得分)最高的那一条,对应老李快速选出最优贴法。它做的是精确解码而非随机采样,也不涉及频率统计或分句。

Q8. BIOES 标注相比 BIO 新增了哪些标签?

多选题 · hard

  • A.E(实体结尾)← 正确答案
  • B.S(单字实体)← 正确答案
  • C.T(词性标注)
  • D.X(扩展类型循环)

答案:AB。BIOES 在 B/I/O 基础上增加 E(End,实体结尾)和 S(Single,单字实体),让实体边界信息更加完整。T 是词性标注的缩写,X 不是标准 BIOES 标签,两者都与本体系无关。

Q9. 法律 NER 中“甲公司”整体应如何标注?

单选题 · easy

  • A.整体标注为组织类型← 正确答案
  • B.整体标注为人名类型
  • C.属于无关内容忽略
  • D.标注为金额类型标签

答案:A。“甲公司”是一个组织实体,应标注为 B-ORG(若拆分为“甲”“公司”两词,则为 B-ORG + I-ORG)。它显然不是人名或金额,“赔偿”类动词才属于无关内容,因此 C 也不对。

Q10. 预训练语言模型提升法律 NER 性能的原因有哪些?

多选题 · hard

  • A.预训练已学习通用语法语义← 正确答案
  • B.自注意力能捕获长距离依赖← 正确答案
  • C.微调适应法律领域数据分布← 正确答案
  • D.模型可完全替代人工标注

答案:ABC。预训练模型在海量语料中学到通用语言知识(A),自注意力机制让相隔很远的词也能直接交互(B),法律语料微调使分布对齐领域特征(C)。但模型仍需人工标注数据进行训练和评估,D 说法错误。