OncoLit: a multi-tenant oncology literature search, feed, and collaboration platform. Built with FastAPI + Vue 3 + PostgreSQL. Includes PubMed pipeline, drug approvals, AI summaries, and systematic review tools.
8.6 KiB
文献数据质量报告
最后更新:2026-07-23 · 来源:
global_literature表统计 · 基线导入后
数据总览
| 维度 | 数值 | 覆盖率 | 状态 |
|---|---|---|---|
| 总文献 | 1,222,688 | 100% | — |
| 有摘要 | 1,110,080 | 90.8% | ✅ |
| 有 DOI | 1,171,276 | 95.8% | ✅ |
| 有研究设计 | 436,748 | 35.7% | 🟡 见下方说明 |
| 有引用次数 (>0) | 1,744 | 0.1% | 🟡 见下方说明 |
| 已打标(GlobalTag) | 928,830+ | 76.0% | ✅ |
| 有 MeSH 头 | 899,275+ | 73.6% | ✅ |
| 无 MeSH(文本过滤入库) | 323,094+ | 26.4% | ✅ |
| 有 PICO | 0 | 0% | 🔴 待处理 |
| 有 OA 全文 | 490 | 0.04% | ✅(PMC 平台覆盖率预期值) |
| 有 AI 摘要 | 1 | ~0% | 🔴 待处理 |
| 有格兰特信息 | 252,476 | 20.7% | 🟡 |
数据来源分布
| 来源 | 文献数 | 占比 |
|---|---|---|
| pubmed_ftp(基线导入) | 1,219,536 | 99.7% |
| pubmed_api(日常精搜) | 2,668 | 0.2% |
| europe_pmc | 484 | <0.1% |
99.7% 来自基线导入,日常 API 管道目前在补充最新文献。
基线导入状态
PubMed 2026 基线共 1,334 个文件(n0001–n1334)。其中:
| 文件 | 状态 | 处理结果 |
|---|---|---|
| n0001(pubmed26n0001.xml.gz) | ❌ gzip 损坏(invalid compressed data) |
✅ 已用 recover=True 修复,导入 195 篇肿瘤文献 |
| n0002(pubmed26n0002.xml.gz) | ❌ gzip 截断(unexpected end of file) |
✅ 已用 recover=True 修复,导入 124 篇肿瘤文献 |
| n0003–n1334 | ✅ 正常 | 原始导入已覆盖,跳过 |
技术修复:import_xml_file() 在 for _event, elem in context: 外层加了 try/except,确保 iterparse 因 XML 损坏抛出异常时,已解析的文章仍被 flush+commit,不会回滚。
已处理文件:n0001+n0002(共 +319 篇),其余文件的肿瘤文献已在原始基线导入中正确入库,无需重跑。
各维度详解
1. 有摘要(✅ 90.8%)
1,110,080/1,222,688 篇文献有英文摘要。112,289 篇无摘要主要是 PubMed 基线中的会议摘要、信件、评论等短类型文献,在过滤规则下会因标题命中关键词而被收录。
2. 研究设计分类(🟡 35.7% → 目标 70%+)
436,748 篇已通过 classify_study_design() 自动分类(基于 PubMed PublicationType)。Python 侧的 classify_study_design 对部分文献未返回结果,剩余文献的 study_design 为空。
提升途径:运行 POST /admin/pipeline/backfill-study-designs 回填。
3. MeSH 标签覆盖(✅ 76.0% 已打标)
关键指标:
| 指标 | 数值 |
|---|---|
| 有 MeSH 头 | 899,275+ (73.6%) |
| 有 MeSH 且已打标 | 899,275+ (100%) |
| 无 MeSH(文本过滤) | 323,094+ (26.4%) |
| 已打标总结 | 928,830+ (76.0%) |
打标完整性 100%:所有有 MeSH Headings 的文献都已关联 global_literature_tags。这是因为 tag_service.py 的懒创建机制在打标时自动补建不存在的标签。
打标流程(自 2026-07-23 修复后):
- 按
mesh_ui精确匹配 → 命中存量标签(auto/manual/mesh) - 同时按
name_en匹配 C04 导入标签(2026-07-23 新增,确保无 mesh_ui 的 C04 标签也被关联) - 仍未匹配 → 自动懒创建标签(
source=auto, is_active=false)
标签活跃度分布:
| 来源 | 活跃 | 数量 | 说明 |
|---|---|---|---|
manual |
✅ 活跃 | 99 | 手工维护的 116 个种子标签 |
mesh |
✅ 活跃 | 505 | C04 导入标签(level ≤ 3,is_selectable) |
mesh |
❌ 未激活 | 165 | C04 导入标签(深层,仅用于搜索展开) |
auto |
❌ 未激活 | 20,150 | 懒创建标签,待人工审核 |
20,150 个懒创建标签来自打标时发现的不在 global_tags 中的 MeSH Descriptor。这些标签已标记 is_active=false,用户端不可见,但搜索时 [MH] 树号展开仍能匹配。
4. C04 肿瘤分类覆盖
| 指标 | 数值 |
|---|---|
| 已导入 C04 Descriptor | 701 个 |
| 已注册 C04 树号 | 1,070 + 985(回填)条 |
| C04 树号确认的文献 | 375,072 篇 |
| 按 tag_category=cancer 分类 | 573,751 篇 |
| C04 占 cancer 类 | 65.3% |
2026-07-23 修正:此前报告的 161,636 篇是仅通过 C04 导入标签(有 tree_number)确认的文献。实际 C04 覆盖为 375,072 篇,差距是时序问题导致的:
- 基线导入先执行 →
tag_service.py懒创建了 auto 标签(有 mesh_ui,无 tree_number) import_mesh_tags.py后执行 → C04 导入标签(有 tree_number,无 mesh_ui)成为孤儿- 两个修复已部署:
tag_service.py增加name_en并行匹配(不做 mesh_ui 独占)- 给已在库的 auto 标签回填 tree_number(985 条记录)
5. 引用次数(🟡 0.1% >0,待刷新)
1,744 篇文献有引用次数。当前引用数分布呈两极(仅 0 和 1001+),说明引用数据尚未经过全量刷新:
- 基线导入时
cited_by_count=0(新文献) cited_by_count > 1000可能是 elink API 返回格式异常导致(参见第 6 节)
下一步:运行 POST /admin/pipeline/refresh-citations 全量刷新。每日定时任务 daily_citation_update 05:13 UTC 自动刷新。
6. 文本覆盖率
| 字段 | 覆盖率 | 数值 |
|---|---|---|
| 有摘要 | 90.8% | 1,110,080 |
| 有 DOI | 95.8% | 1,171,276 |
| 有关键词 | <0.1% | 334 |
| 有基金信息 | 20.7% | 252,476 |
| 有化学物质 | <0.1% | 885 |
| 有基因符号 | 0% | 0 |
7. 年度分布
文献时间跨度合理:
| 年份范围 | 文献数 |
|---|---|
| 2026-2027 | 32,214 |
| 2024-2025 | 133,935 |
| 2022-2023 | 346,237 |
| 2020-2021 | 330,259 |
| 2016-2019 | 374,240 |
8. 语种分布
| 语种 | 文献数 | 占比 |
|---|---|---|
| 英语 | 1,187,243 | 97.1% |
| 中文 | 13,118 | 1.1% |
| 其他 | 22,008 | 1.8% |
9. 标签分类覆盖
按 global_tags.tag_category 分类的文献覆盖:
| 分类 | 覆盖文献数 | 标签种类 |
|---|---|---|
| cancer(癌种) | 573,751 | 533 |
| mesh_other(其他 MeSH) | 222,895 | 1,207 |
| gene(基因/靶点) | 204,264 | 18,956 |
| treatment(治疗) | 144,920 | 9 |
| endpoint(终点) | 144,409 | 9 |
| scenario(场景) | 117,041 | 10 |
| study_type(研究类型) | 56,127 | 7 |
注:gene 标签种类多(18,956)因 MeSH Chemical/Drug 条目被自动分类为 gene 类。
10. 期刊 Tier 分布
| Tier | 文献数 | 占比 |
|---|---|---|
| 4(默认,未匹配) | 1,154,516 | 94.4% |
| 3 | 597 | <0.1% |
| 2 | 5,955 | 0.5% |
| 1 | 36 | <0.1% |
| unknown(无 ISSN 记录) | 61,265 | 5.0% |
期刊 Tier 映射覆盖率极低 — global_journals 表只有 17 个预定义期刊。94.4% 的文献落入 tier 4 默认值。如需基于期刊质量的排序或过滤,需要扩充期刊索引。
已知问题
🟡 引用次数刷新滞后
基线导入后引用次数尚未全量刷新。可通过 daily_citation_update 定时任务逐步补全。
🟡 研究设计分类仅 35.7%
classify_study_design() 对基线导入的 XML 解析覆盖率不够。运行 backfill-study-designs 接口可提升。
🟡 PICO 要素未提取
0 篇文献有 PICO 数据。需执行 POST /admin/pipeline/extract-pico。
🟡 AI 摘要仅 1 篇
尚未批量运行 AI 摘要生成。需执行 POST /admin/ai/summarize。
🟡 懒创建标签待审核
20,150 个 source=auto, is_active=false 的标签需要人工审核是否归属到正确分类、补充中文名。
🟡 期刊 Tier 映射几乎为空
global_journals 需要从外部源(如 SCImago Journal Rank)批量导入期刊 Tier 数据。
🟡 两个基线文件 gzip 损坏
pubmed26n0001.xml.gz 和 pubmed26n0002.xml.gz 在下载或解压过程中发生损坏。已通过 etree.XMLParser(recover=True) 在修复后的 import_xml_file() 中正确导入,共恢复 319 篇肿瘤文献。
生产环境监控
Dashboard 数据质量面板
管理后台 → 首页 Dashboard 已有数据质量卡片,展示 7 个进度条:
- 有摘要 / 已打标 / 有引用次数 / 有研究设计 / 有DOI / 有OA全文 / 有PICO
建议的监控频率
| 指标 | 检查频率 | 预警阈值 |
|---|---|---|
| 总文献数 | 每日 | 连续 3 天增长 < 50 篇 |
| 已打标率 | 每周 | < 70% |
| C04 树号覆盖率 | 每周 | < 60% of tag_category=cancer |
| 应用覆盖率 | 每月 | < 85% |
| 引用刷新成功率 | 每日 | 连续 3 天 error > 0 |
| 管道运行成功率 | 每日 | 任何失败 |
| 懒创建标签积压 | 每周 | > 25,000 |