2. NLP基础回顾

在构建采购合同智能抽取系统之前,需要先回顾自然语言处理(NLP)的三项基础技术:分词、词性标注和句法分析。合同文本具有长句密集、术语固定、结构严谨的特点,这三项技术构成了后续实体识别与关系提取的底层支撑。

2.1 分词:合同文本的“切分”艺术

分词是将连续的汉字序列切分为有意义的词语序列。在合同场景中,分词质量直接影响后续的实体边界识别。

合同分词难点:
  • 专有名词粘连:“采购方”“供货方”“知识产权”等固定搭配不能被错误切分。
  • 长定语切分:“本合同项下之全部产品及服务”中的“项下”需保持完整。
  • 数字与单位:“壹佰万元整”“2024年12月31日”需整体保留。

以下对比展示了通用分词与合同定制分词的效果差异:

输入文本 通用分词结果 合同定制分词结果
采购方应于交货后30日内支付货款 采购 / 方 / 应 / 于 / 交货 / 后 / 30 / 日 / 内 / 支付 / 货款 采购方 / 应于 / 交货后 / 30日内 / 支付 / 货款
知识产权归属争议由仲裁委员会裁决 知识 / 产权 / 归属 / 争议 / 由 / 仲裁 / 委员会 / 裁决 知识产权 / 归属 / 争议 / 由 / 仲裁委员会 / 裁决

在工程实现中,通常采用词典增强策略:在通用分词模型基础上,注入合同领域词典(如“采购方”“不可抗力”“违约金”),并设置优先级匹配规则,确保长词优先。

# 合同分词示例(使用jieba + 自定义词典)
import jieba

# 加载合同领域词典
jieba.load_userdict("contract_dict.txt")

text = "采购方逾期支付货款超过30日的,供货方有权解除本合同"
tokens = jieba.lcut(text)
print(tokens)
# 输出:['采购方', '逾期', '支付', '货款', '超过', '30日', '的', ',', '供货方', '有权', '解除', '本合同']

2.2 词性标注:为词语赋予“语法身份”

词性标注为每个分词结果赋予词性标签(如名词、动词、形容词)。在合同文本中,词性标注是识别实体类型和关系模式的关键线索。

合同词性标注的典型模式:
“采购方”(名词) + “应”(助动词) + “提供”(动词) + “发票”(名词) → 构成“主体-行为-客体”关系骨架。

合同文本中高频出现的词性组合及其业务含义如下:

词性组合模式 合同示例 业务含义
名词 + 动词 + 名词 供货方 / 交付 / 货物 主体执行动作作用于客体
名词 + 助动词 + 动词 采购方 / 应当 / 支付 主体承担义务
名词 + 介词 + 名词 争议 / 由 / 仲裁委员会 归属或管辖关系
数词 + 量词 + 名词 三 / 批 / 设备 数量约束

词性标注结果可以直接作为特征向量输入到后续的命名实体识别(NER)模型中,帮助模型区分“公司名称”(名词)与“合同条款”(名词短语)。

2.3 句法分析:解析合同长句的“骨架”

合同文本中大量使用长句、嵌套结构和被动语态。句法分析通过构建依存关系树或短语结构树,揭示词语之间的语法依赖关系。

以下SVG图展示了采购合同典型长句的依存句法分析结果:

采购合同长句依存句法分析示例 采购方 应 在交货后 30日内 向 供货方 支付 货款 主谓关系 (SBV) 状中关系 (ADV) 时间状语 (TMP) 介宾 (POB) 动宾 (VOB) 依存关系说明: • SBV(主谓关系):"采购方"是"支付"的动作发出者,构成合同主体-行为核心。 • ADV(状中关系):"应"修饰"支付",表达义务性,是合同条款的关键情态标记。 • TMP(时间状语):"在交货后30日内"限定支付的时间窗口,是合同期限抽取的基础。 • POB(介宾关系):"向供货方"指明支付的对象,构成合同关系中的受益方/接收方。 • VOB(动宾关系):"支付货款"是合同义务的具体内容,构成"行为-客体"关系对。 应用价值: 通过依存句法分析,可以自动提取"(采购方,支付,货款)"这样的三元组, 为后续的关系抽取和知识图谱构建提供结构化输入。

2.4 三项技术的协同工作流

在合同智能抽取系统中,分词、词性标注和句法分析并非独立运行,而是构成一个流水线:

  1. 原始文本输入:合同PDF或Word文档经OCR或文本提取后得到原始字符串。
  2. 分词:利用合同定制词典进行精确切分,输出词语序列。
  3. 词性标注:为每个词语标注词性,输出带标签的序列。
  4. 句法分析:基于词性标注结果构建依存关系树,输出结构化关系。
  5. 下游任务:将句法分析结果输入NER和关系提取模块。

以下SVG图展示了这一协同工作流的架构:

NLP基础技术在合同抽取中的协同工作流 合同原始文本 ① 分词(Tokenization) ② 词性标注(POS) ③ 句法分析(Dependency) 输出到下游任务: • 命名实体识别(NER) - 采购方/供货方实体 - 金额/日期实体 - 条款编号实体 • 关系提取(RE) - 主体-行为-客体三元组 - 条件-结果关系 - 时间-事件关联 → 最终输出:结构化条款
工程实践注意:流水线模式存在误差传播问题——分词错误会直接导致词性标注和句法分析出错。在关键条款抽取场景中,建议对分词结果进行人工校验或引入多模型投票机制,降低单点故障风险。

2.5 合同文本的特殊性总结

与通用文本相比,合同文本在NLP处理上具有以下显著差异:

维度 通用文本 合同文本
句子长度 平均15-25字 平均40-80字,常含多重复句
术语密度 低,以日常词汇为主 高,大量法律/商务术语
句式结构 主谓宾清晰,口语化 被动语态、条件从句、嵌套结构多
歧义容忍度 较高,上下文可消歧 极低,歧义可能导致法律风险
数字表达 阿拉伯数字为主 大小写并存(壹佰万元/100万元)

掌握这些特殊性后,下一阶段将进入命名实体识别(NER)的专项学习,利用本章的分词和词性标注结果,精准定位合同中的关键实体。