首页/AI/提示词工程速查/缺失字段与 null 约定
任务型写法50 条

缺失字段与 null 约定

抽取任务先约定“信息不存在”的表达:统一 null 或空数组,禁止用猜测值补位;字段缺失率本身也是质量指标。

提示词工程速查AI更新于 2026-10-13

缺失字段怎么表达

结构化抽取里「原文没有提到」和「提到了但认不出」是两种不同的缺失,必须在提示里分开约定输出形态。不约定时,模型倾向用常识把字段补成一个看起来合理的值,而且补出来的值和真实值长得一样,人工抽查也很难发现。通行做法是:文本未提及输出 null,出现但无法辨认输出 ?(或固定占位符),并在 notes 里写明原因。

基本信息

适用任务信息抽取、票据识别、表单解析、简历解析
两种缺失null=原文没有;?=有但无法辨认
配套字段notes 记录不可辨认的具体原因
统计口径按字段分别统计缺失率,不与整体准确率混报

典型使用场景

  • 发票/合同扫描件抽取:字迹模糊的字段不能猜,要交人工复核
  • 简历解析:候选人没写期望薪资,不能按行业均值补一个
  • 日志与工单字段抽取:原文用缩写表达,需要标记为待确认
  • 表格转结构化:合并单元格里的空白与「无」要区分对待
  • 批量入库前的质量门禁:缺失率异常升高说明上游数据或提示出了问题

缺失处理条款与输出示例

缺失处理条款与输出示例
抽取规则:
- 文本中未提及的字段一律输出 null,不要根据常识补全
- 字段出现但无法辨认时输出 '?',并在 notes 说明原因
- 允许从其他来源回填时,值写入 field_filled 并注明来源

输出示例(原文只写了姓名,电话是模糊的):
{"name": "张伟", "phone": "?", "email": null,
 "notes": ["phone 字段字迹模糊无法辨认"]}

缺失情况对照

情况输出说明
原文未提及null禁止按常识或上下文推断补值
出现但无法辨认?在 notes 写明原因,与 null 分开统计
原文写了但为空空字符串表示文本中确实存在该空位,语义与 null 不同
从外部来源回填值 + source标注来源,避免人工把补充值当成原文
字段缺失率本身就是质量指标:某一字段的缺失率突然从 2% 涨到 30%,通常不是模型变差,而是上游扫描质量或版式变了,先查数据再改提示。
同一批任务里 null 与空字符串混用时,下游 SQL 的 IS NULL 与 = '' 会走不同分支,容易出现「明明有值却过滤掉」的问题。入库前统一约定,或在提示里显式声明空字符串不出现。

易错点

  • 不写缺失约定时,模型会用看似合理但错误的值补齐字段,且这类错误在下游显示为一个正常值,不专门抽查很难发现
  • 把「有但认不出」也记成 null,会掩盖识别环节的问题,缺失率统计失去区分能力
  • null 与空字符串混用,导致下游过滤条件出现分支不一致,出现漏数据或重复计数
  • 允许外部回填却不标注来源,业务方会把补充值当作原文依据,出问题时无法追溯

数据来源与参考

  • OpenAI Prompt Engineering Guide:减少幻觉(不确定时如实说明)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌