Files
PlantAI-rag/docs/history/V13_INTEGRATION_PLAN.md
2026-07-10 17:59:59 +08:00

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必须同时满足:

  1. ✅ 能下载附表 (v12能力)
  2. ✅ 能解析附表Excel (v10能力)
  3. ✅ 能从附表生成关系 (v10能力)
  4. ✅ 能识别章节 (v12能力)
  5. ✅ 能补充章节 (v12能力)
  6. ✅ 能过滤实体 (v12能力)
  7. ✅ 能抽取7+种关系 (fusion+PC能力)
  8. ✅ 能展开复合基因 (fusion能力)
  9. ✅ 能验证证据 (fusion能力)
  10. ✅ 能生成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并优化

🤔 需要确认的问题

  1. 是否保留v12的Layer 1/2/3输出结构?

    • 建议保留,这是v12的好设计
  2. 788个模式是否必须v13就实现?

    • 建议分阶段:先用46个,再扩展788个
  3. PC消歧是v13内置还是外部调用?

    • 建议v13只负责提取,消歧外部调用
  4. 是否支持批量PDF处理?

    • 建议支持,这是实际需求

方案制定时间: 2026-04-13 原则: 集各版本之长,不捡芝麻丢西瓜