PubMed-OCR是一个以OCR为中心的科学文献语料库,源自PubMed Central开放获取PDF。每一页均被渲染为图像,并通过Google Cloud Vision OCR进行标注,最终以紧凑的JSON模式发布,包含单词级、行级和段落级的边界框信息。
规模(发布版):
该数据集旨在支持布局感知建模、基于坐标的问答,以及科学文档OCR依赖流水线的评估。
{basename, page}唯一标识)license字段)PubMed-OCR适用于:
每一行对应单个页面。关键标识符:
basename:页面组标识符(文献级)page:文献内的页面索引ocr_json是一个JSON字符串,包含OCR输出,其中边界框采用渲染页面图像的像素坐标。
示例(模式概览;字段可能包含额外元数据):
{
"image": {"width": 1275, "height": 1650, "dpi": 150},
"text": {
"words": [{"text": "Introduction", "bbox": [74, 132, 210, 156]}],
"lines": [{"text": "Introduction", "bbox": [74, 130, 612, 160]}],
"paragraphs": [{"text": "…", "bbox": [70, 120, 1180, 420]}]
}
}basename(字符串):文章/页面组标识符。page(int32):PDF/文章内的页面索引。license(字符串):源文章的许可协议(例如,cc-by-4.0、cc-by-nc-4.0 等)。pmid(字符串):PubMed ID(如可用)。accession_id(字符串):访问标识符(例如,PMCID 或内部 ID)。article_citation(字符串):源文章的引用字符串。pdf_bytes(二进制):允许再分发时的原始 PDF 字节;否则可能为空/ null。ocr_json(字符串):OCR 输出 JSON(见上文)。此版本仅提供一个划分(train),因为它主要是一个语料库。
若用于基准测试,建议构建减少数据泄露的评估划分,例如:
科研 PDF 内容密集(包含公式、表格、多列布局)。许多 PMCOA 数据集依赖 PDF 与 XML 的对齐,这可能会遗漏扫描页面或继承解析器噪声。PubMed-OCR 直接从渲染的页面图像中提供原生 OCR 监督,支持依赖 OCR 的评估和布局感知学习,无需 PDF 与 XML 对齐。
高级处理流程:
document_text_detection。[x1, y1, x3, y3]。ocr_json(以及在允许情况下的 pdf_bytes)。源文本由科研文章作者撰写,并通过 PubMed Central Open Access 中的期刊发表。
标注通过 Google Cloud Vision OCR 进行机器生成。
标注人员为 OCR 引擎。本版本未进行任何人工标注。
科学文章可能包含作者姓名、机构 affiliation、致谢、电子邮件和参考文献。内容来源于公开可用的 PMCOA 文章;未进行额外的匿名化处理。
本数据集包含源自 PMCOA 文章的内容。
license 字段中。pdf_bytes,则仅在允许重新分发的情况下提供。如果您使用 PubMed-OCR,请引用:
@article{heidenreich2025pubmedocr,
title={PubMed-OCR: PMC Open Access OCR Annotations},
author={Heidenreich, Hunter and Getachew, Yosheb and Dinica, Olivia and Elliott, Ben},
journal={arXiv preprint arXiv:2601.11425},
year={2025}
}from datasets import load_dataset
import json
ds = load_dataset("rootsautomation/pubmed-ocr", split="train")
row = ds[0]
ocr = json.loads(row["ocr_json"])
words = ocr["text"]["words"]对于大规模迭代,请考虑使用流处理:
ds = load_dataset("rootsautomation/pubmed-ocr", split="train", streaming=True)
for row in ds:
ocr = json.loads(row["ocr_json"])
...