本项目构建了一个基于中国民用航空规章的知识图谱,通过大语言模型(LLM)从民航规章文档中自动抽取结构化知识,形成可查询、可推理的知识网络。
- 📚 结构化知识:将非结构化的规章文本转化为结构化图谱
- 🔍 智能查询:支持复杂的语义查询和关系推理
- 🎯 合规检查:快速定位相关规章条款
- 🔗 关联分析:发现规章之间的隐含关系
- 📊 可视化展示:直观展示规章体系结构
- 数据规模:16部民航规章
- 节点数量:9,109个
- 关系数量:10,984条
- 技术栈:Python + LLM (DeepSeek-V3) + Neo4j Aura
AeroKG/
├── kg_extraction/ # 知识抽取核心代码
│ ├── main.py # 主入口
│ ├── extractor.py # 抽取器
│ ├── llm_provider.py # LLM接口
│ ├── async_extractor.py # 异步抽取器
│ ├── cleaner.py # 文本清洗
│ ├── classifier.py # 文本分类
│ ├── normalizer.py # 标准化处理
│ ├── validator.py # 质量验证
│ ├── exporter.py # 结果导出
│ ├── config.py # 配置管理 ⭐
│ └── env_loader.py # 环境变量加载器 ⭐
│
├── kg_output/ # 抽取结果数据
│ ├── nodes_*.json # 各类节点数据
│ ├── edges.json # 关系数据
│ └── extraction_report.json
│
├── chunks.json # 原始文本数据
├── .env # 环境变量配置 ⭐
├── .env.example # 配置模板 ⭐
├── .gitignore # Git忽略规则 ⭐
├── requirements.txt # 项目依赖 ⭐
│
├── import_complete_graph.py # 一键导入完整图谱 ⭐
├── optimize_graph.py # 图谱优化脚本
├── optimize_article_nodes.py # Article节点优化
├── final_verification.py # 最终验证脚本
├── clear_graph.py # 清空图谱脚本
│
├── README.md # 项目主文档
├── 知识图谱完整总结.md # 完整总结文档
├── 图谱知识.md # 面试准备文档
├── 项目整理报告.md # 文件整理报告 ⭐
├── ENV_CONFIG.md # 环境变量配置说明 ⭐
├── ENV_MIGRATION_REPORT.md # 环境变量迁移报告 ⭐
│
└── 待删除文件/ # 待删除的冗余文件 ⭐
Document (文档)
└── CONTAINS → StructuralUnit (章节条款)
├── HAS_RULE → Rule (规则)
│ └── DERIVED_FROM → Article (文章) ⭐
├── HAS_CONDITION → Condition (条件)
├── HAS_CONSTRAINT → Constraint (约束)
├── DEFINES → Definition (定义)
│ └── Term (术语)
└── REFERENCES → Reference (引用)
| 节点类型 | 数量 | 说明 |
|---|---|---|
| Rule | 2,945 | 规则节点(核心) |
| StructuralUnit | 1,875 | 章节条款节点 |
| Condition | 1,597 | 条件节点 |
| Constraint | 965 | 约束节点 |
| Article | 1,166 | 文章节点 ⭐ |
| Term | 193 | 术语节点 |
| Definition | 193 | 定义节点 |
| Reference | 159 | 引用节点 |
| Document | 16 | 文档节点 |
| 关系类型 | 数量 | 说明 |
|---|---|---|
| HAS_RULE | 3,138 | StructuralUnit → Rule |
| DERIVED_FROM | 2,945 | Rule → Article ⭐ |
| CONTAINS | 1,875 | Document → StructuralUnit |
| HAS_CONDITION | 1,597 | StructuralUnit → Condition |
| HAS_CONSTRAINT | 965 | StructuralUnit → Constraint |
| REFERENCES | 372 | Rule → Reference |
| DEFINES | 193 | StructuralUnit → Definition |
# 安装依赖
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,填写你的配置
# SILICONFLOW_API_KEY=your_api_key
# NEO4J_URI=neo4j+s://...
# NEO4J_USERNAME=...
# NEO4J_PASSWORD=...
# NEO4J_DATABASE=...# 验证配置是否正确
python -m kg_extraction.config预期输出:
✓ 加载配置文件: D:\Pycode\vibecoding\AeroKG\.env
============================================================
配置验证
============================================================
📋 SiliconFlow API:
API Key: 已配置
Base URL: https://api.siliconflow.cn/v1
Model: deepseek-ai/DeepSeek-V3
📋 Neo4j:
URI: neo4j+s://...
Username: ...
Password: 已配置
Database: ...
# 一键导入(推荐)
python import_complete_graph.py执行步骤:
- 清空图谱
- 导入原始数据(7,943节点,7,927关系)
- 执行图谱优化
- 执行Article节点优化
最终结果:
- ✅ 节点: 9,109个
- ✅ 关系: 10,984条
- ✅ 全文索引: 5个
- ✅ 追溯覆盖率: 100%
python final_verification.py// 检索包含"空域"的规则
CALL db.index.fulltext.queryNodes('rule_evidence_fulltext', '空域')
YIELD node, score
MATCH (node)-[:DERIVED_FROM]->(a:Article)
RETURN node.subject, a.article_no, a.text, score
ORDER BY score DESC
LIMIT 10// 从规则追溯到原文
MATCH (r:Rule)-[:DERIVED_FROM]->(a:Article)
WHERE r.subject CONTAINS '民航局'
RETURN r.subject, r.action, a.text// 查询规则及其条件约束
MATCH (s:StructuralUnit)-[:HAS_RULE]->(r:Rule)
OPTIONAL MATCH (s)-[:HAS_CONDITION]->(c:Condition)
OPTIONAL MATCH (s)-[:HAS_CONSTRAINT]->(cs:Constraint)
RETURN s.article_no, r.subject,
collect(DISTINCT c.text) as conditions,
collect(DISTINCT cs.text) as constraints// 查询文内引用
MATCH (r:Rule)-[:REFERENCES]->(ref:Reference)
WHERE ref.is_intra_document = true
RETURN r.subject, ref.ref_text- README.md - 项目主文档(本文档)
- 知识图谱完整总结.md - 完整的图谱结构、抽取方法、优化过程总结
- 图谱知识.md - 面试准备文档,包含技术细节和问答
- ENV_CONFIG.md - 环境变量配置详细说明 ⭐
- 项目整理报告.md - 项目文件整理报告 ⭐
- ENV_MIGRATION_REPORT.md - 环境变量迁移报告 ⭐
| 脚本 | 用途 |
|---|---|
import_complete_graph.py |
一键导入完整图谱 ⭐ |
optimize_graph.py |
执行图谱优化 |
optimize_article_nodes.py |
Article节点优化 |
final_verification.py |
验证图谱完整性 |
clear_graph.py |
清空图谱数据库 |
原始文档 (DOCX/PDF)
↓ 文档解析
分块数据 (chunks.json)
↓ LLM抽取 (DeepSeek-V3)
节点和边文件 (kg_output/)
↓ 质量标记
候选图库 (Neo4j Aura)
↓ 图谱优化
完整图谱 (9,109节点, 10,984关系)
| 配置项 | 值 | 说明 |
|---|---|---|
| 模型 | deepseek-ai/DeepSeek-V3 | 统一使用DeepSeek-V3 ⭐ |
| 提供商 | SiliconFlow | API提供商 |
| Temperature | 0.05 | 低温度保证稳定性 |
| Max Tokens | 800 | 最大输出token数 |
| Timeout | 45s | API超时时间 |
| 成功率 | 99.8% | 1,561/1,564成功 |
| 平均延迟 | 856ms | API响应时间 |
| 索引名称 | 节点 | 属性 |
|---|---|---|
| rule_evidence_fulltext | Rule | evidence_text |
| rule_subject_fulltext | Rule | subject |
| rule_action_fulltext | Rule | action |
| structural_unit_fulltext | StructuralUnit | title, chapter, section |
| article_fulltext | Article | text, article_no |
| 指标 | 数值 | 说明 |
|---|---|---|
| Rule追溯覆盖率 | 100% | 所有Rule都能追溯到Article |
| Article文本覆盖率 | 100% | 所有Article都有文本 |
| LLM抽取成功率 | 99.8% | 1,561/1,564成功 |
| 平均置信度 | 0.89 | 高质量抽取 |
| 全文索引数量 | 5 | 完善的检索支持 |
查询某项业务活动相关的所有规章要求,检查是否符合相关条款。
发现不同规章之间的引用关系和关联性,分析规章体系的完整性。
梳理某个主体的所有职责和义务,明确责任边界。
从规则追溯到原始条款和文档,查看原文证据。
基于图谱的智能问答系统,支持自然语言查询。
// 节点统计
MATCH (n)
RETURN labels(n)[0] as label, count(*) as count
ORDER BY count DESC
// 关系统计
MATCH ()-[r]->()
RETURN type(r) as type, count(*) as count
ORDER BY count DESCMATCH (r:Rule)
WHERE r.subject CONTAINS '民航局'
RETURN r.subject, r.action, r.object, r.modality
ORDER BY r.modalityMATCH (r:Rule)-[:REFERENCES]->(ref:Reference)
RETURN r.subject, r.action, ref.ref_text, ref.is_intra_document- 登录: https://console.neo4j.io/
- 点击实例: caac-kg
- 点击 "Open with Neo4j Browser"
- 运行Cypher查询
配置文件: .env
# SiliconFlow API 配置
SILICONFLOW_API_KEY=your_api_key_here
SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1
SILICONFLOW_MODEL=deepseek-ai/DeepSeek-V3
# Neo4j Aura 配置
NEO4J_URI=neo4j+s://your-instance.databases.neo4j.io
NEO4J_USERNAME=your_username
NEO4J_PASSWORD=your_password
NEO4J_DATABASE=your_database_name- 不要将
.env文件提交到版本控制系统 - 使用
.env.example作为配置模板 - 定期更换API密钥
项目整理 ⭐:
- ✅ 整理项目文件结构
- ✅ 移动18个冗余文件到"待删除文件"文件夹
- ✅ 更新项目文档,确保信息准确
- ✅ 清理重复和临时文件
核心功能:
- ✅ 完成16部民航规章的知识抽取
- ✅ 构建包含9,109个节点的知识图谱
- ✅ 实现10,984条关系的关联
- ✅ 建立质量控制机制
- ✅ 部署到Neo4j Aura云端
图谱优化:
- ✅ 创建Article节点层,支持规则追溯
- ✅ 修复REFERENCES关系方向
- ✅ 创建5个全文索引
- ✅ 实现100%追溯覆盖率
配置管理 ⭐:
- ✅ 统一使用
.env文件管理配置 - ✅ 所有密钥从环境变量读取
- ✅ 模型统一为 DeepSeek-V3
- ✅ 添加配置验证和文档
- 查询需要审核的节点
- 人工审核和修正
- 更新源数据文件
- 重新导入图谱
- 准备规章文档
- 运行LLM抽取
- 生成节点和边文件
- 导入图谱
如有问题或建议,请联系项目维护者。
最后更新: 2026-04-09
版本: 2.2
作者: Claude AI Assistant
许可: 项目内部使用