🔬 PubMed文献引用验证工具
pubmed-verifier v1.3.0 · 一键检测AI编造的虚假文献引用 · 纯本地运行,零隐私泄露
一句话:自动调用PubMed API批量验证PMID引用的真实性和内容匹配度,5分钟完成225条引用的全量审计。基准测试:存在性验证精确率/召回率/F1 = 100%,内容匹配率95%,速度约34 PMIDs/min。
📌 功能一览
PMID存在性验证
逐条调用PubMed E-utilities API(esummary),确认PMID是否对应真实文献。支持批量查询(50条/请求),自动限速(3 req/s)。
元数据提取
自动获取标题、作者、期刊、发表日期、DOI等完整元数据,便于人工核实。
内容匹配检测
从文件名提取关键词,与文献标题做overlap匹配。内置70+医学缩写映射表(sJIA、SAVI、cSLE、GIO等),自动展开后匹配,匹配率达95%。
替代文献搜索
发现无效PMID时,自动调用PubMed esearch根据关键词搜索推荐替代文献,返回候选PMID列表。
跨领域引用识别
智能标记低匹配度引用(不自动删除),区分"确实无关"和"跨领域但合理"(如HLH指南被MAS病例引用),保留人工判断空间。
多格式报告
输出HTML可视化报告、JSON结构化数据、终端摘要,满足不同场景需求。
📊 基准测试结果
① PMID存在性验证
100%
精确率 Precision
100%
召回率 Recall
100%
F1 Score
测试集:100条真实PMID + 20条虚假PMID混合集。每条均正确分类。
② 内容匹配验证
95%
同领域匹配率
20
测试病例数
70+
医学缩写映射
测试集:MedWiki-Rheum真实病例文件对应PMID。唯一未匹配项经核实为正确检测(文献标题与病例完全无关)。
③ 处理速度
~34
PMIDs/min
225
条/约7分钟
50
条/批次
📥 安装方式
方式一:OpenClaw CLI安装(推荐)
# ClawHub国际版
openclaw skills install docsor1212/pubmed-verifier
# 安装后脚本位于
~/.openclaw/skills/pubmed-verifier/scripts/verify_pmids.py
方式二:手动安装
# 克隆或下载skill文件
git clone https://github.com/docsor1212/pubmed-verifier.git
# 或直接下载zip
wget https://clawhub.ai/docsor1212/pubmed-verifier/archive/latest.zip
依赖
| 依赖 | 版本 | 说明 |
|---|---|---|
| Python | ≥ 3.10 | 核心运行环境 |
| requests | 任意 | HTTP请求(PubMed API调用) |
| PubMed E-utilities | — | 无需API Key,免费使用 |
⚠️ 无需任何API Key,无需注册任何账号,无需联网以外的任何配置。
🚀 使用方法
基础用法
1
验证整个项目目录
扫描目录下所有HTML/MD/TXT/JSON文件,提取全部PMID并验证
python3 ~/.openclaw/skills/pubmed-verifier/scripts/verify_pmids.py \
--source /path/to/project \
--output report.html
2
验证指定PMID
直接输入PMID列表,适合快速检查单条或少量引用
python3 ~/.openclaw/skills/pubmed-verifier/scripts/verify_pmids.py \
--pmids 31018962,22213727,999999999
3
启用内容匹配
检查文献标题与文件名/目录名的相关性,标记可能错误的引用
python3 ~/.openclaw/skills/pubmed-verifier/scripts/verify_pmids.py \
--source ./papers \
--match-keywords \
--threshold 0.2
完整参数表
| 参数 | 必填 | 说明 |
|---|---|---|
--source | 二选一 | 要扫描的目录路径 |
--pmids | 二选一 | 逗号分隔的PMID列表 |
--output | 否 | 报告输出路径(支持 .html / .json / .txt) |
--match-keywords | 否 | 启用内容匹配检测(默认关闭) |
--threshold | 否 | 匹配阈值 0-1(默认 0.2,低于此值标记为低匹配) |
支持的文件格式
.html · .htm · .md · .txt · .json
自动识别的PMID格式
# 以下格式均可自动提取
PMID: 12345678
PubMed: 12345678
pubmed.ncbi.nlm.nih.gov/12345678/
https://pubmed.ncbi.nlm.nih.gov/12345678/
🧬 内置医学缩写映射表(部分)
共70+条映射,持续扩展中。以下为风湿免疫学相关示例:
| 缩写 | 全称 |
|---|---|
| sJIA | systemic juvenile idiopathic arthritis |
| cSLE | childhood systemic lupus erythematosus |
| SAVI | STING-associated vasculopathy with onset in infancy |
| GIO | glucocorticoid-induced osteoporosis |
| MAS | macrophage activation syndrome |
| IgAV | immunoglobulin A vasculitis |
| KD | Kawasaki disease |
| AID | autoinflammatory disease |
| pSS | primary Sjögren syndrome |
| HLH | hemophagocytic lymphohistiocytosis |
| MVK / MKD | mevalonate kinase deficiency |
| NLRC4 | NLR family CARD domain containing 4 |
完整映射表见脚本内 ABBREVS 字典,支持自定义扩展。
📖 实际应用案例:MedWiki-Rheum审计
项目背景
MedWiki-Rheum循证病例库包含35个HTML病例文件,共225条PMID引用。使用pubmed-verifier进行全量验证。
222
验证通过 ✅
3
无效PMID(已修复)
6
跨领域引用(合理)
~7min
总耗时
修复记录
| 文件 | 原PMID | 问题 | 修复PMID | 替代文献 |
|---|---|---|---|---|
| ev_GIO_01 | 21954079 | 不存在 | 22213727 | 椎体骨折(风湿儿童) |
| ev_SAVI_01 | 27552632 | 不存在 | 27585386 | STING血管病ILD |
| ev_AID_01 | 36204790 | 不存在 | 31018962 | 自身炎症热病分类标准 |
详见 PMID引用全量验证报告
🔗 获取地址
⚙️ 技术细节
| 项目 | 说明 |
|---|---|
| API | PubMed E-utilities(esummary + esearch),免费,无需API Key |
| 限速 | 3 req/s(免费用户),脚本内置0.4s批次间隔 |
| 批次大小 | 50 PMIDs/请求 |
| 内容匹配算法 | 关键词overlap + 医学缩写展开,返回0-1匹配分数 |
| 报告格式 | HTML可视化 / JSON结构化 / 终端文本摘要 |
| 语言 | Python 3.10+,单文件脚本,零外部配置 |
| 隐私 | 纯本地运行 不上传任何文件到服务器,论文和病例数据不离开本机 |
| 许可证 | MIT-0(可自由使用、修改、分发,无需署名) |
❓ 常见问题
Q: 需要API Key吗?
不需要。PubMed E-utilities对免费用户开放,自带限速(3 req/s),脚本已内置合规延迟。
Q: 我的论文数据安全吗?
完全安全。脚本只在本地运行,仅向PubMed API发送PMID编号查询,不上传论文内容或文件。
Q: 内容匹配的阈值怎么设?
默认0.2(宽松),适合大多数场景。如果跨领域引用较多可降至0.15,如果想更严格可提高到0.3。低于阈值的引用会被标记供人工判断,不会被自动删除。
Q: 可以用于非医学领域吗?
可以。PMID存在性验证对所有PubMed收录文献通用。内容匹配的缩写映射表可自定义扩展,或直接关闭(不加--match-keywords)。
📋 版本历史
| 版本 | 日期 | 更新内容 |
|---|---|---|
| v1.3.0 | 2026-04-18 | 中文化简介描述,面向国内用户优化 |
| v1.2.0 | 2026-04-18 | 新增70+医学缩写映射表,内容匹配率35%→95% |
| v1.1.0 | 2026-04-18 | SEO优化描述,新增README文档 |
| v1.0.0 | 2026-04-18 | 首个发布版本:PMID存在性验证、内容匹配、替代搜索、多格式报告 |