davanstrien/nuextract3-cards-terse
NLS Advocates Library index cards → structured JSON (NuExtract3) Demo output: scanned manuscript index cards from the National Library of Scotland's Advocates Library, run through NuExtract3 (4B, Apache-2.0) for schema-guided structured extraction. Each row pairs the card image with extraction — the JSON the model returned for that card. How it was made Input: NationalLibraryOfScotland/nls-index-cards-object-detection, filtered to the 49 pages that contain a card… See the full description on the dataset page: https://huggingface.co/datasets/davanstrien/nuextract3-cards-terse.
NLS Advocates Library index cards → structured JSON (NuExtract3)
Demo output: scanned manuscript index cards from the National Library of Scotland's Advocates Library, run through NuExtract3 (4B, Apache-2.0) for schema-guided structured extraction. Each row pairs the card image with extraction — the JSON the model returned for that card.
How it was made
- Input: NationalLibraryOfScotland/nls-index-cards-object-detection, filtered to the 49 pages that contain a card (
davanstrien/nls-index-cards-only). - Model:
numind/NuExtract3via the `nuextract3.py` UV script. - Schema (NuExtract template):
image_type,heading,heading_type,epithet,entries[ms_no, folios, description].
hf jobs uv run --image vllm/vllm-openai:latest --flavor a100-large \
--python /usr/bin/python3 -e PYTHONPATH=/usr/local/lib/python3.12/dist-packages \
-s HF_TOKEN \
https://huggingface.co/datasets/uv-scripts/ocr/raw/main/nuextract3.py \
davanstrien/nls-index-cards-only OUTPUT \
--template '{"image_type":["index_card","verso","cover","blank","other"],"heading":"verbatim-string","heading_type":["person","family","corporate","geographic","subject"],"epithet":"string","entries":[{"ms_no":"verbatim-string","folios":["verbatim-string"],"description":"string"}]}'Note
This is a demo, not a production extraction. Quality varies — e.g. busy or small-in-frame scans are sometimes misclassified as verso, and headings may be abbreviated where a catalogue would expand them. For real archival work, crop to the card first (the input dataset ships bounding boxes) and review the output.
