CoolFace
Datasetpublic

mapo80/aliasit-pii-dataset-v2

aliasit-pii-dataset-v2 Dataset PII multilingue in formato canonico testo + character span, 82 categorie, 6 lingue, derivato da quattro sorgenti pinnate a commit. documenti 170.448 entita' 3.127.084 categorie 82 (48 marcate critiche) lingue de, en, es, fr, it, pt tassonomia v1.1.0 (taxonomy.yaml nel repo) versione 2.0.0 costruito il 2026-08-26T17:19:46+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.

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

aliasit-pii-dataset-v2

Dataset PII multilingue in formato canonico testo + character span, 82 categorie, 6 lingue, derivato da quattro sorgenti pinnate a commit.

documenti170.448
entita'3.127.084
categorie82 (48 marcate critiche)
linguede, en, es, fr, it, pt
tassonomiav1.1.0 (taxonomy.yaml nel repo)
versione2.0.0
costruito il2026-08-26T17:19:46+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
train129.6092.069.573de 14.813, en 15.137, es 14.903, fr 14.749, it 58.485, pt 11.522training
validation15.060364.457de 927, en 988, es 959, fr 972, it 10.488, pt 726training
test14.850358.935de 975, en 902, es 975, fr 906, it 10.343, pt 749vietato al training
benchmark10.929334.119de 237, en 221, es 245, fr 241, it 9.755, pt 230vietato al training
Gli split benchmark, 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.benchmark.parquet4.651.43715f1544e05c442c74fe3bd13634f0c72528546e39639844e77548af2a1c2f8e0
aliasit-pii-dataset-v2.test.parquet5.893.18709b406ab45010c32b84861649e1c2eaa3e89e0a591aebb4f3b81a5d0007a6332
aliasit-pii-dataset-v2.train.parquet48.023.635e94f4b553118e0bce69bb00e11705711eb17363b13b82a37614e577d5162026f
aliasit-pii-dataset-v2.validation.parquet5.996.80486b44a703a20670563240efc26fc240b78fed58bad5917ee4f749966d6a15fb7

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:08+00:00.