4. 命名实体识别(NER)基础:什么是NER,BIO/BIESO标注体系

命名实体识别(Named Entity Recognition,NER)是自然语言处理中的一项核心基础任务,也是采购合同智能条款抽取的关键技术起点。在合同文本中,我们需要精准定位并分类出具有特定意义的实体,例如合同主体、金额、日期、产品名称等,才能为后续的关系提取和条款结构化奠定基础。

4.1 什么是命名实体识别(NER)

NER的目标是从非结构化文本中识别出具有特定类别的实体(Entity),并将其归类到预定义的类别中。在采购合同场景下,常见的实体类别包括:

实体类别 含义 合同示例
ORG 组织机构 “甲方:北京智云科技有限公司”
PERSON 人名 “授权代表:张三”
DATE 日期 “合同有效期自2024年1月1日起”
MONEY 金额 “合同总价为人民币壹佰万元整”
PRODUCT 产品/服务 “采购标的:ERP软件系统”
TERM 条款/期限 “付款方式:预付款30%”
关键理解:NER不是简单的关键词匹配,而是基于上下文语义的序列标注任务。例如,“苹果”在“苹果公司”中是ORG,在“采购苹果100箱”中则是PRODUCT。

4.2 NER的序列标注本质

NER通常被建模为序列标注(Sequence Labeling)问题:给定一个由n个字符或词语组成的输入序列 X = (x₁, x₂, ..., xₙ),模型需要为每个位置预测一个标签 yᵢ,标签集合由标注体系定义。最终,连续的相同类别标签被合并为一个完整的实体。

下图展示了从原始合同文本到实体识别结果的完整流程:

NER序列标注流程示例 输入:甲方应于2024年3月15日前支付预付款50万元 序列标注(BIO体系) 甲/O 方/O 应/O 于/O 2024/B-DATE 年/I-DATE 3/I-DATE 月/I-DATE 15/I-DATE 日/I-DATE 前/O 支/O 付/O 预/O 付/O 款/O 50/B-MONEY 万/I-MONEY 元/I-MONEY DATE:2024年3月15日 MONEY:50万元

4.3 BIO标注体系

BIO(Begin-Inside-Outside)是最基础、最广泛使用的序列标注体系。它将每个位置(字或词)赋予以下三种标签之一:

  • B-(Begin):实体的开始位置。
  • I-(Inside):实体的内部位置(非开始)。
  • O-(Outside):非实体部分。

对于多类别NER,B和I后面会跟上实体类别标签,例如 B-ORG、I-ORG、B-DATE、I-DATE 等。

标注示例:句子“采购方为华为技术有限公司”的BIO标注结果为:
采/O 购/O 方/O 为/O 华/B-ORG 为/I-ORG 技/I-ORG 术/I-ORG 有/I-ORG 限/I-ORG 公/I-ORG 司/I-ORG

4.4 BIESO标注体系

BIESO是BIO的增强版本,增加了两个标签以更精确地描述实体边界,尤其适用于处理单字实体和长实体:

标签 全称 含义 示例(实体“华为”)
B- Begin 实体的开始 华/B-ORG
I- Inside 实体的中间部分 为/I-ORG
E- End 实体的结束 司/E-ORG
S- Single 单字实体 “货”作为单字实体时标注为 S-PRODUCT
O- Outside 非实体 的/O
BIO vs BIESO 对比:BIESO通过E和S标签明确标识了实体的结束位置和单字实体,在实体边界检测上比BIO更精确,但标签数量更多(例如5×类别数+1),模型训练复杂度略高。对于采购合同中常见的多字实体(如公司名、产品名),BIESO通常表现更优。

4.5 两种标注体系的对比总结

对比维度 BIO BIESO
标签数量 2×类别数 + 1 4×类别数 + 1
实体边界精度 中等(仅标记开始) 高(标记开始和结束)
单字实体处理 使用B-标签,语义模糊 使用S-标签,语义清晰
模型复杂度 较低 较高
适用场景 通用NER,快速原型 高精度要求,长实体密集场景

4.6 采购合同NER的标注实践建议

  • 推荐使用BIESO体系:采购合同中存在大量长实体(如“北京智云科技有限公司”),且单字实体(如“货”、“款”)也频繁出现,BIESO的E和S标签能显著减少边界错误。
  • 实体类别设计:建议控制在6-10个核心类别,避免类别过多导致标注不一致。常见类别包括:ORG、PERSON、DATE、MONEY、PRODUCT、TERM、CLAUSE_NUM(条款编号)等。
  • 标注一致性:对于嵌套实体(如“《中华人民共和国民法典》”中的“中国”和“民法典”),建议只标注最外层完整实体,避免嵌套标注带来的歧义。
常见陷阱:不要将标点符号、空格、括号等非语义字符标注为实体的一部分。例如,“(甲方)”中的括号应标注为O,只有“甲方”标注为B-ORG和E-ORG。