🔬 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+条映射,持续扩展中。以下为风湿免疫学相关示例:

缩写全称
sJIAsystemic juvenile idiopathic arthritis
cSLEchildhood systemic lupus erythematosus
SAVISTING-associated vasculopathy with onset in infancy
GIOglucocorticoid-induced osteoporosis
MASmacrophage activation syndrome
IgAVimmunoglobulin A vasculitis
KDKawasaki disease
AIDautoinflammatory disease
pSSprimary Sjögren syndrome
HLHhemophagocytic lymphohistiocytosis
MVK / MKDmevalonate kinase deficiency
NLRC4NLR 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引用全量验证报告

🔗 获取地址

🌐
ClawHub(国际版)
clawhub.ai/docsor1212/pubmed-verifier

MIT-0协议 · 支持CLI安装

🇨🇳
SkillHub(国内版)
skillhub.cn/skills/pubmed-verifier

中文界面 · 腾讯安全扫描通过

⚙️ 技术细节

项目说明
APIPubMed 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.02026-04-18中文化简介描述,面向国内用户优化
v1.2.02026-04-18新增70+医学缩写映射表,内容匹配率35%→95%
v1.1.02026-04-18SEO优化描述,新增README文档
v1.0.02026-04-18首个发布版本:PMID存在性验证、内容匹配、替代搜索、多格式报告
免责声明 本站内容为临床参考资料,由 AI 辅助整理、Cite-holmes 及人工审校,仅供专业交流,不构成对具体患者的诊疗建议;临床决策请结合患者实际情况并遵循所在医疗机构规范。所引指南与文献均标注来源与核验状态,引用请以原文为准。