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ᵢ,标签集合由标注体系定义。最终,连续的相同类别标签被合并为一个完整的实体。
下图展示了从原始合同文本到实体识别结果的完整流程:
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
采/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。