5.8 KiB
Executable File
5.8 KiB
Executable File
V13 整合方案 - 集各版本之长
🎯 核心原则
不捡芝麻丢西瓜,所有好经验都要迭代到v13
📊 各版本好经验汇总
| 版本 | 核心好经验 | 优先级 |
|---|---|---|
| v12 | 附表下载、章节识别、章节补充、实体过滤、gene-centric chunks、多组学数据 | ⭐⭐⭐⭐⭐ |
| v10 | 附表Excel解析、从附表生成关系 | ⭐⭐⭐⭐⭐ |
| fusion | 7种关系抽取、复合基因展开、证据验证 | ⭐⭐⭐⭐⭐ |
| PC完整版 | 46个PC风格模式 | ⭐⭐⭐⭐ |
| rule_base_full.json | 788个模式(待整合) | ⭐⭐⭐ |
🔧 V13架构设计
V13Extractor (主类)
├── Phase 1: 文档解析
│ ├── marker-pdf 章节识别 (from v12)
│ └── PyMuPDF 章节补充 (from v12)
│
├── Phase 2: 附表处理
│ ├── 自动下载 (from v12/supplementary_downloader)
│ ├── Excel解析 (from v10)
│ └── 关系生成 (from v10)
│
├── Phase 3: 实体识别
│ ├── 基因实体识别 (from v12)
│ ├── 实体过滤 (from v12/gene_entity_filter)
│ └── 其他实体识别 (from fusion)
│
├── Phase 4: 关系抽取
│ ├── 文本关系抽取 (from fusion + PC完整版)
│ ├── 附表关系生成 (from v10)
│ └── 复合基因展开 (from fusion)
│
├── Phase 5: 后处理
│ ├── 证据验证 (from fusion)
│ ├── 去重 (from fusion)
│ └── gene-centric chunks (from v12)
│
└── Output: 原始KG → 接入PC消歧
📦 V13文件结构
src/rag/extractors/
├── v13/
│ ├── __init__.py
│ ├── v13_extractor.py # 主提取器
│ ├── phase1_document_parser.py # 文档解析
│ ├── phase2_supplementary.py # 附表处理
│ ├── phase3_entity_recognition.py # 实体识别
│ ├── phase4_relation_extraction.py # 关系抽取
│ ├── phase5_post_processing.py # 后处理
│ └── rule_base_loader.py # 788模式加载器
📝 各Phase具体实现
Phase 1: 文档解析 (复用v12)
# 直接复用v12的代码
from ..extract_v12_final import V12FinalExtractor
# 提取章节识别和章节补充逻辑
Phase 2: 附表处理 (v12+v10)
# 下载: 来自v12
from ..supplementary_downloader import SupplementaryDownloader
# 解析: 来自v10
class SupplementaryParser:
def parse_table_s1(self, excel_path): # 基因列表
def parse_table_s2(self, excel_path): # 保守基序
def parse_table_s3(self, excel_path): # 同源基因
# 关系生成: 来自v10
def generate_relations_from_tables(self):
# belongs_to, located_in, expressed_in
Phase 3: 实体识别 (v12+fusion)
# 基因实体: 来自v12
from ..gene_entity_filter import GeneEntityFilter
# 其他实体: 来自fusion
# - tissue, metabolite, process, compartment, species, phylogeny_group
Phase 4: 关系抽取 (fusion+PC完整版)
# 基础7种: 来自fusion
EXPRESSED_IN = [...]
TRANSPORTS = [...]
LOCATED_ON = [...]
GROUPED_WITH = [...]
INVOLVED_IN = [...]
LOCALIZES_TO = [...]
IDENTIFIED_IN = [...]
# 扩展46种: 来自PC完整版
EXPRESSION_PATTERNS = [...] # 13个
LOCATION_PATTERNS = [...] # 8个
FUNCTION_PATTERNS = [...] # 16个
TRANSPORT_PATTERNS = [...] # 9个
# 未来: 788种来自rule_base_full.json
Phase 5: 后处理 (fusion+v12)
# 证据验证: 来自fusion
def validate_evidence(self, relations, text):
# 复合基因展开: 来自fusion
def expand_composite_genes(self, text):
# gene-centric chunks: 来自v12
from ..gene_centric_chunker import GeneCentricChunker
🚀 开发顺序
阶段1: 基础框架 (1-2天)
- 创建v13目录结构
- 复制v12主框架
- 确保能运行基础流程
阶段2: 整合附表 (2-3天)
- 集成v10的附表解析
- 集成v10的关系生成
- 测试附表完整流程
阶段3: 整合关系抽取 (3-4天)
- 集成fusion的7种关系
- 集成PC完整版的46种模式
- 测试关系抽取
阶段4: 优化 (2-3天)
- 整合后处理
- 性能优化
- 测试验证
阶段5: 788模式 (未来)
- 开发rule_base_loader.py
- 动态加载788模式
- 对比测试
✅ 验收标准
V13必须同时满足:
- ✅ 能下载附表 (v12能力)
- ✅ 能解析附表Excel (v10能力)
- ✅ 能从附表生成关系 (v10能力)
- ✅ 能识别章节 (v12能力)
- ✅ 能补充章节 (v12能力)
- ✅ 能过滤实体 (v12能力)
- ✅ 能抽取7+种关系 (fusion+PC能力)
- ✅ 能展开复合基因 (fusion能力)
- ✅ 能验证证据 (fusion能力)
- ✅ 能生成gene-centric chunks (v12能力)
📝 代码复用策略
原则: 不复制代码,只导入复用
# 好的做法
from ..extract_v12_final import V12FinalExtractor
from ..supplementary_downloader import SupplementaryDownloader
from ..gene_entity_filter import GeneEntityFilter
from ..gene_centric_chunker import GeneCentricChunker
# 不好的做法 (复制粘贴)
# 把v12的代码复制到v13
例外: 需要修改的代码
- fusion的关系抽取模式 → 复制到v13并扩展
- v10的附表解析 → 复制到v13并优化
🤔 需要确认的问题
-
是否保留v12的Layer 1/2/3输出结构?
- 建议保留,这是v12的好设计
-
788个模式是否必须v13就实现?
- 建议分阶段:先用46个,再扩展788个
-
PC消歧是v13内置还是外部调用?
- 建议v13只负责提取,消歧外部调用
-
是否支持批量PDF处理?
- 建议支持,这是实际需求
方案制定时间: 2026-04-13 原则: 集各版本之长,不捡芝麻丢西瓜