指导用户模板编写的技巧,提升信息抽取任务的准确性
1. 模板类型概览
AI Doc提供两种信息抽取模板类型,满足不同场景需求:
模板类型 | 适用场景 | 核心特点 |
Prompt模板 (推荐使用) |
|
|
Key-Value模板 |
|
|
2. Prompt模板编写指南
适用场景
Prompt 模板(即通过自然语言指令引导模型输出结构化/非结构化内容的方式),适用于多种任务场景,尤其在需要灵活性、上下文理解、自由生成或复杂推理的任务中表现出色。
Prompt编写技巧
直接提问法
适用场景
适用于目标明确、问题简单、答案确定的场景。
编写要点
简洁:尽量用最简短的方式表达问题。过于冗长的问题可能包含多余的信息,导致模型理解错误或答非所问。
优化前:"我们公司最近收到了一份来自供应商的发票,需要你从中提取一些关键信息。请仔细阅读这份发票文件,并告诉我供应商的公司名称、发票号码、开具日期。另外,如果发票上有应付总额的话,也请一并提取。我们需要这些信息来进行账务处理和付款安排。"
优化后:"从供应商发票中提取:公司名称、发票号、开具日期、应付总额。"
具体:在信息抽取场景中,明确列出所有待提取项,并为每项提供详细特征描述。
优化前:"分析这篇文章并提取关键信息。"
优化后:"从这篇文章中提取以下信息:作者的全名和任何相关头衔(如"教授"、"研究员"等)、作者对于全球变暖的观点和3-5个关键词。"
避免歧义:如果一个词或短语可能有多重含义,要么明确其含义,要么重新表述以消除歧义。
优化前:"什么是树?"
优化后:"解释计算机科学中的'树'概念。"
详细上下文:如果问题涉及特定上下文或背景信息,要提供足够的详情以帮助模型理解。
逻辑清晰:问题应逻辑连贯,有清晰的结构层次。
优化前:"抽取申请人姓名、理赔金额是多少、什么时候出的事故、保单号码是多少、提交了哪些文件、出了什么事故?"
优化后:"从理赔申请文件中依次抽取以下信息:1. 客户基本信息:姓名、保单号 2. 事故相关信息:事故日期、事故类型 3. 客户申请的理赔金额。"
选择合适的输出方式:
JSON 输出(推荐用于复杂、结构化任务)
适用场景说明
需要提取多个字段或结构化信息(如时间、地点、人物、事件等)
需要把提取的信息整理后存入数据库,或发送给其他系统使用
希望验证输出是否完整、是否有错误(如字段缺失、类型不对),可以配合 JSON Schema 进行校验
抽取的信息比较复杂(如一个事件包含多个参与人、多个时间点和地点),建议采用结构化的方式,分门别类地组织数据。以下是一个示例,展示在复杂信息抽取场景下 Prompt 中所定义的 JSON 输出格式。
请从文本中提取相关信息,并以如下 JSON 格式输出:
{
"event_name": "事件名称",
"dates": [
{
"type": "时间类型(如开幕式、闭幕式)",
"date": "日期(格式为 YYYY-MM-DD)"
}
],
"locations": [
{
"name": "地点名称",
"address": "详细地址"
}
],
"participants": ["参与人1", "参与人2", ...]
}
注意事项
请务必把所有需要提取的内容项都包含在 JSON 中,这样才能保证信息完整
文本输出
适用场景说明
只需提取少量信息并直接展示
生成摘要、笔记等非结构化内容
结果用于网页显示、打印或其他直接展示用途
例如:从新闻中提取标题、时间、地点,生成一句话摘要;无需结构化处理,以自然语言形式输出即可
示例
类型 | 示例 | 结果预测 | 问题分析 |
未优化示例 | 提取合同中的日期 |
|
|
优化示例 | 请从合同正文第3.1条款中提取以下两项信息,并以JSON格式输出。
【输出json格式】 [{ "服务开始日期": "***", "服务截止日期": "***" }] | 输出: [{ "服务开始日期": "2014-12-31", "服务截止日期": "2024-12-31" }] |
|
直接提问自查清单
提问前请确认:
是否明确描述了需要提取的信息及其特征?
是否逻辑通顺,每个要点都清晰无歧义?
是否避免使用行业黑话?(用标准术语替代内部简称)
是否需要结构化输出?如需要,是否已在输出格式中列明所有待提取项?
高级提问法
适用场景
适用于复杂问题、多步骤任务、需要思考或推理的场景。
编写要点
简洁:即使是复杂任务,也应尽量简明扼要地表达核心需求,避免冗余说明干扰模型理解。
结构化:将复杂问题拆分为清晰的步骤,帮助模型有序处理信息。
角色定位:告诉模型它现在要扮演什么角色。比如说"你现在是一名医生",这样模型就会从医生的角度来思考和回答问题。
上下文学习(few shot):为模型提供一些好的输出示例,供模型学习参考。
多维约束:清楚地说明你对模型回答的各种要求,比如格式应该是怎样的,内容应该包括哪些。比如在财务报告分析的场景中,提出如下要求:金额精确到百万美元,使用专业的财务术语等。
示例
类型 | 示例 | 结果预测 | 问题分析 |
未优化示例 | 分析第四季度销售数据并给出见解 |
|
|
优化示例 | 【任务描述】 作为专业的金融分析师,请根据提供的第四季度销售报告,完成销售数据分析任务。请按以下步骤进行:
【输出示例】 [{ "整体趋势": "第四季度销售额较第三季度增长6%,主要受年终促销和节日消费带动,但低于去年同期8%。", "关键驱动因素": ["高端电子产品需求旺盛,占比提升至35%", "线上渠道销量同比增长18%"], "季节性影响": "黑色星期五和圣诞节促销显著提升了消费电子类商品的销量。", "初步建议": ["加大高毛利产品的库存备货力度", "优化线上平台用户体验,提高转化率"] }] 【输出json格式】 [{ "整体趋势": "描述...", "关键驱动因素": ["因素1", "因素2"], "季节性影响": "分析...", "初步建议": ["建议1", "建议2"] }] | 输出: 清晰、有条理地输出以下四个关键内容:
|
|
高级提问自查清单
提问前请确认:
是否简明扼要地阐明了核心任务?
角色设定是否与任务性质匹配?
是否明确了思考路径和推理步骤?(避免跳跃式思维)
是否提供了足够的背景信息?(复杂问题需要充分上下文)
输出格式要求是否明确?
对于较复杂的输出要求,是否提供明确的输出示例供模型参考?
3. Key-Value模板编写指南
适用场景
Key-Value(键值对)模板是一种结构化的数据格式,用于明确指定需提取的内容字段及其对应值。它特别适用于从内容复杂、信息密集的长文档(如ESG报告、公司年报、合同文件、研究论文和技术白皮书等)中抽取特定信息,并以标准化形式输出。
Key-Value模板编写技巧
编写要点
精准定义:为每个要提取的信息点定义一个清晰的名字。比如,不要用"基本信息"这样笼统的词,而应该用"姓名"、"年龄"这样具体的词。
语义扩展:对于每个需要提取的信息(key),想想还有哪些相关的同义词/近义词。比如检索"工作"时,也可以考虑"职业"、"岗位"等词。这样可以扩大匹配范围。
限定输出结果:通过关键词选项,为每个提取项设置明确的答案范围,约束模型的输出结果。
明确抽取规则:在常见问题栏补充一些常见的问法作为例子,帮助模型理解键的应用场景和提取方式。
示例
某合同信息抽取Key-Value模板示例
序号 | 关键词(必填) 请填写能准确代表要抽取的内容的名词或短语 | 近义词 关键词的同近义词,信息抽取时视作等同。可空缺,填写有助于提高信息抽取质量。 | 关键词选项 关键词可能出现的结果,建议填写答案的固定选项,如“是/否”、“符合/部分符合/不符合”,可空缺。 | 常见问题 建议填写明确的抽取规则,如什么条件输出什么结果,用于判断/总结,可空缺。 |
1 | 合同类型 |
|
| 若文档标题就是合同类型,请直接输出合同类型。若文档标题不是合同类型,请根据文档内容,总结合同类型。 |
2 | 收银方式 |
|
| 合同中的收银方式是什么? |
3 | 是否签订了绿色条款 |
| 文档中是否包含了以下内容的条款:“甲方致力于执行绿色可持续性发展,最高效率地利用能源、最低限度地影响环境,并为此制定绿色装修指南供租户参照和执行。” 如果有,结果返回“是”;如果没有,则结果返回“否” |
Key-value模板配置自查清单
配置前请确认:
键的定义是否足够具体且有明确边界?(避免宽泛模糊的表述)
近义词是否真正表达相同或相近的概念?(确保语义一致性)
关键词选项是否涵盖了预期答案的主要选项?
常见问题是否模拟了真实用户的查询意图?
各个信息项(key)之间是否有重复或矛盾?(确保每个信息项都是独立的)