CoolFace
Datasetpublic

storytracer/bhl-240p-60v-optimized

bhl-240p-60v-optimized OCR-model comparison published with ocrscout. Each row pairs one source page with one model's normalized output. Summary Pages: 224 Models: 3 Rows: 718 Pages with errors: 0 Mean disagreement: 0.163 Median disagreement: 0.092 Source images embedded: yes Generated: 2026-06-27 10:27 UTC by ocrscout v0.1.0 Per-model metrics Model Format Pages OK Pages errored Total tokens Mean tokens/pg Mean s/pg Mean prepare s Mean chars… See the full description on the dataset page: https://huggingface.co/datasets/storytracer/bhl-240p-60v-optimized.

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

bhl-240p-60v-optimized

OCR-model comparison published with ocrscout. Each row pairs one source page with one model's normalized output.

Summary

  • —Pages: 224
  • —Models: 3
  • —Rows: 718
  • —Pages with errors: 0
  • —Mean disagreement: 0.163
  • —Median disagreement: 0.092
  • —Source images embedded: yes
  • —Generated: 2026-06-27 10:27 UTC by ocrscout v0.1.0

Per-model metrics

ModelFormatPages OKPages erroredTotal tokensMean tokens/pgMean s/pgMean prepare sMean charsMean items
dots-mocrlayout_json23802906821221.414.180.00164415.6
glm-ocr-layoutlayout_json24000—2.0513.16171811.1
lighton-ocr2markdown2400189472789.52.170.92189817.9

Top-disagreement pages

Pairwise word-diff distance averaged across all models on the page. 0 = perfect agreement; 1 = no shared tokens.

PageModelsDisagreement
CAT31410324/CAT31410324_0005.jp220.998
CAT31418092/CAT31418092_0005.jp230.989
seizangoryuyikev2yosha/seizangoryuyikev2yosha_0034.jp230.810
seizangoryuyikev2yosha/seizangoryuyikev2yosha_0032.jp230.780
odontographyortr02owen/odontographyortr02owen_0333.jp230.733
botanicalmagazin51891toky/botanicalmagazin51891toky_0113.jp230.714
horsesgunsdogs00page/horsesgunsdogs00page_0008.jp230.690
CAT31415137/CAT31415137_0074.jp230.667
mmoiresdelasoc04lieg/mmoiresdelasoc04lieg_0292.jp230.667
CAT109916356931907426/CAT109916356931907426_0001.jp230.657

Schema

Each row in data/train-*.parquet is one (page, model) pair.

ColumnTypeNotes
file_idstringGlobally-unique human identifier. barcode/filename for volume sources, parent_dir/filename for flat sources.
page_idstringSource-side raw id (e.g. BHL's PageID). Used by the run loop and reference adapters.
barcodestringSource-side barcode (BHL BarCode/ItemID, IA item, …). Joins to volumes-NNNNN.parquet.
sequenceintPage index within its volume, when applicable.
modelstringocrscout profile name.
source_uristringOriginal image path or URL (provenance).
imageimageSource page bytes, embedded by ocrscout publish.
output_formatstringmarkdown, doctags, layout_json, …
document_jsonstringFull DoclingDocument JSON.
markdownstringDoclingDocument.export_to_markdown().
raw_payloadstringThe model's pre-normalization output.
tokensintGenerated tokens (when reported).
errorstringSet when the page failed for this model.
metrics_jsonstringPer-row JSON metrics (timings, sizes, …).
comparisons_jsonstringTyped ComparisonResult envelope per (page, model) when comparisons ran.
text_similarity / text_cer / text_werfloatFlat text-comparison metrics.
reference_text / reference_provenance_jsonstringReference content + its provenance (method/engine/confidence) — references are not necessarily ground truth.

Use this dataset

Load with `datasets`:

python
from datasets import load_dataset
ds = load_dataset("storytracer/bhl-240p-60v-optimized", split="train")
print(ds[0]["file_id"], ds[0]["model"])

Browse with the ocrscout viewer:

bash
pip install 'ocrscout[viewer] @ git+https://github.com/storytracer/ocrscout.git'
python -c "from huggingface_hub import snapshot_download; print(snapshot_download('storytracer/bhl-240p-60v-optimized', repo_type='dataset', local_dir='./scout-snap'))"
ocrscout viewer ./scout-snap

Pipeline configuration

The full ocrscout pipeline that produced this dataset:

yaml
name: run
source:
  name: bhl
  args:
    pages_per_volume: 4
    sample: 240
    seed: 24
reference: null
comparisons: null
models:
- lighton-ocr2
- glm-ocr-layout
- dots-mocr
normalizer_overrides: {}
export:
  name: parquet
  args:
    dest: data/output/bhl-240p-60v-optimized/data/train-00000-of-00001.parquet
reporter: null
sample: 240
output_dir: data/output/bhl-240p-60v-optimized