# PlantScience.ai 技术深度分析 ## 如何提高提取准确度 ### 1. 核心技术栈 | 组件 | 技术 | 作用 | |:---|:---|:---| | PDF解析 | **Grobid** | 将PDF转为结构化文本 | | 知识提取 | **GPT-4o-mini** | NER + 关系提取 | | 文本处理 | 滑动窗口 (1500 tokens + 200 overlap) | 处理长文本 | | 知识存储 | Neo4j | 知识图谱存储 | ### 2. 提高准确度的关键技术 #### 2.1 In-Context Learning (上下文学习) ``` 方法: 在prompt中加入5个专家手工编写的示例 作用: 让LLM理解领域特定的实体类型和关系模式 效果: 提高NER和关系提取的准确性 ``` #### 2.2 多轮审查机制 (Multi-round Scrutiny) ``` 第一轮: 提取所有生物实体 第二轮: 审查问题1 - "当前提取是否覆盖了原文中所有生物实体?" 第三轮: 审查问题2 - "当前提取是否包含了原文中不存在的生物实体?" 第四轮: 提取实体间的关系 ``` #### 2.3 滑动窗口 + 重叠 ``` 窗口大小: 1500 tokens 重叠: 200 tokens 作用: 确保跨窗口的实体和关系不被遗漏 ``` #### 2.4 文本预处理 ``` - 标准化编码 - 修正特殊字符 - 过滤换行符 - 全部转为小写 ``` ### 3. 知识图谱构建流程 ``` PDF → Grobid解析 → 文本分块 → GPT-4o-mini提取 → 多轮审查 → 实体标准化(同义词合并) → 生成描述 → 分类(预定义类别) → Neo4j存储 ``` ### 4. 数据规模 | 时间 | 实体数 | 关系数 | |:---|:---|:---| | 2025年6月 | 120万 | 400万 | | 2025年9月 | 180万 | - | ### 5. 评估结果 与通用LLM对比 (1770个问题,19个类别): | 模型 | PlantScience.ai胜率 | |:---|:---| | Gemini Pro | 82.3% | | Gemini Flash | 86.0% | | Opus 4.5 | 87.6% | | Haiku-4.5 | 73.1% | | GPT-5 | 73.5% | | GPT-4o-mini | 86.0% | ### 6. 关键技术对比 | 技术 | PlantScience.ai | Gene Family MAS | |:---|:---|:---| | **PDF解析** | Grobid | PyMuPDF | | **LLM提取** | GPT-4o-mini (必须) | 可选 (本地/远程) | | **In-Context Learning** | ✅ 5个示例 | ✅ 可配置 | | **多轮审查** | ✅ 显式审查问题 | ✅ 置信度评分 | | **滑动窗口** | ✅ 1500+200 | ❌ 整篇处理 | | **补充材料获取** | ❌ | ✅ v5 Universal | | **系统发育提取** | ❌ | ✅ 专有提取器 | | **可追溯性** | ✅ DOI链接 | ✅ 来源引用 | ### 7. PlantScience.ai的优势 1. **大规模数据**: 180万实体,400万关系 2. **领域覆盖广**: 整个植物生物学 3. **持续学习**: 增量更新机制 4. **人工反馈**: 150+科学家参与测试 ### 8. PlantScience.ai的局限 1. **依赖OpenAI**: 必须使用GPT-4o-mini,成本高 2. **通用性强但深度不足**: 无基因家族特定功能 3. **无补充材料获取**: 无法获取PMC补充材料 4. **无系统发育提取**: 无法提取系统发育分组信息 ### 9. 可以借鉴的技术 #### 9.1 In-Context Learning ```python # 在v5提取器中添加示例 EXAMPLES = [ { "text": "The CYP71 clan contains 43 genes...", "entities": ["CYP71", "genes"], "groups": {"Group_71": ["CYP71D1", "CYP71D2"]} }, # 更多示例... ] ``` #### 9.2 多轮审查机制 ```python # 添加审查步骤 def scrutinize_extraction(text, extraction): """审查提取结果""" questions = [ "Does the extraction cover all phylogenetic groups?", "Does the extraction contain any non-existent genes?", "Are all gene IDs in the correct format (e.g., CYP71D1)?" ] # 使用LLM审查... ``` #### 9.3 滑动窗口处理 ```python # 添加滑动窗口 def sliding_window_extract(text, window_size=1500, overlap=200): """滑动窗口提取""" chunks = [] for i in range(0, len(text), window_size - overlap): chunk = text[i:i + window_size] chunks.append(chunk) # 合并结果... ``` ### 10. 结论 PlantScience.ai通过以下方式提高准确度: 1. **In-Context Learning**: 领域示例引导 2. **多轮审查**: 自我纠错机制 3. **滑动窗口**: 避免长文本遗漏 4. **大规模验证**: 150+专家反馈 **Gene Family MAS可以借鉴**: - 添加In-Context Learning示例 - 实现多轮审查机制 - 添加滑动窗口处理长文本 - 保持v5提取器的补充材料获取优势 **Gene Family MAS的差异化优势**: - 专精基因家族分析 - v5系统发育提取(独有) - 补充材料智能获取(独有) - 可选本地LLM(无OpenAI依赖)