Downloads · 30 days
100
22% of all-time downloads
stighellemans/meddeid-dutch-synth
meddeid-dutch-synth is a token classification model from stighellemans. Use it when you need labels on individual words, such as names. It is set up for meddeid. The card lists the license as agpl-3.0.
meddeid-dutch-synth is a Dutch clinical-text de-identification model trained exclusively on synthetic notes. It predicts character-offset personally identifiable information spans and is packaged with the tokenizer, c…
Downloads · 30 days
100
22% of all-time downloads
All-time downloads
462
Public
Parameters
124M
498 MB on disk
Likes
1
Public
Click a slice to open those files.
.safetensors498 MB · 99%
From the Hugging Face model README
meddeid-dutch-synth is a Dutch clinical-text de-identification model trained
exclusively on synthetic notes. It predicts character-offset personally
identifiable information spans and is packaged with the tokenizer,
configuration and MedDeID bundle contract required for local and offline use.
No real patient notes were used to train this model.
The MedDeID documentation is the central reference for installation, local deployment, annotation workflows, validation, and security guidance.
The model is a reproducible starting point for detecting identifiers in Dutch clinical text. It is designed for local deployment inside the user's own governance boundary. It does not make text anonymous by itself, does not guarantee removal of every identifier and requires validation for the target institution and use case.
Do not send clinical text to the public demonstration Space. Download the model and process sensitive text locally.
Out-of-scope uses include claiming that output is anonymous without a separate risk assessment, using the model as a clinical decision system, and applying it to unsupported languages without dedicated validation.
pip install meddeid
from meddeid import Deidentifier
engine = Deidentifier.from_pretrained(
"stighellemans/meddeid-dutch-synth",
device="cpu",
)
result = engine("Patiënt Jan Voorbeeld kwam op controle.")
print(result.spans)
print(result.deid_text)
The first normal MedDeID call downloads and caches this self-contained bundle automatically. For an air-gapped installation or TensorRT export, pre-stage the complete repository once:
hf download stighellemans/meddeid-dutch-synth \
--local-dir ./meddeid-dutch-synth
meddeid deidentify note.txt \
--model ./meddeid-dutch-synth --device cpu
The normal Hugging Face cache is reused automatically. --offline is optional
and only enforces that no network check may occur; it is unnecessary for an
existing local model directory.
The canonical prediction container is always spans.
The model uses the RobBERT-2023 Dutch encoder with two classification heads:
three-way BIO span detection and 14-way entity classification. It processes
overlapping 512-token windows with a 64-token overlap. Epoch selection used a
user-created development partition; the final model was reinitialised and fit
for 17 epochs on all 6,493 published corpus documents. The self-contained
export pins RobBERT revision 1164b2df6d3ceb1735900c839da8de9bad1a99f9.
The table below reproduces the system comparison reported in the accompanying manuscript. Core PII recall measures recovery of the identifying parts marked by the benchmark's subannotations; non-PII redaction measures how much non-identifying text was unnecessarily removed.
| System | Core PII recall — hospital | Core PII recall — synthetic | Core PII recall — primary care | Non-PII redaction — hospital | Non-PII redaction — synthetic | Non-PII redaction — primary care |
|---|---|---|---|---|---|---|
| MedDeID Dutch UZA¹ | 98.9% | 88.1% | 87.0% | 0.24% | 1.85% | 0.29% |
| MedDeID Dutch synthetic | 96.1% | 99.8% | 90.3% | 0.83% | 0.28% | 1.22% |
| Belgian DEDUCE | 88.0% | 64.9% | 74.9% | 0.63% | 1.60% | 0.90% |
| Qwen3-8B | 84.2% | 92.5% | 60.8% | 0.88% | 1.34% | 0.31% |
| deidentify | 86.4% | 69.4% | 68.6% | 0.56% | 1.37% | 5.73% |
| GLiNER Multilingual PII | 76.6% | 75.9% | 70.4% | 2.11% | 2.55% | 3.42% |
| DEDUCE | 75.9% | 42.5% | 57.2% | 0.50% | 0.82% | 0.54% |
| OpenAI privacy filter | 72.1% | 54.2% | 66.9% | 0.61% | 1.28% | 11.46% |
| OpenMed multilingual privacy filter | 49.1% | 48.1% | 37.1% | 0.96% | 1.62% | 8.25% |
¹ The hospital-trained weights are not publicly distributed; the link points to the MedDeID software repository used to run the model.
These point estimates are specific to the study datasets and evaluation pipeline. The hospital and primary-care test sets contain real clinical text and are not publicly distributed. Synthetic-benchmark performance must not be interpreted as an estimate of performance on real clinical text.
The versioned Dutch post-processing profile can use trusted patient_name,
caregiver_names, and caller-asserted known_values metadata. Metadata is not
fed to the transformer; it deterministically recovers matching names or values
after neural decoding. Sites should validate both recall and specificity with
their own metadata quality.
result = engine(
"Patiënt Jan Peeters belde 0470 12 34 56.",
metadata={
"lang": "nl-BE",
"patient_name": {"given_name": "Jan", "family_name": "Peeters"},
"known_values": [
{"value": "0470 12 34 56", "label": "Contactdetails"}
],
},
)
model.safetensors: model weights;bundle.json: labels, windowing, language-profile and post-processing contract;config.json and tokenizer files: self-contained RobBERT configuration;CHECKSUMS.sha256: file integrity;LICENSE: MedDeID software licence;MEDDEID-PRIVATE-FINE-TUNING-EXCEPTION-1.0.txt: additional permission for
private training data and private fine-tuned weights.The repository exposes only the current default model. Reproducible deployments should pin the immutable Hub commit SHA rather than relying on mutable tags.
Developed by Stig Hellemans, Tom Stroobants, Elyne Scheurwegs, Pieter Meysman, Philippe Jorens and Kris Laukens at the University of Antwerp and Antwerp University Hospital (UZA). This work is supported by a Research Foundation Flanders (FWO) SB Fellowship, grant 1SA3226N.
We thank Co-Medic for supporting the project.
Author ORCIDs: Stig Hellemans, Tom Stroobants, Elyne Scheurwegs, Pieter Meysman, Philippe Jorens, and Kris Laukens.
Please cite both the archived Dutch dataset release and the accompanying paper.
@dataset{hellemans_2026_meddeid_dutch_data,
author = {Hellemans, Stig and Stroobants, Tom and Scheurwegs, Elyne and Meysman, Pieter and Jorens, Philippe and Laukens, Kris},
title = {MedDeID Dutch synthetic corpus and benchmark},
year = {2026},
publisher = {Zenodo},
doi = {10.5281/zenodo.22689856},
url = {https://doi.org/10.5281/zenodo.22689856}
}
@misc{hellemans2026meddeid,
author = {Hellemans, Stig and Stroobants, Tom and Scheurwegs, Elyne and Meysman, Pieter and Jorens, Philippe G. and Laukens, Kris},
title = {{MedDeID} enables locally governed clinical-text de-identification from real or synthetic training data},
year = {2026},
eprint = {2609.10049},
archivePrefix = {arXiv},
primaryClass = {cs.CL},
url = {https://arxiv.org/abs/2609.10049}
}
For reproducible reporting, include the immutable model revision, MedDeID package version, language-profile version, and evaluation configuration.
The model weights and bundled MedDeID software are licensed under AGPL-3.0-only with the MedDeID Private Fine-Tuning Exception, version 1.0. The Exception expressly applies to these model weights and bundled software. It permits private training data and resulting private fine-tuned weights to remain confidential; MedDeID code modifications remain subject to AGPL-3.0-only. The RobBERT base model remains subject to its own licence and attribution terms.