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.
aliasit-pii-dataset-v2
Dataset PII multilingue in formato canonico testo + character span, 82 categorie, 6 lingue, derivato da quattro sorgenti pinnate a commit.
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.
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]))Split
Gli splitbenchmark,testsono 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 usavalidation.
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.
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.
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")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.
