Troppo spesso si parla di intelligenza artificiale prefigurando perdita di posti di lavoro, morte e distruzione: a fronte di questo mood anti-tecnologico (di ispirazione luddista, il movimento politico contrario alle nuove tecnologie) ho deciso di aprire un ciclo di articoli che spiegano nel dettaglio come possono essere utili le intelligenze artificiali, perchè non demonizzarle e via dicendo. La caratteristica di queste spiegazioni è che cercherò di renderle accessibili per tutti, proponendo esempi più semplici possibili. Partiamo da un caso studi che mi sembra piuttosto interessante per gli studi legali.
Si tratta di un modello sviluppato in Italia: ho pensato di fare uso dei prodotti open source (generalmente gratuiti) che sono disponibili per HugginFace, l’intelligenza artificiale basata su Python.
Hugging Face, per inciso, è una società tecnologica nota per lo sviluppo di strumenti e risorse avanzate per l’elaborazione del linguaggio naturale (NLP). Fondata nel 2016, è diventata una delle piattaforme più importanti nel campo dell’AI e del NLP grazie alla sua libreria open-source
transformers
e alla sua community attiva di sviluppatori e ricercatori.
L’elaborazione del linguaggio naturale (NLP) è un campo dell’intelligenza artificiale che si concentra sull’interazione tra computer e linguaggio umano. Nell’ambito degli studi legali, può essere utilizzata per sintetizzare lunghi documenti di settore e trarre le opportune conclusioni, ovviamente in modo assistito da un esperto come un avvocato.
Un aspetto chiave dell’NLP, in genere, è il riconoscimento di entità (dette anche NER, Named Entity Recognition), il che consiste nell’identificare e classificare automaticamente le entità menzionate in un testo, quali persone, organizzazioni, luoghi e date. Questo processo è fondamentale per l’analisi automatica dei testi, permettendo di estrarre informazioni rilevanti in modo efficiente per poterle – ad esempio – inserire in un database SQL. In questo articolo esploreremo come utilizzare il modello Italian_NER_XXL per il riconoscimento delle entità nominate in testi scritti in lingua italiana, spiegando il codice passo per passo.
Come funziona Transformers (e Hugging Face)
Hugging Face e la sua libreria
transformers
sono utilizzati in una vasta gamma di applicazioni pratiche:
- Analisi dei Testi: Estrazione automatica di informazioni, analisi del sentiment, classificazione dei testi.
- Assistenza Virtuale: Chatbot intelligenti e assistenti virtuali che comprendono e rispondono al linguaggio naturale.
- Traduzione Automatica: Traduzione di testi da una lingua all’altra.
- Generazione di Testi: Creazione automatica di contenuti scritti, come articoli, descrizioni di prodotti, e riassunti.
Nello specifico, ecco un esempio di come utilizzare il modello Italian_NER_XXL per il riconoscimento delle entità nominate in un testo italiano (il modello utilizzato per gli avvocati si trova qui). Si tratta di un set di dati che viene scaricato in automatico dalla rete, visto che i loro creatori hanno pensato di metterlo disponibile per tutti, per l’ambito della comprensione e parserizzazione del testo scritto in termini giuridici o formali / burocratici.
Di seguito riportiamo il codice Python 3 per utilizzarlo.
from transformers import AutoTokenizer, AutoModelForTokenClassification
from transformers import pipeline
import torch
tokenizer = AutoTokenizer.from_pretrained("DeepMount00/Italian_NER_XXL") # crea un tokenizer
model = AutoModelForTokenClassification.from_pretrained("DeepMount00/Italian_NER_XXL", ignore_mismatched_sizes=True) # includi il modello
nlp = pipeline("ner", model=model, tokenizer=tokenizer) # crea un NLP
testo = """Il commendatore Gianluigi Alberico De Laurentis-Ponti, con residenza legale in Corso Imperatrice 67, Torino,
avente codice fiscale DLNGGL60B01L219P, è amministratore delegato della "De Pimpis Advanced Engineering Group S.p.A.",
che si trova in Piazza Affari 32, Milano (MI);
con una partita IVA di 09876543210, la società è stata recentemente incaricata
di sviluppare una nuova linea di componenti aerospaziali per il progetto internazionale di esplorazione di Marte."""
risultati = nlp( testo )
print( risultati )
Questo codice può essere facilmente spiegato in questi termini: le prime tre righe sono di importazione, quindi servono a includere all’interno del codice tutto quello che ci serve per far funzionare il seguito. Nella riga dove c’è scritto tokenizer = abbiamo la creazione di un’istanza di variabile che contiene il modello
Italian_NER_XXL
.
Una volta scaricati i dati il modello viene stanziato nella riga successiva a partire da un modello pre addestrato (pre-trained), e subito dopo viene creato un LP che fa uso dei parametri indicati.
Viene poi riferita a una stringa di esempio, che presenta tre apici iniziali perché all’interno del testo sono presenti apostrofi e per problemi di parsing della stringa non è possibile fare diversamente: per capire cosa fa l’intelligenza artificiale in questo caso, quindi, parte dal testo in italiano di esempio (potrebbe essere questo o qualsiasi altro in forma simile):
Il commendatore Gianluigi Alberico De Laurentis-Ponti, con residenza legale in Corso Imperatrice 67, Torino,
avente codice fiscale DLNGGL60B01L219P, è amministratore delegato della "De Pimpis Advanced Engineering Group S.p.A.",
che si trova in Piazza Affari 32, Milano (MI);
con una partita IVA di 09876543210, la società è stata recentemente incaricata
di sviluppare una nuova linea di componenti aerospaziali per il progetto internazionale di esplorazione di Marte.
Si tratta di un testo tratto da un documento ufficiale di natura legale, dal quale l’intelligenza artificiale riuscirà a tirare fuori in forma strutturata i dati che lo compongono – cosa che sarebbe piuttosto faticosa da fare a mano.
Nello specifico, l’intelligenza artificiale riuscirà ad estrarre i dati in forma strutturata del tipo:
- Nome e cognome:
Gianluigi Alberico De Laurentis-Ponti
- Residenza legale:
Corso Imperatrice 67, Torino
- Codice Fiscale:
DLNGGL60B01L219P
I dati in forma strutturata possono poi essere incluso all’interno di un database continuando a scrivere del codice ad esempio, possono essere emessi dentro un file Excel e molto altro. Nella forma originale di testo strutturato in italiano tutto questo ovviamente non sarebbe stato possibile, e la programmazione tradizionale in questi casi non c’è di aiuto perché è necessario fare uso di un modello addestrato.
Dettagli tecnici sul modello
Italian_NER_XXL
Il modello si basa sull’architettura BERT, una delle tecnologie più avanzate nel campo del Natural Language Processing (NLP). Per la sua formazione sono state impiegate tecniche all’avanguardia, garantendo precisione ed efficienza di alto livello. Questa scelta tecnologica garantisce una comprensione profonda e sofisticata del linguaggio naturale.
Il modello Italian_NER_XXL è un avanzato sistema di riconoscimento di entità nominate (NER) sviluppato per la lingua italiana. Basato sull’architettura BERT, è in grado di identificare 52 diverse categorie di entità, coprendo ambiti come finanza, legale, medico e tecnologico.
Caratteristiche principali:
-
Architettura e tecnologia: Utilizza BERT, una delle tecnologie più avanzate nel campo dell’elaborazione del linguaggio naturale, garantendo un’accurata comprensione del testo.
-
Categorie riconosciute: Il modello può identificare una vasta gamma di entità, tra cui nomi, cognomi, indirizzi, valute, codici fiscali, numeri di telefono, indirizzi IP, email, professioni, malattie, farmaci, leggi, banche, marchi e molte altre.
👇 Contenuti da non perdere 👇
- Cellulari 📱
- Gratis 🎉
- Internet 💻
- Meteo
- Reti 💻
- Scrivere 🖋
- Sicurezza & Privacy 👁
- 💬 Il nostro canale Telegram: iscriviti
- 🟢 Strumenti APM (Application Performance Management): guida introduttiva all’uso
- 🔴 Come registrare un dominio per la prima volta
- 🔵 Hosting per e-commerce: guida orientativa