CoolFace
Datasetpublic

Raphael2099/wzf-jinwen-ocr

吴镇烽《金文通鉴》OCR 数据集 (Wzf Jinwen Tongjian OCR Dataset) ⚠️ PRIVATE / RESEARCH USE ONLY — 源自吴镇烽老师《金文通鉴》商业出版数据库。 仅供个人学术研究和比赛使用,严禁公开分发。详见底部"数据来源与版权"。 概要 来自吴镇烽《金文通鉴》(青铜器铭文数据库)的高质量金文 OCR 训练数据。 40,095 张图像(拓本 25,049 + 器物 15,046) 19,720 件独立器物 10,275 种字符(含 PUA 金文专字 + CJK 扩展平面) 释文 ground truth 由吴镇烽老师学术级整理 目录 images/ ├── rubbing/ # 拓本图(OCR 训练主力,质量高) └── vessel/ # 器物全照(含部分铭文,可作辅助/预训练) train.jsonl # 31,997 行 val.jsonl # 3,910 行 test.jsonl # 4… See the full description on the dataset page: https://huggingface.co/datasets/Raphael2099/wzf-jinwen-ocr.

sourceHugging Faceotherupdated 3mo agoView on Hugging Face
0likes133downloads
Dataset Card

吴镇烽《金文通鉴》OCR 数据集 (Wzf Jinwen Tongjian OCR Dataset)

⚠️ PRIVATE / RESEARCH USE ONLY — 源自吴镇烽老师《金文通鉴》商业出版数据库。 仅供个人学术研究和比赛使用,严禁公开分发。详见底部"数据来源与版权"。

概要

来自吴镇烽《金文通鉴》(青铜器铭文数据库)的高质量金文 OCR 训练数据。

  • 40,095 张图像(拓本 25,049 + 器物 15,046)
  • 19,720 件独立器物
  • 10,275 种字符(含 PUA 金文专字 + CJK 扩展平面)
  • 释文 ground truth 由吴镇烽老师学术级整理

目录

images/
├── rubbing/   # 拓本图(OCR 训练主力,质量高)
└── vessel/    # 器物全照(含部分铭文,可作辅助/预训练)

train.jsonl    # 31,997 行
val.jsonl      # 3,910 行
test.jsonl     # 4,188 行
transcriptions.json  # 编号 → 释文 / 元数据 全量 dict
char_vocab.txt       # 字符词表(特殊 token + 频次 + Unicode 码点)

切分方式:按器物 id MD5 哈希 80/10/10,同一器物的多张图必在同一 split,无数据泄漏。

jsonl 行格式

json
{
  "id": "02841",
  "image": "images/rubbing/02841_姬趛母鬲.jpg",
  "text": "姬趛母乍(作)깮(尊)鬲,갈(其)永用",
  "kind": "rubbing",
  "vessel_name": "姬趛母鬲",
  "dynasty": "西周晚期。"
}

关于「韩文字符」的真相(重要!)

释文里你会看到大量「갈」「밿」「깮」等"韩文"字符。 这些其实是金文专字,吴镇烽借用了 Hangul 音节区 (U+AC00-U+D7A3) 的码点, 因为这片 Unicode 空间标准分配但鲜被汉字混用——是个聪明的字体设计:

  • ✅ 不依赖私有字体,码点是 Unicode 标准
  • ✅ 任何 tokenizer/环境都能稳定处理(PyTorch/HF Transformers 直接用)
  • ✅ 字符词表中约 6,300 种金文专字 = 61% 的 vocab
  • ℹ️ 装 ZKing 字体后会显示为正确金文形状;不装就显示为韩文(但 token 等价)

简单理解:每个韩文字符 = 一个金文字的 token id,模型不在乎渲染。

训练 baseline 建议(PyTorch)

python
from PIL import Image
import json

with open('train.jsonl') as f:
    rows = [json.loads(l) for l in f]

class JinwenDataset:
    def __init__(self, rows, vocab):
        self.rows = rows
        self.vocab = vocab
    def __getitem__(self, i):
        r = self.rows[i]
        img = Image.open(r['image']).convert('L')  # 拓本是黑白
        text = r['text']
        return img, text

数据来源

  • 原始软件:吴镇烽《金文通鉴》(陕西师范大学出版社)
  • 数据库版本:2023-10
  • 用途:仅供学术研究 / 比赛使用,请尊重原作者版权

字段统计(前 10 高频字符)

  • (182716 次)
  • (182685 次)
  • (64346 次)
  • (19014 次)
  • (16486 次)
  • (16104 次)
  • (14100 次)
  • (13848 次)
  • (11233 次)
  • (11015 次)