Hyper-Extract 模板最佳实践:清晰描述、具体规则、双语支持指南
【免费下载链接】Hyper-ExtractHypergraph is more powerful. Transform unstructured text into structured knowledge with LLMs. Graphs, hypergraphs, and spatio-temporal extractions — with one command.项目地址: https://gitcode.com/GitHub_Trending/hy/Hyper-Extract
Hyper-Extract 是一个用 LLM 将非结构化文本转化为结构化知识(图谱、超图、时空抽取)的开源工具。而YAML 抽取模板正是它"聪明程度"的核心所在——同样的文档,模板写得越清晰,抽取质量越高。本文分享 Hyper-Extract 模板设计的最佳实践:如何写清字段描述、如何制定具体抽取规则、以及如何正确支持中英双语。
先认识模板:一份 YAML 决定抽取质量
Hyper-Extract 的模板由几个固定区块组成。以财报摘要模板 earnings_summary.yaml 为例,每个模板包含:
| 区块 | 作用 | 类比 |
|---|---|---|
description | 模板整体用途说明 | 简历的"个人简介" |
output | 定义抽取哪些字段、什么类型 | 表格的"表头" |
guideline | 告诉 LLM 如何做好抽取 | 作业要求的"评分标准" |
identifiers | 定义实体/关系的唯一标识 | 数据库的"主键" |
display | 控制展示时的标签格式 | 页面的"显示样式" |
完整的设计规范见 DESIGN_GUIDE_zh.md,官方模板库位于 templates/presets/,按 general、finance、legal、medicine、tcm、industry 等 7 个领域组织。
最佳实践一:清晰描述,拒绝模糊
字段描述要"自包含"
每个字段的description是 LLM 理解字段含义的唯一依据。好的描述应该包含格式示例和取值范围,让 LLM 不需要猜测:
- name: quarter type: str description: zh: '财报季度,格式如"2024Q3"'对比模糊写法"季度"——前者直接给出格式规范,LLM 输出会稳定得多。
target 要指定角色与职责
guideline.target相当于给 LLM 的"岗位说明书",应明确角色 + 任务 + 质量要求:
target: zh: '你是一位专业的投研分析师,负责从财报电话会议记录中准确提取业绩数据和关键信息。'三条快速自检
- ✅ 每个字段的
description都能让陌生人看懂字段含义 - ✅
description给出了格式或取值示例(如"2024Q3"、"积极/中性/消极") - ✅
target写清了角色和具体职责,而非只写"你是一个助手"
最佳实践二:具体规则,划清 Schema 与 Guideline 的边界
这是新手最容易踩的坑。Schema 定义"是什么",Guideline 定义"如何做好",两者不应互相重复。
应该写在output(Schema) | 应该写在guideline(Guideline) |
|---|---|
| 字段名称、类型 | 抽取策略("提取精确数字,与原文一致") |
| 字段描述 | 质量要求("语调评估基于管理层措辞") |
| 必填/可选 | 常见错误提示 |
❌ 反例:在guideline里写"提取 name 字段作为实体名称"——这只是在重复 Schema 定义。 ✅ 正例:写"只提取文本中出现的全名,不提取代词"——这是 Schema 里没有的抽取约束。
控制字段数量:每组件不超过 5 个
实体、关系的字段建议≤ 5 个,按"必要 → 重要 → 可选"排序(如source/target必要,type/time重要,description可选)。超限时优先拆分模板或删减冗余字段。
命名统一,减少歧义
| 元素 | 规范 | 示例 |
|---|---|---|
| 模板名 | PascalCase | EarningsSummary |
| 字段名 | snake_case | company_name |
| 关系类型字段 | 固定用type | 不用relation_type |
| 时间字段 | 固定用time | 不用event_date |
这些自动修复规则在 rules-naming.md 中有完整定义,规则与 Guideline 边界问题可参考 rules-consistency.md。
最佳实践三:双语支持,语言纯净是核心
正确姿势:zh/en 各写一份,互不混杂
language: [zh, en] description: zh: '财报会议摘要模板 - 从财报电话会议记录中提取公司业绩、预期对比和前瞻指引' en: 'Earnings Call Summary Template - Extract company performance, guidance from transcripts'核心原则是语言纯净:zh字段必须是纯中文,en字段必须是纯英文。
- ❌
zh: '类型:entity(实体)'—— 中英混杂 - ✅
zh: '类型:实体'/en: 'Type: entity'
哪些能翻译,哪些不能翻译
根据 multilingual 技能 的定义:
| 可翻译 | 不可翻译 |
|---|---|
description、output.description | name、type、tags |
每个字段的fields[].description | 字段名(name: company_name保持原文) |
guideline.target、guideline.rules | identifiers、display |
常见术语对照:实体→entity、过程→process、关系→relation、高/中/低→high/medium/low。
单语言模板升级双语只需两步
- 将
language: zh改为language: [zh, en] - 给每个可翻译字段补一个
en子字段,并整体校验术语一致性
用 he template validate 一键体检
模板写完后,运行校验命令即可按 HE-T001–HE-T009 检查码体检(实现见 validator.py):
he template validate my_template.yaml关键检查项:
- 🔴 error 级:YAML 可解析、标识字段存在于 schema、
relation_members类型匹配 - 🟡 warning 级:声明语言缺失、字段数超过 5、与内置预设重名
校验器还能自动发现"zh 字段混入英文术语"这类双语问题,是发布前最后一道防线。
抽取效果:一份好模板长这样
下图是用模板抽取后he show的可视化界面——节点、关系、描述都来自模板定义的 Schema:
最佳实践速查清单
- ☑️描述自包含:每个字段
description带格式示例 - ☑️边界清晰:Schema 管"是什么",Guideline 管"如何做好",不互相重复
- ☑️规则具体:"提取与原文一致的精确数字"而非"提取数字"
- ☑️字段克制:每个组件 ≤ 5 字段,按必要/重要/可选排序
- ☑️命名统一:
type、time、snake_case,标签小写 - ☑️语言纯净:zh 纯中文、en 纯英文,字段名不翻译
- ☑️过一遍校验:
he template validate无 error 再交付
完整工作流可参考官方技能包 hyperextract-skills/ 中的 brainstorm → designer → optimizer → validator 流水线,以及 模板选择指南 和 模板格式文档。
【免费下载链接】Hyper-ExtractHypergraph is more powerful. Transform unstructured text into structured knowledge with LLMs. Graphs, hypergraphs, and spatio-temporal extractions — with one command.项目地址: https://gitcode.com/GitHub_Trending/hy/Hyper-Extract
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考