3. 结构化信息抽取概述

在金融大模型应用中,结构化信息抽取(Structured Information Extraction,SIE)是把非结构化或半结构化的金融文本,转换为字段明确、类型确定、可直接入库或参与计算的结构化数据的过程。它不只是“把文字变短”,而是把语义角色、实体关系、数值口径和时间约束一并固化下来,使下游的风控、投研、合规、报表等系统能够稳定消费。

核心定义:给定金融文本 D 与目标模式 S(Schema),结构化信息抽取输出满足 S 的结构化记录 R,并保证字段可验证、可追溯、可对齐。模式通常由字段名、数据类型、取值范围、必填约束和关系约束共同定义。

一、核心原理:从“文本理解”到“模式对齐”

金融文本的难点在于表达高度压缩且口径多变。例如“本期计提减值准备 3.2 亿元,较上年同期减少 12%”,其中同时包含会计科目、金额、币种、期间、同比方向和变化率。结构化抽取的核心原理可以概括为三步:语义定位、模式对齐、约束校验。语义定位负责找到实体与事件;模式对齐把语义映射到目标字段;约束校验则检查金额单位、时间区间、勾稽关系是否自洽。

与传统序列标注不同,大模型时代的 SIE 更强调“指令 + 模式”的联合建模。模型不仅要识别“是什么”,还要判断“填到哪个字段、以什么类型填、是否允许为空”。因此,模式设计质量往往直接决定抽取上限。

金融结构化信息抽取:文本 → 模式 → 结构化记录 非结构化金融文本 公告 / 研报 / 合同 / 舆情 含金额、期间、主体、事件 模式 Schema 字段名 / 类型 / 单位 必填 / 枚举 / 关系约束 时间口径与勾稽规则 结构化记录 JSON / 表 / 图 可入库、可计算、可审计 约束校验层 单位换算:亿元 ↔ 元;期间对齐:报告期 / 同比 / 环比 勾稽校验:资产 = 负债 + 权益;金额合计 = 分项之和 置信度与溯源:字段级证据句、页码、字符偏移

二、任务分类:金融场景下的四类抽取

金融结构化抽取并非单一任务,按输出形态可分为四类,实际项目中常组合使用。

任务类型 典型输出 金融场景示例 关键难点
实体抽取 实体 + 类型 公司、证券代码、人物、机构 别名、简称、同名消歧
关系抽取 三元组 / 多元关系 担保关系、持股关系、任职关系 跨句、隐式关系、方向性
事件抽取 事件类型 + 论元 违约、并购、分红、评级调整 论元角色、时间、否定
数值与表格抽取 字段 + 数值 + 单位 营收、净利润、资产负债率 单位、口径、跨表对齐

三、评价指标:字段级与记录级并重

金融抽取不能只看整体准确率。一个记录中若“金额”正确但“期间”错误,业务上可能完全不可用。因此评价应分层:字段级看 Precision / Recall / F1,记录级看完全匹配率(EM),业务级看入库通过率与人工复核率。

字段级 F1 = 2 * P * R / (P + R)
记录级 EM = 完全正确记录数 / 总记录数
业务通过率 = 通过校验并入库记录数 / 总记录数

示例日志:
[field=net_profit] pred=3.2亿 gold=3.2亿 unit=CNY status=OK
[field=period]     pred=2024Q1 gold=2024Q1 status=OK
[record=000001]    EM=true  confidence=0.93
提示:在金融场景中,建议把“单位错误”“期间错误”“主体错误”设为高权重惩罚项,而不是与普通字段等权计算。因为这三类错误会直接导致下游计算失真。

四、与传统信息抽取的差异

传统信息抽取多依赖规则、词典和序列标注模型,模式固定、泛化有限。大模型驱动的结构化抽取在以下方面发生明显变化:

  • 模式驱动方式:传统方法需为每个字段训练独立模型;大模型通过指令和 Schema 描述即可适配新字段。
  • 上下文长度:传统方法通常按句或段处理;大模型可跨段落、跨表格联合推理。
  • 输出形态:传统方法输出标签序列;大模型直接输出 JSON、表格或图结构。
  • 约束能力:传统方法约束弱;大模型可结合校验器、规则引擎和工具调用做闭环校验。
  • 可解释性:传统方法依赖特征;大模型可给出证据句和置信度,但需额外做溯源与审计。
常见误区:把大模型当作“万能抽取器”,忽略 Schema 设计与后校验。实际项目中,Schema 不清晰、单位不统一、期间口径不一致,是导致抽取失败的前三大原因。另一个误区是只评估整体 F1,而不区分字段重要性,导致高风险字段错误被平均指标掩盖。

五、案例复盘:一份年报中的减值准备抽取

假设目标是从年报中抽取“资产减值准备”记录,Schema 要求字段包括:company、report_period、item、amount、currency、yoy_change。原文为:“本报告期计提资产减值准备 3.2 亿元,较上年同期减少 12%。”

抽取流程可拆为:先定位金额与科目,再对齐期间与币种,最后校验同比方向与数值一致性。若模型输出 amount=3.2 但 currency=USD,则触发币种校验失败;若 yoy_change=+12%,则与“减少”矛盾,触发方向校验失败。通过这类约束,可以把“看起来对”的结果拦截在入库之前。

复盘结论:结构化抽取的竞争力不在单次生成,而在“模式设计 + 约束校验 + 字段级评估”的工程闭环。金融场景尤其需要把单位、期间、主体和勾稽关系作为一等公民对待。