Valutazione IA dell'anonimizzazione di testi italiani
Verifica che un modello o un contesto di anonimizzazione non lasci passare dati personali italiani (email, telefono, IBAN, codice fiscale, data di nascita).
Risorsa valutata
Criteri
Ogni dato personale deve essere sostituito dall'etichetta corretta; un testo senza dati personali deve restare identico.
Casi di test
| # | Input | Risposta attesa |
|---|---|---|
| 1 | Chiamate Luca Ferrari al 340 987 6543. | \[TELEFONO_1\] |
| 2 | La mia email è s.ricci@virgilio.it, grazie. | \[EMAIL_1\] |
| 3 | Codice fiscale: RSSMRA85T10A562S | \[CODICE_FISCALE_1\] |
| 4 | IBAN: IT60 X054 2811 1010 0000 0123 456 | \[IBAN_1\] |
| 5 | Nata il 22/07/1988, Francesca Gallo vive a Bologna. | \[DATA_NASCITA_1\] |
| 6 | Il pacco parte da Napoli domani. | ^Il pacco parte da Napoli domani\.$ |
Costo stimato
Token di input per chiamata : ≈ 337
| Modello | Per chiamata | Per 1.000 chiamate |
|---|---|---|
| Mistral Large · Mistral AI | 0,00015 € | 0,15 € |
| DeepSeek Flash · DeepSeek | 0,00009 € | 0,09 € |
| DeepSeek V4 Pro · DeepSeek | 0,00039 € | 0,39 € |
| GPT-6 Luna · OpenAI | 0,00003 € | 0,03 € |
| GPT-6 Sol · OpenAI | 0,00059 € | 0,59 € |
| Claude Sonnet 5.5 · Anthropic | 0,00059 € | 0,59 € |
| Claude Opus 5.5 · Anthropic | 0,00119 € | 1,19 € |
| Modello open source self-hosted (Ollama, vLLM) | 0 € di API (solo costo del server) | |
Solo costo di input, esclusa la risposta del modello. Prezzi pubblici standard dei fornitori (Mistral AI, DeepSeek, OpenAI, Anthropic) convertiti da USD in euro al cambio BCE del 29 settembre 2026. Stima: 1 token ≈ 3,6 caratteri.
Comune alle 3 regioni
Contenuto creato dall'autore, senza fonti esterne.
Uso commerciale consentito · citare l'autore · modifiche consentite.
Solo testo o dati: nessun accesso a file, rete o comandi.
Ospitato in Francia (Scaleway, Parigi). Nessun trasferimento fuori dall'UE.
Unione europea · 5/5
Fittizi: nomi, indirizzi e numeri inventati, nessuna persona reale.
Nessun dato di addestramento: nessuna sintesi da fornire.
Stati Uniti · 5/5
Fittizi: nomi, indirizzi e numeri inventati, nessuna persona reale.
Nessun dato di addestramento: nessuna documentazione da pubblicare.
Cina · 5/5
Fittizi: nomi, indirizzi e numeri inventati, nessuna persona reale.
Nessun dato di addestramento; i contenuti generati dall'IA diffusi in Cina vanno etichettati (2025).
Sintesi indicativa al 30/09/2026, senza valore di certificazione legale. Metodo e fonti →
Statistiche
Mi piace : 0 · Commenti : 0
Clicca su un contatore per mostrarlo o nasconderlo; passa sul grafico per i dettagli. Una visualizzazione per visitatore al giorno, bot esclusi; conteggio iniziato il 30 settembre 2026.
- Identificativo
- contextetech--eval-anonimizzare-testi-gdpr
- Tipo
- Valutazioni
- File
- eval-anonimizzare-testi-gdpr.eval.jsonl
- Formato
- JSON Lines (application/jsonl)
- Dimensione
- 517 byte
- Codifica
- UTF-8
- Token stimati
- ≈ 143
- Lingua
- Italiano
- Licenza
- CC BY 4.0
- Uso commerciale
- Consentito
- Dati personali
- Fittizi (inventati)
- Versione
- 1.0
- Pubblicato il
- 3 ottobre 2026 alle ore 05:20
- Aggiornato il
- 3 ottobre 2026 alle ore 05:20
- Archiviazione
- nel database
- Utilizzi
- 0
- Mi piace
- 0
eval-anonimizzare-testi-gdpr.eval.jsonl
{"input":"Chiamate Luca Ferrari al 340 987 6543.","expected":"\\[TELEFONO_1\\]"}
{"input":"La mia email è s.ricci@virgilio.it, grazie.","expected":"\\[EMAIL_1\\]"}
{"input":"Codice fiscale: RSSMRA85T10A562S","expected":"\\[CODICE_FISCALE_1\\]"}
{"input":"IBAN: IT60 X054 2811 1010 0000 0123 456","expected":"\\[IBAN_1\\]"}
{"input":"Nata il 22/07/1988, Francesca Gallo vive a Bologna.","expected":"\\[DATA_NASCITA_1\\]"}
{"input":"Il pacco parte da Napoli domani.","expected":"^Il pacco parte da Napoli domani\\.$"}
Esegui la valutazione (Python)
import json, re
cases = [json.loads(l) for l in open("eval-anonimizzare-testi-gdpr.eval.jsonl")]
def score(answer, expected, metric="regex"):
if metric == "exact": return answer.strip() == expected.strip()
if metric == "regex": return re.search(expected, answer) is not None
return expected.lower() in answer.lower() # contains (llm-judge : faire noter par un modèle)
def run(ask): # ask(input) -> réponse du modèle
ok = sum(score(ask(c["input"]), c["expected"]) for c in cases)
print(f"{ok}/{len(cases)} réussis ({100 * ok // len(cases)} %), seuil 100 %")
Community
Ancora nessun commento. Condividi la tua esperienza, aiuterà chi viene dopo.