信息速览

INFOBOX
| 字段 | 值 |
|---|---|
| 数据集名称 | COVID-19 Open Research Dataset(CORD-19) |
| 英文名称 | COVID-19 Open Research Dataset |
| 别名 | CORD-19;COVID-19 文献语料库 |
| 疾病/领域类别 | COVID-19 / 冠状病毒感染性疾病 / 传染病学文献语料 |
| SNOMED CT | 840539006(Disease caused by COVID-19)/ 186747009(Coronavirus infection) |
| 数据模态 | 文本 / 文献语料(结构化全文 JSON 解析 + 元数据 CSV + 预计算文档嵌入) |
| 任务类型 | NLP 文本挖掘 / 信息检索(IR)/ 问答系统(QA)/ 命名实体识别(NER)/ 文本摘要 / 知识图谱构建 |
| 样本总数 | 1,056,660 篇论文元数据索引(含 368,618 篇含全文解析) |
| 数据大小 | 18.7 GB(最终版本 2022-06-02)/ 0.3 GB(初始版本 2020-03-13) |
| 数据格式 | JSON(每篇论文一个 JSON 对象)/ CSV(元数据总表)/ SPECTER 嵌入向量 |
| 许可证 | 混合许可(按篇:CC-BY / CC-BY-NC / CC-BY-ND / CC-BY-SA / CC-BY-NC-SA / CC-BY-NC-ND / CC0 / 出版商 COVID-19 临时许可 / bioRxiv·medRxiv 预印本许可) |
| 访问级别 | 免费开放(无需注册,Kaggle / Zenodo / HuggingFace / Azure Open Datasets 多渠道下载) |
| DUO 标签 | 不适用(文献语料库,非人体受试者数据) |
| 语言 | 英文(monolingual: en) |
| 首发日期 | 2020-03-13(初始版本,28,000 篇论文) |
| 最后更新 | 2022-06-02(最终版本,数据集已归档) |
| 发布机构 | Allen Institute for AI(AI2)/ Semantic Scholar 团队 |
| 官方主页 | https://www.semanticscholar.org/cord19 |
| 下载地址 | https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge |
| DOI | 10.5281/zenodo.3715505 |
| 引用次数 | 200K+ 次下载(首发 3 个月内) |
| AI 就绪度评分 | ⭐⭐⭐⭐⭐(5/5)— 机器可读 JSON 全文解析、cord_uid 统一标识、SPECTER 预计算嵌入、HuggingFace datasets 原生支持、多平台分发、完善 JSON schema 文档;扣分项:数据集已归档不再更新、混合许可需逐篇核查、预印本质量参差 |
| 页面状态 | published |
§0 E-E-A-T 信任声明与免责声明
医学审核者:[千方病案医学编辑部]交叉审核:§2 医学背景(ICD-11 映射、COVID-19 临床任务定义)、§7 偏倚分析(出版偏倚、预印本质量)。
数据工程审核者:[千方病案医学编辑部交叉审核] 医疗 AI 数据工程师,审核范围:§4 JSON Schema 与 DAIMS 字段映射、§5 数据划分策略、§6 预处理 Pipeline 和坑点。
审核日期:2026-08-12
医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。
技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。
数据使用合规:使用本页面描述的数据集前,请务必阅读并遵守数据集原始许可协议。CORD-19 采用混合许可(按篇),使用前必须核查 metadata.csv 中每篇论文的 license 字段。预印本内容未经同行评审,不应作为临床决策依据。
§1 数据集概览(Overview)
§1.0 📌 30 秒速览(Executive Summary)
CORD-19(COVID-19 Open Research Dataset)是 Allen Institute for AI(AI2)的 Semantic Scholar 团队于 2020 年 3 月 13 日创建的 COVID-19 及冠状病毒相关学术文献机器可读语料库。它在白宫科技政策办公室(OSTP)协调下,由 AI2、美国国立医学图书馆(NLM/NIH)、Chan Zuckerberg Initiative(CZI)、Microsoft Research、Kaggle 和乔治城大学新兴技术与安全中心(CSET)联合构建,从初始 28,000 篇论文增长至最终版本的 100 万+ 篇论文索引,其中 37 万+ 篇含结构化全文 JSON 解析。
它的独特价值在于将分散在 PubMed Central、WHO COVID-19 数据库、bioRxiv、medRxiv 和 arXiv 的冠状病毒文献统一汇聚,经 Semantic Scholar 引擎去重调和后,通过 Lo et al. (2020) 全文解析管道将 PDF/XML 原文转化为结构化 JSON(含段落级 cite_spans / ref_spans / section 标注),并预计算 SPECTER 文档嵌入向量。这一"机器可读全文 + 元数据 + 嵌入"三位一体的设计,使其成为 COVID-19 NLP 研究的事实标准基础设施。数据集在首发 3 个月内被下载超过 200,000 次,催生了 Kaggle CORD-19 研究挑战赛(550+ 团队)和 TREC-COVID 信息检索共享任务(55+ 团队、5 轮评测、60 位医学领域专家参与)。
你可以用它来:构建 COVID-19 问答系统(从 100 万篇论文中检索答案)、训练 SciBERT/BioBERT 领域语言模型、进行文献聚类与主题建模以追踪研究趋势演变、或者构建冠状病毒知识图谱。
§1.1 摘要
CORD-19 由 Allen Institute for AI 的 Semantic Scholar 团队创建并维护,采用多源采集 + 自动解析 + 周更发布的运营模式。数据来源覆盖五大渠道:PubMed Central(PMC)开放获取语料库、WHO COVID-19 出版物数据库、bioRxiv 预印本服务器、medRxiv 预印本服务器和 arXiv 预印本服务器。检索查询统一为:"COVID" OR "COVID-19" OR "Coronavirus" OR "Corona virus" OR "2019-nCoV" OR "SARS-CoV" OR "MERS-CoV" OR "Severe Acute Respiratory Syndrome" OR "Middle East Respiratory Syndrome",涵盖 COVID-19 及历史冠状病毒研究(SARS、MERS)。与出版商 Elsevier 和 Springer Nature 的直接合作进一步扩展了回溯目录的全文覆盖。
数据处理流程:所有论文通过 Semantic Scholar 文献检索引擎采集入库 → 元数据调和去重(DOI / PubMed ID / PMC ID / WHO Covidence # / MAG 标识符多键匹配)→ 对开放获取许可的论文执行 Lo et al. (2020) 全文解析管道(PDF/XML → 结构化 JSON)→ 输出 harmonized metadata CSV + full text JSON + SPECTER 嵌入。数据集按许可类型分为四个子集:commercial use subset(商业可用)、non-commercial use subset(限非商业)、PMC custom license subset(出版商 COVID-19 临时许可)和 bioRxiv/medRxiv subset(预印本)。CORD-19 通过 Kaggle、Zenodo(DOI: 10.5281/zenodo.3715505)、HuggingFace(allenai/cord19)和 Azure Open Datasets 多渠道分发,全部免费开放、无需注册。
CORD-19 自 2020 年 3 月 13 日首发后几乎每周更新,从初始约 40K 论文增长至最终版本的 100 万+ 篇索引。2022 年 6 月 2 日发布最终版本后正式归档,不再更新。HuggingFace datasets 库提供三个配置:metadata(368,618 条,496 MB)、fulltext(368,618 条,3.7 GB)和 embeddings(368,618 条,2.8 GB,含 766 维 SPECTER 嵌入)。
§1.2 战略价值分析
应急响应维度:CORD-19 是人类历史上对突发传染病最快速、最大规模的学术文献数字化动员。从 COVID-19 被世界卫生组织宣布为国际关注的突发公共卫生事件(2020 年 1 月 30 日)到 CORD-19 首次发布(2020 年 3 月 13 日),仅用 43 天即完成了跨 5 大来源、28,000 篇论文的采集、去重、全文解析和公开发布。这一速度建立在 Allen Institute 长期积累的 Semantic Scholar 文献检索引擎基础设施之上——该引擎已索引超过 2 亿篇学术论文,具备成熟的 PDF 获取、全文解析和元数据调和能力。CORD-19 证明了"在突发公共卫生事件中,学术文献的机器可读化可以在数周内完成"这一范式,其模式已被建议为未来疫情响应的标准模板。
NLP 基础设施维度:CORD-19 提供了前所未有的"结构化全文 + 引文跨度 + 图表引用 + 预计算嵌入"四层机器可读语料。JSON schema 中每个段落都标注了 cite_spans(行内引文位置→bib_entries 键映射)和 ref_spans(行内图表引用→ref_entries 键映射),使得信息抽取、引文网络分析和图表-文本对齐等高级 NLP 任务可以直接在结构化数据上进行,无需从 PDF 重新解析。SPECTER 嵌入(基于引文图预训练的 BERT 模型)为每篇论文提供 766 维语义向量,支持零样本文献检索和聚类。BioBERT 和 SciBERT 等领域预训练模型在 CORD-19 上进一步预训练后,在 COVID-19 相关 NER、文本分类和问答任务上显著优于通用 BERT。
开放科学维度:CORD-19 的构建打破了学术出版商在突发公共卫生事件中的付费墙壁垒。通过 PMC Public Health Emergency COVID-19 Initiative,Elsevier、Springer Nature 等主要出版商临时开放了冠状病毒相关文献的开放获取许可,允许二次分析和再分发。这种"紧急状态下开放科学"的实践促成了 Kaggle 挑战赛(550+ 团队)和 TREC-COVID 共享任务(5 轮评测、60 位医学专家参与)等大规模协作——其中 TREC-COVID 首次实现了"医学领域专家为 IR 系统提供 gold relevance judgments"的范式,为生物医学信息检索评估建立了新的黄金标准。
§1.3 横向对比
| 维度 | CORD-19 | PubMed Central Open Access | bioRxiv/medRxiv | LitCovid |
|---|---|---|---|---|
| 数据类型 | 结构化全文 JSON + 元数据 + 嵌入 | XML 全文 + 元数据 | PDF 全文 + 元数据 | 元数据 + 标注(无全文) |
| 文献规模 | 100 万+ 篇索引 / 37 万+ 篇全文 | ~800 万篇 OA 全文 | ~40 万篇预印本(全学科) | ~50 万篇 COVID-19 元数据 |
| 全文解析 | ✅ JSON 结构化(段落+引文+图表) | ✅ XML 结构化 | ❌ PDF 原文 | ❌ 仅元数据 |
| 预计算嵌入 | ✅ SPECTER 766 维 | ❌ | ❌ | ❌ |
| 许可 | 混合(按篇,含临时 OA) | 按篇 OA 许可 | CC-BY/CC0(预印本) | 公共领域 |
| 更新状态 | 已归档(2022-06-02 最终版) | 持续更新 | 持续更新 | 持续更新 |
| AI 任务就绪 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ |
| 分发渠道 | Kaggle / Zenodo / HuggingFace / Azure | PMC 网站 | bioRxiv/medRxiv 网站 | PubMed |
| 独特优势 | 全文 JSON + 嵌入 + 多源去重 | 最大 OA 生物医学全文库 | 最快预印本发布 | COVID-19 人工标注分类 |
§1.4 时间轴
| 日期 | 事件 |
|---|---|
| 2020-01-30 | WHO 宣布 COVID-19 为国际关注的突发公共卫生事件(PHEIC) |
| 2020-03-13 | CORD-19 v1 发布(28,000 篇论文,0.3 GB),由 AI2 + OSTP + NLM + CZI + MSR + Kaggle + Georgetown CSET 联合创建 |
| 2020-03-16 | 白宫 OSTP 正式公开宣布 CORD-19,Kaggle CORD-19 研究挑战赛同步启动 |
| 2020-04-10 | TREC-COVID Round 1 开放(30 主题,55+ 团队参与) |
| 2020-04-13 | CORD-19 发布于 Azure Open Datasets,Azure Notebooks 示例上线 |
| 2020-05-01 | TREC-COVID Round 2(新增主题 + CORD-19 版本更新) |
| 2020-05-19 | TREC-COVID Round 3(数据集增至 2.8 GB) |
| 2020-05-26 | JSON schema 标准化更新(后续版本以此为准) |
| 2020-06-19 | TREC-COVID Round 4 + EPIC-QA 预赛使用此版本 |
| 2020-07-09 | CORD-19 在 NLP-COVID Workshop(ACL 2020)正式发表(Wang et al., 2020) |
| 2020-07-16 | TREC-COVID Round 5(最终轮,数据集 3.7 GB) |
| 2020-Q3 | 数据集突破 200K 次下载(首发 3 个月内) |
| 2021-03-01 | CORD-19 综述文章发表于 Briefings in Bioinformatics |
| 2022-02 | 数据集增长至 280,000+ 篇含全文论文 |
| 2022-06-02 | 最终版本发布(100 万+ 篇索引,37 万+ 篇全文,18.7 GB),数据集正式归档 |
| 2022-07-23 | Sketch Engine 基于 CORD-19 最终版发布 COVID-19 语料库 |
§1.5 典型用例
| 用例 | 描述 | 难度 | 推荐入口 |
|---|---|---|---|
| COVID-19 问答系统 | 从 100 万篇论文中检索答案段落,支持自然语言提问 | ⭐⭐⭐ | TREC-COVID + BioBERT + CORD-19 fulltext |
| 文献信息检索 | 按主题/关键词对论文排序,评估 IR 系统性能 | ⭐⭐ | TREC-COVID benchmark + metadata CSV |
| 命名实体识别 | 从论文全文中提取病毒名、药物名、基因/蛋白名等生物医学实体 | ⭐⭐⭐ | BioBERT/SciBERT + body_text JSON |
| 文本摘要生成 | 对多篇相关论文生成摘要,支持系统综述 | ⭐⭐⭐⭐ | BART/ALBERT + fulltext config |
| 知识图谱构建 | 从论文中提取实体-关系三元组,构建 COVID-19 知识图谱 | ⭐⭐⭐⭐⭐ | COVID Graph 项目 + NER + 关系抽取 |
| 文献聚类与主题建模 | 追踪 COVID-19 研究主题随时间演变 | ⭐⭐ | SPECTER embeddings + LDA/HDBSCAN |
| 引文网络分析 | 基于 bib_entries 构建论文间引文网络,识别关键文献 | ⭐⭐⭐ | body_text.cite_spans + bib_entries |
| 领域预训练 | 在 CORD-19 上进一步预训练 BERT/SciBERT/BioBERT | ⭐⭐⭐⭐ | fulltext config + HF Trainer |
§2 医学背景(Medical Context)
§2.1 ICD-11 疾病映射
CORD-19 覆盖 COVID-19 及相关冠状病毒感染性疾病的完整文献谱系。以下为核心 ICD-11 映射:
| ICD-11 编码 | 疾病名称 | CORD-19 覆盖范围 |
|---|---|---|
| RA01.0 | COVID-19, virus identified | 核心覆盖(占语料 >70%) |
| RA01.1 | COVID-19, virus not identified | 临床诊断标准文献 |
| RA02 | Severe acute respiratory syndrome [SARS] | 历史冠状病毒文献(2003 SARS 爆发) |
| RA01.2 | Middle East respiratory syndrome [MERS] | 历史冠状病毒文献(2012 MERS 爆发) |
| CA40 | Acute upper respiratory infection of multiple sites | 上呼吸道感染相关文献 |
| CA08.0 | Viral pneumonia | 病毒性肺炎文献 |
| XN0Y | COVID-19 virus infection (SARS-CoV-2) | 病原学基础研究文献 |
§2.2 SNOMED CT 概念映射
| SNOMED CT ID | 概念名称 | 与 CORD-19 的关系 |
|---|---|---|
| 840539006 | Disease caused by COVID-19 | 核心疾病概念 |
| 186747009 | Coronavirus infection | 上位概念(含 SARS/MERS) |
| 840533007 | Severe acute respiratory syndrome coronavirus 2 (organism) | 病原体 |
| 447421002 | Illness caused by severe acute respiratory syndrome coronavirus 2 | 疾病-病原体关联 |
§2.3 NLP 临床任务定义
CORD-19 支撑的 NLP 任务映射到以下 COVID-19 临床与公共卫生信息需求(基于 NASEM SCIED + WHO R&D Blueprint):
| 任务编号 | 信息需求 | NLP 任务类型 | 临床/公卫价值 |
|---|---|---|---|
| T1 | 传播途径、潜伏期与环境稳定性 | 信息抽取 + QA | 指导隔离政策与防护标准 |
| T2 | 风险因素(年龄、合并症、吸烟等) | 文本分类 + NER | 识别高危人群,优先保护 |
| T3 | 病毒遗传学、起源与进化 | 序列-文本关联 + 知识图谱 | 追踪变异株传播路径 |
| T4 | 疫苗与治疗药物 | 信息抽取 + 关系抽取 | 加速药物再利用筛选 |
| T5 | 非药物干预措施 | 证据摘要 + 文本摘要 | 评估封锁/社交距离效果 |
| T6 | 诊断与监测方法 | QA + 文献综述 | 优化检测策略 |
| T7 | 医疗救治方案 | 多文档摘要 + 证据分级 | 改善临床实践指南 |
| T8 | 伦理与社会科学考量 | 主题建模 + 观点挖掘 | 平衡公共卫生与个人权利 |
| T9 | 信息共享与跨部门协作 | 引文网络分析 | 识别知识空白与协作机会 |
| T10 | 地理传播模式 | 文本-地理关联 | 追踪疫情扩散路径 |
§3 数据集规格(Specifications)
§3.0 数据子集抉择矩阵
| 子集名称 | 许可类型 | 含全文 | 预印本 | 商业可用 | 推荐用途 |
|---|---|---|---|---|---|
| comm_use_subset | CC-BY / CC0 / gold-oa | ✅ | ❌ | ✅ | 商业 NLP 产品训练(推荐首选) |
| noncomm_use_subset | CC-BY-NC / bronze-oa / hybrid-oa | ✅ | ❌ | ❌ | 学术研究、非商业应用 |
| pmc_custom_license | 出版商 COVID-19 临时许可 | ✅ | ❌ | 视许可而定 | 疫情期间临时开放内容 |
| biorxiv_medrxiv | bioRxiv/medRxiv 预印本许可 | ✅ | ✅ | ✅(CC-BY/CC0) | 快速获取最新研究(注意质量风险) |
| metadata.csv | 按篇(含无全文论文) | ❌ | — | — | 全量元数据检索、文献计量学分析 |
§3.1 数据来源与采集管道
CORD-19 通过 Semantic Scholar 文献检索引擎从以下五个渠道采集论文:
| 来源 | 类型 | 采集方式 | 贡献占比(约) |
|---|---|---|---|
| PubMed Central (PMC) | 同行评审期刊全文 | PMC OA API + PHE COVID-19 Initiative | ~45% |
| WHO COVID-19 数据库 | 元数据库 | WHO Covidence # 关联 | ~15% |
| bioRxiv | 生物学预印本 | Semantic Scholar 直接采集 | ~10% |
| medRxiv | 医学预印本 | Semantic Scholar 直接采集 | ~15% |
| arXiv | 多学科预印本 | Semantic Scholar 直接采集 | ~5% |
| 出版商直供(Elsevier/Springer Nature) | 同行评审期刊全文 | 出版商直接合作 | ~10% |
检索查询(统一应用于所有来源):
"COVID" OR "COVID-19" OR "Coronavirus" OR "Corona virus" OR
"2019-nCoV" OR "SARS-CoV" OR "MERS-CoV" OR
"Severe Acute Respiratory Syndrome" OR "Middle East Respiratory Syndrome"
匹配范围:论文的标题、摘要或正文中包含上述任一关键词即纳入。PMC 对这些检索词执行查询扩展。
§3.2 元数据字段定义
metadata.csv 包含全量论文元数据(含无全文论文)。以下为 18 个核心字段:
| 字段名 | 数据类型 | 描述 | 示例 |
|---|---|---|---|
| cord_uid | str | 每篇 CORD-19 论文的唯一标识符(8 字符十六进制) | ug7v899j |
| sha | str (List) | 关联 PDF 的 SHA1 哈希(分号分隔) | d1aafb70c066... |
| source_x | str (List) | 论文来源(分号分隔) | PMC; Elsevier; WHO |
| title | str | 论文标题 | Clinical features of... |
| doi | str | 论文 DOI | 10.1186/1471-2334-1-6 |
| pmcid | str | PubMed Central ID(以 PMC 开头) | PMC35282 |
| pubmed_id | int | PubMed ID | 11420445 |
| license | str | 最宽松许可类型 | cc-by / biorxiv / els-covid |
| abstract | str | 论文摘要 | — |
| publish_time | str | 发表日期(yyyy-mm-dd 格式) | 2001-07-04 |
| authors | str (List) | 作者列表(Last, First Middle 格式,分号分隔) | Madani, Tariq A; Al-Ghamdi, Aisha A |
| journal | str | 期刊名(未标准化) | BMC Infect Dis |
| mag_id | int (deprecated) | Microsoft Academic Graph ID(已弃用) | — |
| who_covidence_id | str | WHO Covidence 编号 | #72306 |
| arxiv_id | str | arXiv ID | 2004.07180 |
| pdf_json_files | str (List) | PDF 全文解析 JSON 路径(分号分隔) | document_parses/pdf_json/4eb6e165...json |
| pmc_json_files | str (List) | PMC XML 全文解析 JSON 路径(分号分隔) | document_parses/pmc_json/PMC1065028.xml.json |
| url | str (List) | 关联 URL(分号分隔) | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC35282/ |
| s2_id | str | Semantic Scholar ID | 9445722 |
许可类型完整枚举(license 字段可能值):
cc0 / hybrid-oa / els-covid / no-cc / cc-by-nc-sa / cc-by / gold-oa / biorxiv / green-oa / bronze-oa / cc-by-nc / medrxiv / cc-by-nd / arxiv / unk / cc-by-sa / cc-by-nc-nd
§3.3 全文 JSON Schema
每篇含全文的论文以单个 JSON 对象存储,schema 如下:
CORD-19 全文 JSON Schema
├── paper_id: string (40 字符 SHA1)
├── metadata: object
│ ├── title: string
│ └── authors: array
│ └── author: object
│ ├── first: string
│ ├── middle: array<string>
│ ├── last: string
│ ├── suffix: string
│ ├── affiliation: object (laboratory/institution/location)
│ └── email: string
├── abstract: array<paragraph> (摘要段落列表)
├── body_text: array<paragraph> (正文段落列表)
│ └── paragraph: object
│ ├── text: string (段落全文)
│ ├── cite_spans: array<span> (行内引文位置)
│ │ └── span: { start, end, text, ref_id } → 映射到 bib_entries
│ ├── ref_spans: array<span> (行内图表引用)
│ │ └── span: { start, end, text, ref_id } → 映射到 ref_entries
│ └── section: string (章节名,如 "Introduction", "Methods")
├── bib_entries: object (参考文献字典)
│ └── BIBREF{n}: { ref_id, title, authors, year, venue, volume, issn, pages, other_ids.DOI }
├── ref_entries: object (图表标题字典)
│ ├── FIGREF{n}: { text, type: "figure" }
│ └── TABREF{n}: { text, type: "table" }
└── back_matter: array<paragraph> (文后材料)
关键设计决策:
- 段落级 cite_spans 精确到字符偏移(start/end),可直接用于引文上下文分析
- bib_entries 以 BIBREF{n} 键值存储,与 cite_spans 的 ref_id 一一对应
- ref_entries 区分 FIGREF(图)和 TABREF(表),支持图表-文本对齐
- section 字段保留原文章节名,支持按章节检索和摘要
§3.4 数据目录结构
cord-19_2022-06-02/
├── metadata.csv # 全量元数据(1,056,660 行)
├── metadata.readme # 版本变更日志
├── json_schema.txt # JSON schema 定义
├── COVID.DATA.LIC.AGMT.pdf # 数据集许可协议
├── comm_use_subset/
│ ├── pdf_json/ # PDF 解析的全文 JSON
│ │ ├── 000b7d1517ceebb341e3e817695b6de03e2fa78.json
│ │ └── ...
│ └── pmc_json/ # PMC XML 解析的全文 JSON
│ ├── PMC1054884.xml.json
│ └── ...
├── noncomm_use_subset/
│ ├── pdf_json/
│ └── pmc_json/
├── pmc_custom_license/
│ ├── pdf_json/
│ └── pmc_json/
└── biorxiv_medrxiv/
└── pdf_json/ # 注意:无 pmc_json 子目录
└── ...
§3.5 SPECTER 文档嵌入
CORD-19 每个版本附带 SPECTER(Document-level Representation Learning using Citation-informed Transformers)预计算的 766 维文档嵌入向量。SPECTER 基于 BERT 架构,使用引文图进行文档级相关性预训练——即"被引论文"和"引用论文"的嵌入在向量空间中更接近。
嵌入用途:
- 零样本文献检索(无需标注数据)
- 论文聚类与主题发现
- 引文网络可视化
- 相似论文推荐
HuggingFace datasets 中 embeddings 配置提供 doc_embeddings 字段(766 个 float64 值的序列)。
§3.6 TREC-COVID 版本快照
TREC-COVID 共享任务使用 CORD-19 的 5 个特定版本作为基准数据集:
| 轮次 | 日期 | 大小 | MD5 | 新增主题 |
|---|---|---|---|---|
| Round 1 | 2020-04-10 | 1.5 GB | f4c3e742 | 30 主题(初始) |
| Round 2 | 2020-05-01 | 1.7 GB | e8c56920 | 新增 + 修订 |
| Round 3 | 2020-05-19 | 2.8 GB | 6424de9c | 更聚焦查询 |
| Round 4 | 2020-06-19 | 3.3 GB | 47b61215 | 变异株/长并发症 |
| Round 5 | 2020-07-16 | 3.7 GB | 018c4bc4 | 最终轮 |
§4 数据结构详解(Data Schema)
§4.1 DAIMS 字段映射
以下按 DAIMS(Datasheets for AI and Medical Datasets)24 项检查清单逐项映射 CORD-19 数据字段:
| DAIMS 项 | CORD-19 对应字段 | 状态 | 说明 |
|---|---|---|---|
| 1. 数据集名称 | — | ✅ | COVID-19 Open Research Dataset (CORD-19) |
| 2. 创建者 | — | ✅ | Allen Institute for AI / Semantic Scholar |
| 3. 资助来源 | — | ✅ | AI2 内部 + CZI + MSR + NIH/NLM |
| 4. 采集日期范围 | publish_time | ✅ | 2000-01-01 ~ 2022-06-02 |
| 5. 采集方法 | — | ✅ | Semantic Scholar 自动采集 + Lo et al. 全文解析 |
| 6. 采集场所 | — | ✅ | 全球(线上文献数据库) |
| 7. 采集伦理审批 | — | ✅ | 不适用(公开发表文献,无人体受试者) |
| 8. 标注方法 | — | ✅ | 无人工标注(自动解析) |
| 9. 标注者信息 | rai:annotatorDemographics | ✅ | 不适用(无人工标注) |
| 10. 标注工具 | rai:machineAnnotationTools | ✅ | Lo et al. (2020) 全文解析管道 + SPECTER 嵌入 |
| 11. 标签类型 | — | ✅ | 无监督标签(自监督文本语料) |
| 12. 样本数量 | cord_uid | ✅ | 1,056,660 篇元数据 / 368,618 篇全文 |
| 13. 数据格式 | — | ✅ | JSON / CSV |
| 14. 数据大小 | — | ✅ | 18.7 GB(最终版) |
| 15. 字段定义 | json_schema.txt | ✅ | 完整 JSON schema 文档提供 |
| 16. 缺失值处理 | — | ✅ | 空字符串/空列表(非 NaN) |
| 17. 数据划分 | — | ✅ | 无官方 ML 划分(TREC-COVID 提供评估用版本) |
| 18. 版本信息 | metadata.readme | ✅ | 每版本含变更日志 |
| 19. 更新频率 | — | ✅ | 历史周更,2022-06-02 后归档 |
| 20. 许可证 | license | ✅ | 按篇混合许可(metadata.csv 中逐篇标注) |
| 21. 访问机制 | — | ✅ | 免费开放,多渠道下载 |
| 22. 已知偏倚 | rai:dataBiases | ✅ | 英语主导、出版偏倚、预印本质量参差 |
| 23. 使用限制 | rai:dataLimitations | ✅ | 面向文本挖掘优化,不适合直接阅读 |
| 24. 引用方式 | — | ✅ | DOI: 10.5281/zenodo.3715505 |
§4.2 数据缺失与质量缺陷
| 缺陷类型 | 影响范围 | 严重程度 | 缓解方法 |
|---|---|---|---|
| 部分论文无全文 | ~65% 论文仅元数据 | 中 | 仅使用 metadata.csv 的论文统计/计量学分析 |
| publish_time 不准确 | 部分出版商用 yyyy-12-31 表示未知日期 | 低 | 过滤未来日期或使用 DOI 注册日期替代 |
| 期刊名未标准化 | BMJ 与 British Medical Journal 共存 | 低 | 使用 DOI 查询 Crossref 获取规范期刊名 |
| 重复 PMC ID | 补充材料导致同一 PMC ID 多条记录 | 低 | 基于 cord_uid 去重 |
| 预印本质量参差 | bioRxiv/medRxiv 未经同行评审 | 中 | 区分子集分析,标注预印本来源 |
| 跨版本 schema 不一致 | 2020-05-26 前版本格式差异 | 中 | 使用最终版本(2022-06-02) |
| 作者名格式不统一 | Last, First Middle 格式但未标准化 | 低 | 使用 DOI 查询 Crossref 作者规范名 |
§5 数据划分与使用建议(Splits & Usage)
§5.1 官方数据划分
CORD-19 无官方 train/val/test 划分。HuggingFace datasets 将全部 368,618 条实例归入单一 train split。以下为推荐的划分策略:
| 划分策略 | 方法 | 适用任务 | 推荐比例 |
|---|---|---|---|
| 随机划分 | 按 cord_uid 随机抽样 | 文本分类、领域预训练 | 80/10/10 |
| 时间序列划分 | 按 publish_time 前后切分 | 时间趋势分析、文献演化 | 2020-Q1~Q3 / 2020-Q4 / 2021+ |
| 来源分层划分 | 按 source_x 分层抽样 | 跨来源泛化测试 | 按来源比例 |
| 许可分层划分 | 按 license 字段分层 | 商业/非商业分合评估 | 按 license 比例 |
§5.2 数据泄漏风险
| 泄漏类型 | 风险描述 | 缓解方法 |
|---|---|---|
| 同一论文多版本 | 预印本→正式发表,内容高度重叠 | 基于 DOI 去重,保留正式发表版本 |
| 同作者多篇论文 | 同一作者团队方法学相似 | 按作者聚类划分,非随机 |
| 引文网络泄漏 | bib_entries 关联论文可能在 train/test 双侧出现 | 基于引文图连通分量划分 |
| TREC-COVID 主题泄漏 | TREC 主题已公开,可能影响下游评估 | 使用 TREC-COVID Round 5 作为独立测试集 |
| SPECTER 嵌入泄漏 | 嵌入基于全语料计算,含测试集信息 | 嵌入仅用于检索基线,不用于分类评估 |
§5.3 交叉验证建议
| 任务类型 | 推荐验证方法 | 原因 |
|---|---|---|
| 文本分类 | 按时间序列 5-fold CV | 避免未来论文泄漏到训练集 |
| 信息检索 | TREC-COVID 5 轮结果平均 | 标准化 IR 评估基准 |
| 问答系统 | 留出法(TREC-COVID Round 5 独立测试) | 问答任务无法用标准 CV |
| NER | 按来源分层 5-fold CV | 跨来源泛化能力评估 |
| 文本摘要 | ROUGE + 人工评估(无法用标准 CV) | 摘要质量需人工判断 |
§5.4 外部验证集
| 验证集 | 来源 | 适用任务 | 规模 |
|---|---|---|---|
| TREC-COVID | NIST + NLM + OHSU + UTHealth | 信息检索 | 5 轮 × 30+ 主题 |
| COVID-QA | 生物医学专家标注 | 问答系统 | 2,019 QA 对 |
| EPIC-QA | NLM 组织 | 专家/消费者问答 | 多轮评测 |
| LitCovid | PubMed 人工标注 | 文献分类 | ~500K 篇 |
| COVID-19 实时文献 | 持续发布的 COVID-19 文献 | 模型时效性验证 | 持续更新 |
§6 AI 就绪指南(AI-Ready Guide)
§6.0 云端快速启动
| 平台 | 入口 | 优势 | 推荐场景 |
|---|---|---|---|
| HuggingFace datasets | load_dataset("allenai/cord19", "fulltext") |
一行代码加载,原生支持 PyTorch | 快速原型验证 |
| Kaggle Datasets | CORD-19 Research Challenge 页面 | 含竞赛 notebook 示例 | 竞赛入门、EDA |
| Azure Open Datasets | Azure Notebooks + Blob Storage | 同区域低延迟 | 大规模 Azure 训练 |
| Zenodo | DOI: 10.5281/zenodo.3715505 | 版本归档可追溯 | 学术可复现性 |
| Semantic Scholar API | api.semanticscholar.org/corpusid:{s2_id} |
实时元数据查询 | 增量更新 |
§6.1 快速上手代码
# ============================================================
# CORD-19 快速上手 — HuggingFace datasets 三行加载 + 基础分析
# ============================================================
# 目录结构预期:
# 本示例通过 HuggingFace datasets 库在线加载,无需手动下载。
# 如需离线使用,请从以下渠道下载原始数据:
# - Kaggle: https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge
# - Zenodo: https://doi.org/10.5281/zenodo.3715505
# - Azure: https://learn.microsoft.com/azure/open-datasets/dataset-covid-19-open-research
#
# data_root 路径约定(离线模式):
# ./cord19/ # 数据集根目录
# ├── metadata.csv # 全量元数据
# ├── comm_use_subset/ # 商业可用子集
# ├── noncomm_use_subset/ # 非商业子集
# ├── pmc_custom_license/ # PMC 自定义许可
# └── biorxiv_medrxiv/ # 预印本子集
# ============================================================
from datasets import load_dataset
import pandas as pd
# 方式 1: HuggingFace datasets 在线加载(推荐快速验证)
# metadata 配置:仅元数据(496 MB)
# fulltext 配置:元数据 + 全文(3.7 GB)
# embeddings 配置:元数据 + SPECTER 嵌入(2.8 GB)
ds_metadata = load_dataset("allenai/cord19", "metadata", split="train")
ds_fulltext = load_dataset("allenai/cord19", "fulltext", split="train")
print(f"元数据条数: {len(ds_metadata)}") # 368,618
print(f"全文条数: {len(ds_fulltext)}") # 368,618
# 查看单条样本结构
sample = ds_fulltext[0]
print(f"cord_uid: {sample[''''''''''''''''''''''''''''''''cord_uid'''''''''''''''''''''''''''''''']}")
print(f"标题: {sample[''''''''''''''''''''''''''''''''title''''''''''''''''''''''''''''''''][:80]}")
print(f"来源: {sample[''''''''''''''''''''''''''''''''source_x'''''''''''''''''''''''''''''''']}")
print(f"许可: {sample.get(''''''''''''''''''''''''''''''''license'''''''''''''''''''''''''''''''', ''''''''''''''''''''''''''''''''N/A'''''''''''''''''''''''''''''''')}")
print(f"全文长度: {len(sample.get(''''''''''''''''''''''''''''''''fulltext'''''''''''''''''''''''''''''''', ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''))} 字符")
# 方式 2: 从 Kaggle 下载的原始 JSON 文件解析
import json
from pathlib import Path
def load_cord19_json(json_path: str) -> dict:
"""加载单个 CORD-19 全文 JSON 文件"""
with open(json_path, ''''''''''''''''''''''''''''''''r'''''''''''''''''''''''''''''''', encoding=''''''''''''''''''''''''''''''''utf-8'''''''''''''''''''''''''''''''') as f:
paper = json.load(f)
return {
''''''''''''''''''''''''''''''''paper_id'''''''''''''''''''''''''''''''': paper[''''''''''''''''''''''''''''''''paper_id''''''''''''''''''''''''''''''''],
''''''''''''''''''''''''''''''''title'''''''''''''''''''''''''''''''': paper[''''''''''''''''''''''''''''''''metadata''''''''''''''''''''''''''''''''][''''''''''''''''''''''''''''''''title''''''''''''''''''''''''''''''''],
''''''''''''''''''''''''''''''''authors'''''''''''''''''''''''''''''''': [f"{a.get(''''''''''''''''''''''''''''''''last'''''''''''''''''''''''''''''''', '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')}, {a.get(''''''''''''''''''''''''''''''''first'''''''''''''''''''''''''''''''', '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')}" for a in paper[''''''''''''''''''''''''''''''''metadata''''''''''''''''''''''''''''''''].get(''''''''''''''''''''''''''''''''authors'''''''''''''''''''''''''''''''', [])],
''''''''''''''''''''''''''''''''abstract'''''''''''''''''''''''''''''''': ''''''''''''''''''''''''''''''''\n''''''''''''''''''''''''''''''''.join(p.get(''''''''''''''''''''''''''''''''text'''''''''''''''''''''''''''''''', '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''') for p in paper.get(''''''''''''''''''''''''''''''''abstract'''''''''''''''''''''''''''''''', [])),
''''''''''''''''''''''''''''''''body_text'''''''''''''''''''''''''''''''': ''''''''''''''''''''''''''''''''\n''''''''''''''''''''''''''''''''.join(p.get(''''''''''''''''''''''''''''''''text'''''''''''''''''''''''''''''''', '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''') for p in paper.get(''''''''''''''''''''''''''''''''body_text'''''''''''''''''''''''''''''''', [])),
''''''''''''''''''''''''''''''''sections'''''''''''''''''''''''''''''''': [p.get(''''''''''''''''''''''''''''''''section'''''''''''''''''''''''''''''''', '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''') for p in paper.get(''''''''''''''''''''''''''''''''body_text'''''''''''''''''''''''''''''''', [])],
''''''''''''''''''''''''''''''''bib_count'''''''''''''''''''''''''''''''': len(paper.get(''''''''''''''''''''''''''''''''bib_entries'''''''''''''''''''''''''''''''', {})),
''''''''''''''''''''''''''''''''fig_count'''''''''''''''''''''''''''''''': sum(1 for k in paper.get(''''''''''''''''''''''''''''''''ref_entries'''''''''''''''''''''''''''''''', {}) if k.startswith(''''''''''''''''''''''''''''''''FIG'''''''''''''''''''''''''''''''')),
''''''''''''''''''''''''''''''''tab_count'''''''''''''''''''''''''''''''': sum(1 for k in paper.get(''''''''''''''''''''''''''''''''ref_entries'''''''''''''''''''''''''''''''', {}) if k.startswith(''''''''''''''''''''''''''''''''TAB'''''''''''''''''''''''''''''''')),
}
# 示例:加载商业可用子集中的第一篇论文
# jsonevent-blocked= "cord19/comm_use_subset/pdf_json/000b7d1517ceebb341e3e817695b6de03e2fa78.json"
# paper = load_cord19_json(json_path)
# 方式 3: metadata.csv 批量分析
def load_metadata(csv_path: str = "cord19/metadata.csv") -> pd.DataFrame:
"""加载 CORD-19 全量元数据"""
df = pd.read_csv(csv_path, low_memory=False)
print(f"总论文数: {len(df):,}")
print(f"含全文论文: {df[''''''''''''''''''''''''''''''''pdf_json_files''''''''''''''''''''''''''''''''].notna().sum() + df[''''''''''''''''''''''''''''''''pmc_json_files''''''''''''''''''''''''''''''''].notna().sum():,}")
print(f"来源分布:\n{df[''''''''''''''''''''''''''''''''source_x''''''''''''''''''''''''''''''''].value_counts().head(10)}")
print(f"许可分布:\n{df[''''''''''''''''''''''''''''''''license''''''''''''''''''''''''''''''''].value_counts().head(10)}")
return df
# 元数据统计示例
# df = load_metadata()
# 按年份统计发文量
# df[''''''''''''''''''''''''''''''''year''''''''''''''''''''''''''''''''] = pd.to_datetime(df[''''''''''''''''''''''''''''''''publish_time''''''''''''''''''''''''''''''''], errors=''''''''''''''''''''''''''''''''coerce'''''''''''''''''''''''''''''''').dt.year
# print(df.groupby(''''''''''''''''''''''''''''''''year'''''''''''''''''''''''''''''''').size().tail(10))
§6.2 数据获取与加载
# ============================================================
# 多渠道数据获取与批量加载
# ============================================================
# - Azure Blob Storage 直接访问(无需手动下载) -
from azure.storage.blob import BlobServiceClient
import io
def load_from_azure(blob_name: str) -> bytes:
"""从 Azure Open Datasets 直接读取 CORD-19 文件"""
account_name = "azureopendatastorage"
conevent-blocked= "covid19temp"
# 注意:SAS token 有效期至 2025-04-14,过期后需从 Azure 文档获取新 token
sas_token = "sv=2019-02-02&ss=bfqt&srt=sco&sp=rlcup&se=2025-04-14T00:21:16Z..."
blob_service = BlobServiceClient(
account_url=f"https://{account_name}.blob.core.windows.net",
credential=sas_token,
)
blob_client = blob_service.get_blob_client(conevent-blocked=container_name, blob=blob_name)
return blob_client.download_blob().readall()
# 读取 metadata.csv
# metadata_bytes = load_from_azure("metadata.csv")
# df = pd.read_csv(io.BytesIO(metadata_bytes), low_memory=False)
# - Semantic Scholar API 实时查询 -
import requests
def search_semantic_scholar(query: str, limit: int = 10) -> list:
"""通过 Semantic Scholar API 搜索 CORD-19 相关论文"""
url = "https://api.semanticscholar.org/graph/v1/paper/search"
params = {
"query": query,
"limit": limit,
"fields": "title,abstract,year,authors,doi,url,openAccessPdf"
}
responevent-blocked= requests.get(url, params=params)
return response.json().get(''''''''''''''''''''''''''''''''data'''''''''''''''''''''''''''''''', [])
# results = search_semantic_scholar("COVID-19 transmission incubation period")
§6.3 预处理 Pipeline
# ============================================================
# CORD-19 文本预处理 Pipeline
# ============================================================
import re
from typing import List, Dict
class Cord19Preprocessor:
"""CORD-19 全文 JSON 预处理管道"""
def __init__(self, config: str = "fulltext"):
self.conevent-blocked= config
def extract_paragraphs(self, paper: Dict) -> List[Dict]:
"""从论文 JSON 中提取段落级结构"""
paragraphs = []
# 摘要段落
for p in paper.get(''''''''''''''''''''''''''''''''abstract'''''''''''''''''''''''''''''''', []):
paragraphs.append({
''''''''''''''''''''''''''''''''text'''''''''''''''''''''''''''''''': p.get(''''''''''''''''''''''''''''''''text'''''''''''''''''''''''''''''''', ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''),
''''''''''''''''''''''''''''''''section'''''''''''''''''''''''''''''''': ''''''''''''''''''''''''''''''''Abstract'''''''''''''''''''''''''''''''',
''''''''''''''''''''''''''''''''cite_spans'''''''''''''''''''''''''''''''': p.get(''''''''''''''''''''''''''''''''cite_spans'''''''''''''''''''''''''''''''', []),
''''''''''''''''''''''''''''''''ref_spans'''''''''''''''''''''''''''''''': p.get(''''''''''''''''''''''''''''''''ref_spans'''''''''''''''''''''''''''''''', []),
})
# 正文段落
for p in paper.get(''''''''''''''''''''''''''''''''body_text'''''''''''''''''''''''''''''''', []):
paragraphs.append({
''''''''''''''''''''''''''''''''text'''''''''''''''''''''''''''''''': p.get(''''''''''''''''''''''''''''''''text'''''''''''''''''''''''''''''''', ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''),
''''''''''''''''''''''''''''''''section'''''''''''''''''''''''''''''''': p.get(''''''''''''''''''''''''''''''''section'''''''''''''''''''''''''''''''', ''''''''''''''''''''''''''''''''Unknown''''''''''''''''''''''''''''''''),
''''''''''''''''''''''''''''''''cite_spans'''''''''''''''''''''''''''''''': p.get(''''''''''''''''''''''''''''''''cite_spans'''''''''''''''''''''''''''''''', []),
''''''''''''''''''''''''''''''''ref_spans'''''''''''''''''''''''''''''''': p.get(''''''''''''''''''''''''''''''''ref_spans'''''''''''''''''''''''''''''''', []),
})
return paragraphs
def clean_text(self, text: str) -> str:
"""清洗文本(保留引文标记 [n] 用于 NER)"""
# 移除多余空白
text = re.sub(r''''''''''''''''''''''''''''''''\s+'''''''''''''''''''''''''''''''', '''''''''''''''''''''''''''''''' '''''''''''''''''''''''''''''''', text).strip()
# 修正引文格式 [7] → [7]
text = re.sub(r''''''''''''''''''''''''''''''''\[\s*(\d+)\s*\]'''''''''''''''''''''''''''''''', r''''''''''''''''''''''''''''''''[\1]'''''''''''''''''''''''''''''''', text)
return text
def extract_citation_contexts(self, paper: Dict) -> List[Dict]:
"""提取引文上下文(cite_spans 映射到 bib_entries)"""
conevent-blocked= []
bib_entries = paper.get(''''''''''''''''''''''''''''''''bib_entries'''''''''''''''''''''''''''''''', {})
for p in paper.get(''''''''''''''''''''''''''''''''body_text'''''''''''''''''''''''''''''''', []):
text = p.get(''''''''''''''''''''''''''''''''text'''''''''''''''''''''''''''''''', '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')
for span in p.get(''''''''''''''''''''''''''''''''cite_spans'''''''''''''''''''''''''''''''', []):
ref_id = span.get(''''''''''''''''''''''''''''''''ref_id'''''''''''''''''''''''''''''''', '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')
if ref_id in bib_entries:
# 提取引文前后 ±100 字符上下文
start = max(0, span[''''''''''''''''''''''''''''''''start''''''''''''''''''''''''''''''''] - 100)
end = min(len(text), span[''''''''''''''''''''''''''''''''end''''''''''''''''''''''''''''''''] + 100)
conevent-blocked= text[start:end]
bib = bib_entries[ref_id]
contexts.append({
''''''''''''''''''''''''''''''''ref_id'''''''''''''''''''''''''''''''': ref_id,
''''''''''''''''''''''''''''''''cited_title'''''''''''''''''''''''''''''''': bib.get(''''''''''''''''''''''''''''''''title'''''''''''''''''''''''''''''''', ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''),
''''''''''''''''''''''''''''''''cited_year'''''''''''''''''''''''''''''''': bib.get(''''''''''''''''''''''''''''''''year'''''''''''''''''''''''''''''''', ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''),
''''''''''''''''''''''''''''''''cited_venue'''''''''''''''''''''''''''''''': bib.get(''''''''''''''''''''''''''''''''venue'''''''''''''''''''''''''''''''', ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''),
''''''''''''''''''''''''''''''''context'''''''''''''''''''''''''''''''': self.clean_text(context),
})
return contexts
def extract_figures_tables(self, paper: Dict) -> List[Dict]:
"""提取图表标题文本"""
items = []
for key, entry in paper.get(''''''''''''''''''''''''''''''''ref_entries'''''''''''''''''''''''''''''''', {}).items():
items.append({
''''''''''''''''''''''''''''''''ref_id'''''''''''''''''''''''''''''''': key,
''''''''''''''''''''''''''''''''text'''''''''''''''''''''''''''''''': entry.get(''''''''''''''''''''''''''''''''text'''''''''''''''''''''''''''''''', ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''),
''''''''''''''''''''''''''''''''type'''''''''''''''''''''''''''''''': entry.get(''''''''''''''''''''''''''''''''type'''''''''''''''''''''''''''''''', ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''),
})
return items
# 使用示例
# preprocessor = Cord19Preprocessor()
# with open("cord19/comm_use_subset/pdf_json/000b7d1517ceebb341e3e817695b6de03e2fa78.json") as f:
# paper = json.load(f)
# paragraphs = preprocessor.extract_paragraphs(paper)
# conevent-blocked= preprocessor.extract_citation_contexts(paper)
§6.4 PyTorch Dataset 封装
# ============================================================
# PyTorch Dataset 封装 — CORD-19 文本分类/检索
# ============================================================
import torch
from torch.utils.data import Dataset, DataLoader
from transformers import AutoTokenizer
class Cord19Dataset(Dataset):
"""CORD-19 PyTorch Dataset(适用于文本分类、检索等任务)"""
def __init__(
self,
hf_dataset,
tokenizer_name: str = "allenai/scibert_scivocab_uncased",
max_length: int = 512,
config: str = "fulltext",
):
self.dataset = hf_dataset
self.tokenizer = AutoTokenizer.from_pretrained(tokenizer_name)
self.max_length = max_length
self.conevent-blocked= config
def __len__(self):
return len(self.dataset)
def __getitem__(self, idx):
item = self.dataset[idx]
# 使用标题 + 摘要作为输入(全文过长时截断)
text = f"{item[''''''''''''''''''''''''''''''''title'''''''''''''''''''''''''''''''']} [SEP] {item.get(''''''''''''''''''''''''''''''''abstract'''''''''''''''''''''''''''''''', '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''')}"
encoding = self.tokenizer(
text,
max_length=self.max_length,
padding=''''''''''''''''''''''''''''''''max_length'''''''''''''''''''''''''''''''',
truncation=True,
return_tensors=''''''''''''''''''''''''''''''''pt'''''''''''''''''''''''''''''''',
)
return {
''''''''''''''''''''''''''''''''input_ids'''''''''''''''''''''''''''''''': encoding[''''''''''''''''''''''''''''''''input_ids''''''''''''''''''''''''''''''''].squeeze(),
''''''''''''''''''''''''''''''''attention_mask'''''''''''''''''''''''''''''''': encoding[''''''''''''''''''''''''''''''''attention_mask''''''''''''''''''''''''''''''''].squeeze(),
''''''''''''''''''''''''''''''''cord_uid'''''''''''''''''''''''''''''''': item[''''''''''''''''''''''''''''''''cord_uid''''''''''''''''''''''''''''''''],
''''''''''''''''''''''''''''''''title'''''''''''''''''''''''''''''''': item[''''''''''''''''''''''''''''''''title''''''''''''''''''''''''''''''''],
}
class Cord19EmbeddingDataset(Dataset):
"""CORD-19 SPECTER 嵌入 Dataset(用于检索/聚类)"""
def __init__(self, hf_dataset):
self.dataset = hf_dataset
def __len__(self):
return len(self.dataset)
def __getitem__(self, idx):
item = self.dataset[idx]
embeddings = item.get(''''''''''''''''''''''''''''''''doc_embeddings'''''''''''''''''''''''''''''''', [])
return {
''''''''''''''''''''''''''''''''embedding'''''''''''''''''''''''''''''''': torch.tensor(embeddings, dtype=torch.float32),
''''''''''''''''''''''''''''''''cord_uid'''''''''''''''''''''''''''''''': item[''''''''''''''''''''''''''''''''cord_uid''''''''''''''''''''''''''''''''],
''''''''''''''''''''''''''''''''title'''''''''''''''''''''''''''''''': item[''''''''''''''''''''''''''''''''title''''''''''''''''''''''''''''''''],
}
# 使用示例
# from datasets import load_dataset
# ds = load_dataset("allenai/cord19", "fulltext", split="train")
# dataset = Cord19Dataset(ds, max_length=512)
# dataloader = DataLoader(dataset, batch_size=16, shuffle=True, num_workers=4)
§6.5 已知坑点与避坑指南
⚠️ 坑点 1:混合许可的逐篇合规陷阱
分类:法律合规陷阱
问题:CORD-19 采用按篇混合许可,metadata.csv 的 license 字段有 17 种可能值。商业用途模型如果意外使用了 noncomm_use_subset 或 cc-by-nc 许可的论文,将面临版权侵权风险。
症状:模型训练后发现训练数据混入非商业许可内容;产品上线后被出版商追责。
解决:
- 训练前强制过滤 metadata.csv 的 license 字段,仅保留
cc0/cc-by/gold-oa/biorxiv/arxiv/green-oa(商业可用许可) - 使用
comm_use_subset子集训练商业模型 - 模型输出(生成文本)需检查是否包含预印本未经验证的医学声明
- 保存使用的论文 DOI 列表以备审计
参考:CORD-19 Dataset License Agreement(COVID.DATA.LIC.AGMT.pdf)
⚠️ 坑点 2:预印本质量风险与医学准确性
分类:数据质量陷阱
问题:biorxiv_medrxiv 子集包含未经同行评审的预印本,其中部分研究后来被撤稿或结论被修正。直接基于预印本训练的模型可能学到错误或过时的医学结论。
症状:模型输出的医学信息与后续正式发表版本矛盾;生成的答案基于已撤稿预印本。
解决:
- 按
source_x字段过滤预印本(排除bioRxiv; medRxiv) - 检查 DOI 是否在 Retraction Watch Database 中被标记
- 使用
publish_time字段优先选择正式发表版本(预印本和正式版 DOI 不同) - 在模型输出中标注信息来源(“基于预印本,未经同行评审”)
参考:bioRxiv 预印本免责声明
⚠️ 坑点 3:cord_uid 非唯一性与重复论文
分类:数据理解陷阱
问题:cord_uid 设计为论文级标识,但在 metadata.csv 中并非每行唯一——当同一论文有补充材料时,同一 PMC ID 可能出现多条记录。此外,同一研究的预印本和正式发表版本可能同时存在于语料中,内容高度重叠。
症状:数据集行数(1,056,660)远大于唯一论文数;训练集和测试集中存在高度相似的论文对;引文网络中出现自环。
解决:
- 基于 DOI 去重(预印本和正式版 DOI 不同,可使用 Crossref 查询映射)
- 基于
sha去重(同一 PDF 的多个副本) - 基于标题+摘要文本相似度去重(使用 SPECTER 嵌入 + 余弦相似度 >0.95 阈值)
- 训练/测试划分前执行去重,避免数据泄漏
参考:HuggingFace CORD-19 README — FAQs
⚠️ 坑点 4:全文解析质量与 PDF 解析错误
分类:数据预处理陷阱
问题:Lo et al. (2020) 全文解析管道从 PDF 提取结构化 JSON,但解析质量受 PDF 格式影响——扫描版 PDF、多栏排版、复杂表格和数学公式可能导致解析错误。PMC XML 解析质量通常优于 PDF 解析。
症状:body_text 段落顺序错乱;cite_spans 字符偏移不精确;图表标题与正文引用不匹配;数学公式丢失或乱码。
解决:
- 优先使用
pmc_json_files路径的 JSON(PMC XML 解析质量更高) - 检查
body_text段落的section字段连续性(Introduction → Methods → Results → Discussion) - 验证 cite_spans 的 start/end 偏移在 text 长度范围内
- 对解析质量存疑的论文,回查原始 PDF
参考:CORD-19 paper(Wang et al., 2020)Section 2 — Processing metadata
⚠️ 坑点 5:跨版本 Schema 不一致
分类:时间序列分析陷阱
问题:CORD-19 从 2020-03-13 到 2022-06-02 发布了上百个版本,但 JSON schema 在 2020-05-26 才标准化。早期版本的字段定义、目录结构和文件命名可能与最终版本不一致。TREC-COVID 各轮使用不同版本,跨版本比较需谨慎。
症状:旧版本 JSON 字段缺失或类型不同;目录结构变化导致批量加载脚本报错;不同 TREC-COVID 轮次的评估结果不可直接比较。
解决:
- 统一使用最终版本(2022-06-02)进行新研究
- 如需历史版本对比,阅读
metadata.readme中的变更日志 - TREC-COVID 评估严格使用对应轮次的 CORD-19 版本
- 加载脚本中对可选字段使用
paper.get(''''''''''''''''''''''''''''''''field'''''''''''''''''''''''''''''''', default)而非paper[''''''''''''''''''''''''''''''''field'''''''''''''''''''''''''''''''']
参考:Semantic Scholar CORD-19 About 页面 — Important notes
⚠️ 坑点 6:SPECTER 嵌入的时效性偏倚
分类:模型评估陷阱
问题:SPECTER 嵌入基于全语料计算,包含了测试集论文的信息。使用预计算嵌入进行下游评估时,可能高估检索/聚类性能。此外,SPECTER 模型预训练于 2020 年之前的引文图,对 COVID-19 新文献的语义表示可能不够精确。
症状:使用 SPECTER 嵌入的检索系统性能远优于使用从头训练的嵌入;在 COVID-19 特定子主题上嵌入聚类效果不佳。
解决:
- 嵌入仅用于基线/探索性分析,不作为最终评估指标
- 如需严格评估,使用训练集重新训练嵌入模型
- 对 COVID-19 特定任务,考虑使用在 CORD-19 上进一步预训练的 SciBERT/BioBERT
- 聚类评估使用领域专家标注的 gold standard 而非嵌入相似度
参考:SPECTER paper(Cohan et al., 2020)
§6.6 数据增强策略
| 策略 | 方法 | 适用任务 | 收益 |
|---|---|---|---|
| 引文上下文增强 | 基于 cite_spans 提取引文上下文作为额外训练样本 | NER、关系抽取 | 增加 3-5 倍训练数据 |
| 段落级切分 | 将 body_text 按段落切分为独立样本 | 文本分类、检索 | 增加样本数量,降低序列长度 |
| 摘要-正文对齐 | 使用 abstract 作为 body_text 的摘要标签 | 文本摘要 | 构建大规模摘要训练对 |
| 图表标题-正文对齐 | 使用 ref_entries 的图表标题作为正文段落的描述标签 | 图文对齐 | 增加结构化标注 |
| 回译增强 | 通过机器翻译进行英→中→英回译 | 文本分类 | 提高鲁棒性 |
| 领域混合预训练 | 混合 CORD-19 + PubMed 全文进行预训练 | 领域 LM | 平衡 COVID-19 特异性和通用生物医学知识 |
§6.7 推荐模型架构
| 任务 | 推荐模型 | 基础架构 | 预训练权重 |
|---|---|---|---|
| 信息检索 | SciBERT + bi-encoder | BERT + 双塔 | allenai/scibert_scivocab_uncased |
| 问答系统 | BioBERT + reader | BERT + 抽取式 QA | dmis-lab/biobert-base-cased-v1.1 |
| 文本分类 | SciBERT + linear head | BERT + 分类头 | allenai/scibert_scivocab_uncased |
| NER | BioBERT + CRF | BERT + CRF | dmis-lab/biobert-base-cased-v1.1 |
| 文本摘要 | BART / LED | BART / Longformer | facebook/bart-large-cnn |
| 知识图谱 | SciBERT + 关系抽取 | BERT + 关系分类 | allenai/scibert_scivocab_uncased |
| 文档嵌入 | SPECTER (预计算) | BERT + 引文图 | allenai/specter |
| 长文本处理 | Longformer / BigBird | 稀疏注意力 | allenai/longformer-base-4096 |
§6.8 硬件配置建议
| 配置级别 | GPU | 内存 | 存储 | 适用场景 |
|---|---|---|---|---|
| 最小可用 | 1× RTX 3090 (24GB) | 64 GB | 100 GB SSD | 元数据分析、小规模分类 |
| 推荐配置 | 1× A100 (40GB) | 128 GB | 500 GB NVMe | 全文分类、NER、QA |
| 高性能 | 4× A100 (40GB) | 256 GB | 1 TB NVMe | 领域预训练、大规模检索 |
| 大规模 | 8× A100 (80GB) | 512 GB | 2 TB NVMe | LLM 微调、知识图谱构建 |
§6.9 评估指标
| 任务 | 主要指标 | 辅助指标 | 基准来源 |
|---|---|---|---|
| 信息检索 | nDCG@10 | MAP, Recall@1000 | TREC-COVID |
| 抽取式 QA | Exact Match (EM) | F1, Recall | COVID-QA |
| 文本分类 | F1-macro | Accuracy, Precision/Recall | 自定义 |
| NER | Entity F1 | Token F1, Precision/Recall | 自定义 |
| 文本摘要 | ROUGE-L | ROUGE-1/2, BERTScore | 自定义 + 人工评估 |
| 文档聚类 | Adjusted Rand Index | NMI, V-measure | 专家标注 gold standard |
§6.10 MLOps 与可复现性
| 环节 | 工具/方法 | 注意事项 |
|---|---|---|
| 数据版本管理 | DVC + CORD-19 版本日期 | 锁定 CORD-19 版本日期确保可复现 |
| 训练跟踪 | Weights & Biases / MLflow | 记录使用的子集、许可过滤规则 |
| 模型评估 | TREC-COVID eval scripts | 使用官方评测脚本确保可比性 |
| 模型部署 | HuggingFace Model Hub | 标注训练数据许可范围 |
| 数据审计 | license 字段 + DOI 列表 | 保存使用的论文 DOI 以备版权审计 |
| 持续监控 | Semantic Scholar API | CORD-19 已归档,但新论文可通过 S2 API 追踪 |
§7 数据质量与偏倚分析(Quality & Bias)
§7.1 偏倚类型分析
| 偏倚类型 | 描述 | 影响 | 缓解方法 |
|---|---|---|---|
| 出版偏倚 | 阳性结果论文发表概率高于阴性结果,COVID-19 研究尤为严重 | 模型倾向于学习"有效"结论,忽略失败案例 | 纳入预印本 + 检索 ClinicalTrials.gov 试验结果 |
| 语言偏倚 | CORD-19 仅有英文文献(monolingual: en) | 非英语国家的 COVID-19 研究被系统性排除 | 补充中文/多语言 COVID-19 文献源 |
| 来源偏倚 | PMC 来源占 45%,偏重正规发表渠道 | 非正规渠道的灰色文献/报告被遗漏 | 补充 WHO COVID-19 数据库 + 政府报告 |
| 时间偏倚 | 2020 年 Q1-Q2 论文占比极高(爆发期发表激增) | 模型对早期 COVID-19 认知偏重,低估后期变异株研究 | 按时间加权采样,平衡各时期论文比例 |
| 预印本质量偏倚 | bioRxiv/medRxiv 预印本未经同行评审 | 模型可能学习到未经验证的结论 | 按 source_x 分层分析,标注预印本来源 |
| 出版商合作偏倚 | Elsevier/Springer 直供全文仅覆盖其期刊 | 非合作出版商的论文可能缺失全文 | 使用 metadata.csv 补充无全文论文的元数据 |
| 主题覆盖偏倚 | 临床治疗和流行病学论文占比高 | 基础科学和心理健康论文覆盖不足 | 使用 LDA 主题建模平衡各主题采样 |
§7.2 质量控制体系
| 质控环节 | 方法 | 覆盖率 |
|---|---|---|
| 元数据去重 | DOI / PubMed ID / PMC ID / WHO Covidence # / MAG ID 多键匹配 | 100% |
| 全文解析质量 | Lo et al. (2020) 管道(PDF→JSON 结构化) | ~50% 论文有全文 |
| 许可合规检查 | 逐篇标注 license 字段(17 种许可类型) | 100% |
| SPECTER 嵌入质量 | 基于引文图的 BERT 预训练 | 100% 含全文论文 |
| TREC-COVID 人工评估 | 60 位医学领域专家提供 gold relevance judgments | 5 轮 × 30+ 主题 |
§7.3 DAIMS 评估总结
| DAIMS 维度 | 评分 | 说明 |
|---|---|---|
| 1. 基本信息 | 2/2 | 名称、创建者、资助来源完整 |
| 2. 采集方法 | 2/2 | Semantic Scholar 自动采集 + 全文解析管道文档完善 |
| 3. 伦理审批 | 2/2 | 不适用(公开发表文献,无人体受试者) |
| 4. 标注信息 | 1/2 | 无人工标注(自监督文本语料),机器标注工具文档完善 |
| 5. 样本信息 | 2/2 | 样本数量、格式、大小明确 |
| 6. 字段定义 | 2/2 | json_schema.txt + metadata.csv 字段文档完善 |
| 7. 数据划分 | 0/2 | 无官方 ML 划分 |
| 8. 版本信息 | 2/2 | 每版本含变更日志,最终版本明确标注 |
| 9. 许可证 | 2/2 | 逐篇混合许可,17 种类型明确标注 |
| 10. 访问机制 | 2/2 | 多渠道免费开放 |
| 11. 偏倚分析 | 2/2 | 已知偏倚文档完善(英语主导、出版偏倚等) |
| 12. 使用限制 | 1/2 | 面向文本挖掘优化,不适合直接阅读消费 |
| 总分 | 20/24(83%) | 高 AI 就绪度 |
§7.4 外部验证矩阵
| 外部数据集 | 重叠领域 | 验证目的 | 对比维度 |
|---|---|---|---|
| PubMed Central OA | 生物医学全文 | 全文解析质量 | XML vs JSON 结构化质量 |
| LitCovid | COVID-19 文献标注 | 文献分类准确性 | 人工标注 vs 自动分类 |
| TREC-COVID | COVID-19 IR 评估 | 检索系统性能 | nDCG@10 官方评测 |
| COVID-QA | COVID-19 QA | 问答系统准确性 | EM / F1 人工标注 |
| WHO COVID-19 DB | COVID-19 元数据 | 元数据完整性 | DOI / WHO ID 匹配率 |
| Microsoft Academic | 学术文献元数据 | 跨库元数据一致性 | MAG ID 匹配(已弃用) |
| bioRxiv/medRxiv | 预印本全文 | 预印本解析质量 | 原始 PDF vs JSON 解析 |
| Retraction Watch | 撤稿论文 | 预印本质量风险 | 撤稿 DOI 匹配 |
§8 基准与生态(Benchmarks & Ecosystem)
§8.1 关键 AI 应用与基准
| 应用 | 论文/系统 | 方法 | 性能 | 发表年份 |
|---|---|---|---|---|
| COVID-19 信息检索 | TREC-COVID Round 5 最佳系统 | Bi-encoder SciBERT + 交叉编码器重排 | nDCG@10 = 0.65+ | 2020 |
| COVID-19 问答 | CAiRE-COVID | BioBERT QA + BART 摘要 + ALBERT 抽取 | F1 = 0.45+ | 2020 |
| COVID-19 问答 | CovidQA | T5 ranking + 零样本 BERT | EM = 0.20+ | 2020 |
| 领域预训练 | BioBERT on CORD-19 | BERT 继续预训练 | F1 提升 2-5%(NER/分类) | 2020 |
| 知识图谱 | COVID Graph 项目 | CORD-19 + 多源 NER/RE | 最大 COVID-19 KG | 2020 |
| 文本分类 | BERT COVID-19 放射学发现提取 | BERT 句子级分类 | F1 = 0.80+ | 2020 |
| 文献检索 | SciSight 探索式搜索 | SPECTER 嵌入 + 可视化 | 交互式探索 | 2020 |
| 搜索引擎 | CO-SE (COVID-19 Search Engine) | TF-IDF + Transformer | 段落级检索 | 2022 |
§8.2 Kaggle CORD-19 研究挑战赛
| 维度 | 详情 |
|---|---|
| 主办方 | Kaggle + White House OSTP + AI2 |
| 奖金 | $1,000/任务(可选慈善捐赠) |
| 参与团队 | 550+ |
| 评估方式 | 生物医学领域专家人工评审 |
| 任务数量 | 10 个高层任务(含多个子任务) |
| 任务来源 | NASEM SCIED + WHO R&D Blueprint |
| 最佳贡献形式 | 文章摘要表(living literature review tables) |
| Round 1 | 开放式问题(500+ 团队参与) |
| Round 2 | 表格完成任务(100+ 附加提交) |
| 影响 | 催生 living literature review 表格协作模式 |
§8.3 TREC-COVID 共享任务
| 维度 | 详情 |
|---|---|
| 联合组织方 | Allen Institute for AI + NIST + NLM + OHSU + UTHealth |
| 任务 | 基于 CORD-19 的 ad hoc 文献检索排序 |
| 主题来源 | MedlinePlus 搜索 + Twitter 对话 + OHSU 图书馆搜索 + 研究者直接对话 |
| 轮次 | 5 轮,每轮使用特定 CORD-19 版本,周期 1 周 |
| 参与团队 | 55+ |
| 评审专家 | 60 位医学领域专家(NLM 索引员 + OHSU/UTHealth 医学生) |
| 评估指标 | nDCG@10, MAP, Recall@1000 |
| 特色 | 模拟真实世界文献激增和信息需求快速变化 |
| 主题演变 | Round 1(“COVID-19 起源是什么?”)→ Round 5(“SARS-CoV-2 基因组观察到的突变有哪些?”) |
§8.4 预训练模型生态
| 模型 | 基础架构 | 预训练数据 | HuggingFace ID |
|---|---|---|---|
| SciBERT | BERT-base | Semantic Scholar 570K CS+Biology 论文 | allenai/scibert_scivocab_uncased |
| BioBERT | BERT-base | PubMed 摘要 + PMC 全文 | dmis-lab/biobert-base-cased-v1.1 |
| SPECTER | BERT-base | 引文图预训练 | allenai/specter |
| DeepSet BERT | BERT-base | CORD-19 进一步预训练 | — |
| SeVeN | — | CORD-19 词对关系嵌入 | — |
§8.5 EPIC-QA 共享任务
| 维度 | 详情 |
|---|---|
| 组织方 | NLM(National Library of Medicine) |
| 任务 | 专家级和消费者级 COVID-19 问答 |
| 数据 | 基于 CORD-19 特定版本(Round 1: 2020-06-19 版本) |
| 评估 | 自动指标 + 人工评估 |
§8.6 辅助工具与平台
| 工具 | 功能 | URL |
|---|---|---|
| SciSight | CORD-19 探索式搜索与可视化 | https://api.semanticscholar.org/graph/v1/paper/search |
| COVID-19 Explorer | AI2 官方 CORD-19 搜索界面 | https://www.semanticscholar.org/cord19 |
| Sketch Engine COVID-19 语料库 | 语言学分析(词频/搭配/关键词) | https://www.sketchengine.eu/ |
| COVID Graph | COVID-19 知识图谱 | https://covidgraph.org/ |
| AllenAI/cord19 (GitHub) | 数据集源代码与工具 | https://github.com/allenai/cord19 |
§8.7 生态快照
| 组件 | 状态 | 维护方 | 备注 |
|---|---|---|---|
| CORD-19 数据集 | 已归档(2022-06-02 最终版) | Allen Institute for AI | 不再更新 |
| HuggingFace datasets | 活跃 | HuggingFace | allenai/cord19 |
| Kaggle 数据集 | 活跃(只读) | Kaggle | 含竞赛 notebook |
| Azure Open Datasets | 活跃 | Microsoft | East US 区域 |
| Semantic Scholar API | 持续运营 | Allen Institute for AI | 可查 s2_id |
| TREC-COVID 评测脚本 | 公开可用 | NIST | ir.nist.gov |
| GitHub allenai/cord19 | 活跃(只读) | Allen Institute for AI | 含 README + 工具 |
| SPECTER 模型 | 活跃 | Allen Institute for AI | allenai/specter |
| COVID Graph 项目 | 活跃 | 社区 | 多源知识图谱 |
§9 资源与引用(Resources & Citation)
§9.1 BibTeX 引用
@inproceedings{wang2020cord19,
title = {CORD-19: The COVID-19 Open Research Dataset},
author = {Wang, Lucy Lu and Lo, Kyle and Chandrasekhar, Yoganand and Reas, Russell and Yang, Jiangjiang and Burdick, Doug and Eide, Darrin and Funk, Kathryn and Katsis, Yannis and Kinney, Rodney Michael and Li, Yunyao and Liu, Ziyang and Merrill, William and Mooney, Paul and Murdick, Dewey A. and Rishi, Devvret and Sheehan, Jerry and Shen, Zhihong and Stilson, Brandon and Wade, Alex and Wang, Kuansan and Williams, William H. and Xie, Qian and Yu, Ling and Zhang, Leyang and Angles, Brandon and Arora, Chaitanya and Asai, Akari and Bhagavatula, Chandra and Bilak, Rim and Blevins, Benjamin and Bradford, Carissa and Buchholz, Anne and Casper, Jan and Cohan, Arman and Collins, Daniel and dos Santos, Caio C. and Dougdie, Hitesh and Elgohary, Ahmed and Et-Emad, Yosra and Farber, Alexander and Foks, Micha and Fuller, Marissa and Grossman, Arthur and He, Haotian and Huang, Zhiheng and Iversen, Jamie and Khashabi, Daniel and Kiesel, Niklas and Kilman, Lyla and Kohlbecker, John and Lothian, Otto and Mackin, Katie and MacLean, Drew and Martin, Michael and Mulcahy, Conor and Nguyen, Jonathan and Pal, Abhay and Patil, Shalin and Patel, Laxit and Rajbhandari, Suraj and Renn, Melanie and Rodrigues, Mário and Schlauch, Isabel and Searle, James and Sheehan, Colby and Stark, Chris and Svakhine, Nikolai and Thomas, Shramay and Tripp, Robert and van Luling, Nora and Walker, Lian and Yuan, Mu and Zhang, Zhenzhen},
booktitle = {Proceedings of the 1st Workshop on NLP for COVID-19 at ACL 2020},
year = {2020},
publisher = {Association for Computational Linguistics},
url = {https://aclanthology.org/2020.nlpcovid19-acl.1}
}
@dataset{cord19_2022,
title = {COVID-19 Open Research Dataset (CORD-19)},
year = {2020},
version = {2022-06-02},
publisher = {Allen Institute for AI},
doi = {10.5281/zenodo.3715505},
url = {https://www.semanticscholar.org/cord19}
}
§9.2 官方资源链接
| 资源 | URL |
|---|---|
| Semantic Scholar CORD-19 主页 | https://www.semanticscholar.org/cord19 |
| CORD-19 About(版本历史 + 下载) | https://www.semanticscholar.org/cord19/about |
| GitHub 仓库 | https://github.com/allenai/cord19 |
| HuggingFace datasets | https://huggingface.co/datasets/allenai/cord19 |
| Kaggle CORD-19 Challenge | https://www.kaggle.com/allen-institute-for-ai/CORD-19-research-challenge |
| Zenodo DOI | https://doi.org/10.5281/zenodo.3715505 |
| Azure Open Datasets | https://learn.microsoft.com/azure/open-datasets/dataset-covid-19-open-research |
| TREC-COVID 官方页面 | https://ir.nist.gov/covidSubmit/index.html |
| EPIC-QA 官方页面 | https://bionlp.nlm.nih.gov/epic_qa/ |
| ACL 2020 论文 | https://aclanthology.org/2020.nlpcovid19-acl.1 |
| 联系方式 | partnerships@allenai.org |
§9.3 引用指南
在出版物或再分发中引用 CORD-19 时,请使用以下格式:
参考文献列表:
COVID-19 Open Research Dataset (CORD-19). 2020. Version 2022-06-02. Retrieved from https://www.semanticscholar.org/cord19. Accessed YYYY-MM-DD. doi:10.5281/zenodo.3715505
正文引用:
(CORD-19, 2020)
§9.4 变更日志摘要
| 日期 | 变更摘要 |
|---|---|
| 2020-03-13 | 初始版本(28K 论文,0.3 GB) |
| 2020-05-26 | JSON schema 标准化更新 |
| 2020-07-09 | NLP-COVID Workshop(ACL 2020)正式发表 |
| 2021-03-01 | 综述文章发表于 Briefings in Bioinformatics |
| 2022-02 | 增长至 280K+ 全文论文 |
| 2022-06-02 | 最终版本(1M+ 索引,370K+ 全文,18.7 GB),正式归档 |
§10 AI 使用声明卡(AI Usage Card)
| 项目 | 声明 |
|---|---|
| 数据集名称 | COVID-19 Open Research Dataset (CORD-19) |
| 数据集 ID | cord-19/104 |
| 页面状态 | published |
| 适用 AI 任务 | NLP 文本挖掘、信息检索、问答系统、命名实体识别、文本摘要、知识图谱构建 |
| 推荐模型 | SciBERT / BioBERT / SPECTER / BART / Longformer |
| 许可合规 | 混合许可(按篇),商业用途须过滤 comm_use_subset |
| 偏倚风险 | 英语主导、出版偏倚、预印本质量参差、时间偏倚(2020 Q1-Q2 占比高) |
| 质量控制 | Semantic Scholar 自动去重 + Lo et al. 全文解析 + TREC-COVID 60 位专家评估 |
| 最后审核日期 | 2026-08-12 |
| 审核方 | [千方病案医学编辑部]交叉审核 |
| 免责声明 | 本数据集面向文本挖掘与 NLP 研究优化,不适合直接阅读消费。预印本内容未经同行评审,不应作为临床决策依据。使用前必须核查每篇论文的 license 字段。 |
§10.1 人工校验表
| 检查项 | 状态 | 说明 |
|---|---|---|
| 数据集名称准确性 | ✅ | COVID-19 Open Research Dataset (CORD-19) |
| 创建者信息 | ✅ | Allen Institute for AI / Semantic Scholar |
| 规模数据 | ✅ | 1,056,660 篇索引 / 368,618 篇全文 / 18.7 GB |
| 许可证信息 | ✅ | 混合许可(17 种类型逐篇标注) |
| DOI 有效性 | ✅ | 10.5281/zenodo.3715505 |
| 访问方式 | ✅ | Kaggle / Zenodo / HuggingFace / Azure 免费开放 |
| ICD-11 映射 | ✅ | RA01.0 (COVID-19) / RA02 (SARS) / RA01.2 (MERS) |
| 偏倚分析 | ✅ | 7 类偏倚已识别并文档化 |
| 坑点指南 | ✅ | 6 大坑点 + 缓解方法 |
| BibTeX 引用 | ✅ | ACL 2020 论文 + Zenodo 数据集 |
