嵌套结构的抽取顺序
订单、简历、合同这类含多级结构的文本,抽取顺序影响准确率:先抽头部字段(单号、客户),再抽明细数组,逐段扫描不容易串行。要特别约定两件事:没有明细时输出空数组而不是伪造一行;合计行不是明细,应单独放字段。金额在抽取阶段只保留数字,格式交给下游。
基本信息
| 抽取顺序 | 先头部字段,再明细数组 |
|---|---|
| 空明细 | 输出 [],不要伪造行 |
| 合计行 | 单独字段,明确排除在明细之外 |
| 金额 | 抽取阶段只保留数字,去掉货币符号与千分位 |
| 数量核对 | 明细行数与原文行数比对,可自动抽查 |
典型使用场景
- 订单解析:头部字段加商品明细行,进单据系统
- 简历解析:基本信息加工作经历、教育经历数组
- 合同要素抽取:主体信息加条款条目与金额明细
- 账单识别:账户信息加费用明细,用于对账
- 报表录入:表头信息加逐行数据,用于批量入库
嵌套结构模板
嵌套结构模板
抽取订单信息,输出 JSON:
{
"order_no": "…",
"customer": {"name": "…", "region": "…"},
"lines": [{"sku": "…", "name": "…", "qty": 0, "price": 0.00}]
}
明细从表格区域逐行抽取;没有明细时 lines 输出 []。
# 合计行不是明细,单独放 total 字段
合计行不是明细,单独放 total 字段。
# 金额只保留数字,去掉货币符号与千分位,格式化交给下游
# 跨页文本分块抽取后,按订单号去重合并常见错误与后果
| 错误 | 表现 | 后果 |
|---|---|---|
| 无明细时伪造行 | lines 里出现一行全空或占位数据 | 下游统计多出无效记录 |
| 合计行当明细 | 明细行数比原文多一行 | 金额重复计算,对账失败 |
| 金额带符号 | price 值为「¥1,280.00」 | 无法直接求和,需二次清洗 |
| 跨页漏抽 | 换页处的明细行丢失 | 数量与合计对不上 |
明细漏抽多发生在跨页或换页处;分块抽取后要按订单号去重合并,再与合计做核对。
金额混入货币符号与千分位时无法直接求和:抽取阶段只保留数字串,单位与格式统一由下游处理。