CoolFace
Datasetpublic

mapo80/aliasit-pii-dataset-v2-small

aliasit-pii-dataset-v2-small Sottoinsieme stratificato di aliasit-pii-dataset-v2 per le prove di training: stesse categorie e stesso formato, dimensioni da smoke test. documenti 8.620 entita' 124.644 categorie 82 (48 marcate critiche) lingue de, en, es, fr, it, pt tassonomia v1.1.0 (taxonomy.yaml nel repo) versione 1.0.0 costruito il 2026-08-26T17:36:35+00:00 Formato La rappresentazione canonica e' testo + character span, non BIO: gli… See the full description on the dataset page: https://huggingface.co/datasets/mapo80/aliasit-pii-dataset-v2-small.

sourceHugging Facecc-by-4.0updated 27d agoView on Hugging Face
0likes64downloads
Dataset Card

aliasit-pii-dataset-v2-small

Sottoinsieme stratificato di aliasit-pii-dataset-v2 per le prove di training: stesse categorie e stesso formato, dimensioni da smoke test.

documenti8.620
entita'124.644
categorie82 (48 marcate critiche)
linguede, en, es, fr, it, pt
tassonomiav1.1.0 (taxonomy.yaml nel repo)
versione1.0.0
costruito il2026-08-26T17:36:35+00:00

Formato

La rappresentazione canonica e' testo + character span, non BIO: gli span sono indipendenti dal tokenizer, e la conversione in etichette per token e' un'operazione del consumatore. end e' esclusivo, quindi text[start:end] restituisce esattamente il valore dell'entita'.

Le entita' sono in array paralleli invece che in una lista di struct: occupa meno e si legge piu' in fretta.

python
import pyarrow.parquet as pq

t = pq.read_table("data/train.parquet")
row = t.slice(0, 1).to_pylist()[0]
for start, length, label in zip(row["ent_start"], row["ent_len"], row["ent_label"]):
    print(label, repr(row["text"][start : start + length]))
colonnacosa contiene
id, text, languagedocumento
ent_start, ent_len, ent_labelentita': inizio, lunghezza in caratteri, categoria canonica
ent_source_label, ent_source_dataset, ent_mappingda quale label di quale sorgente arriva, e con che tipo di mapping
unm_*span presenti nella sorgente ma non mappati sulla tassonomia, conservati invece che buttati
prov_*provenienza: repo, revision, split originale, licenza, se il testo e' ricostruito
fp_*fingerprint per la deduplicazione (esatto, normalizzato, insieme di entita', template)
cont_*contaminazione dichiarata rispetto ai due reference model

Split

splitdocumentientita'lingueuso
train6.00094.685de 696, en 739, es 683, fr 679, it 2.667, pt 536training
validation1.32815.275de 205, en 205, es 200, fr 202, it 316, pt 200training
test1.29214.684de 205, en 200, es 204, fr 201, it 282, pt 200vietato al training
Gli split test sono tenuti fuori dal training, dalla calibrazione delle soglie, dalla selezione del modello e dal tuning degli iperparametri. Non sono un test set qualsiasi: sono la sola cosa che puo' dire che il modello ha imparato invece di ricordare. Chi ha bisogno di guardare dei numeri durante lo sviluppo usa validation.

Gli split sono separati per famiglia di template, non per documento: due testi generati dallo stesso schema non possono finire uno in train e uno in valutazione.

Provenienza

Ogni sorgente e' pinnata a un commit sha a 40 cifre. Un branch non e' un pin.

sorgentelicenzarevision
`urchade/synthetic-pii-ner-mistral-v1`apache-2.0392d6853aaec28075253565350e0d17b9e0ffc0d
`rizzoaiacademy/anonimizzazione-testi-italiano-clean`mit50163bcda973efe818004d053cfa159f0927663f
`ai4privacy/pii-masking-openpii-1m`cc-by-4.0ecfdc547f4a0955600cfe6ab98ba2a162207fcc0
`gretelai/synthetic_pii_finance_multilingual`apache-2.07b844d16738527a04264f50214cb426a4cea0897

La licenza di questo derivato e' CC-BY-4.0, cioe' la piu' stringente delle quattro. Attribuzione richiesta: Ai4Privacy / Ai Suisse SA per pii-masking-openpii-1m, Gretel.ai per synthetic_pii_finance_multilingual, Urchade Zaratiana per synthetic-pii-ner-mistral-v1, Rizzo AI Academy per anonimizzazione-testi-italiano-clean.

Tutto il testo e' sintetico. Nessun documento contiene dati personali di persone reali; le entita' sono valori generati.

Verifica

manifest.json porta il checksum sha256 di ogni file. Un dataset senza checksum committato non e' una versione, e' una copia.

python
import hashlib, json, pathlib

for f in json.load(open("manifest.json"))["files"]:
    # il manifest usa i nomi della build: <dataset>.<split>.parquet
    split = f["path"].rsplit(".", 2)[-2]
    blob = (pathlib.Path("data") / f"{split}.parquet").read_bytes()
    assert hashlib.sha256(blob).hexdigest() == f["sha256"], split
    print(split, "ok")
filebytessha256
aliasit-pii-dataset-v2-small.test.parquet497.5589528040276acbf0e7430de1a288219d00181bc09a6a34d7e1234313291afc08a
aliasit-pii-dataset-v2-small.train.parquet2.299.535bfa08cb705f64d0a3e978e64bc1551649f4cb962ed1d3e1ec931b94e94a69691
aliasit-pii-dataset-v2-small.validation.parquet525.0721785c8db55a4d8de9688996f20ecea4a5132f133f44e7ead59915f5f62e94d9a

Cosa questo dataset non e'

  • Non e' un benchmark di confronto fra modelli. Due dei modelli di riferimento del progetto hanno visto parte di queste sorgenti in addestramento; misurarli qui darebbe numeri gonfiati.
  • Non e' bilanciato. La distribuzione delle categorie e' quella delle sorgenti, e alcune categorie italiane hanno supporto basso: e' un fatto documentato, non corretto con augmentation.
  • Non contiene testo reale: nessun dato personale di persone esistenti.

Generato da src/publish_hf.py il 2026-08-26T18:47:35+00:00.