Troppo spesso – in Italia è frequentissimo – si parla di intelligenza artificiale prefigurando perdita di posti di lavoro, morte e distruzione: a fronte di questo mood anti-tecnologico (e vagamente luddista) 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.
Parto da un modello sviluppato in Italia, per iniziare: per far comprendere l’intelligenza artificiale ho pensato di fare uso dei prodotti open source che sono disponibili per HugginFace, l’intelligenza artificiale basata su Python. Hugging Face è una società tecnologica nota per lo sviluppo di strumenti e risorse avanzate per l’elaborazione del linguaggio naturale (NLP). Fondata nel 2016, Hugging Face è 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. Un aspetto chiave dell’NLP è il riconoscimento di entità nominate (NER, Named Entity Recognition), che consiste nell’identificare e classificare automaticamente le entità menzionate in un testo, come persone, organizzazioni, luoghi e date. Questo processo è fondamentale per l’analisi automatica dei testi, permettendo di estrarre informazioni rilevanti in modo efficiente. In questo articolo, esploreremo come utilizzare il modello Italian_NER_XXL per il riconoscimento delle entità nominate in testi italiani, spiegando il codice passo per passo.
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.
Spiegazione con Codice funzionante
Ecco un esempio di come utilizzare il modello Italian_NER_XXL per il riconoscimento delle entità nominate in un testo italiano (fonte):
Usa il codice
189ed7ca010140fc2065b06e3802bcd5
per ricevere 5 € dopo l’iscrizione
from transformers import AutoTokenizer, AutoModelForTokenClassification
from transformers import pipeline
import torch
tokenizer = AutoTokenizer.from_pretrained("DeepMount00/Italian_NER_XXL")
model = AutoModelForTokenClassification.from_pretrained("DeepMount00/Italian_NER_XXL", ignore_mismatched_sizes=True)
nlp = pipeline("ner", model=model, tokenizer=tokenizer)
example = """Il commendatore Gianluigi Alberico De Laurentis-Ponti, con residenza legale in Corso Imperatrice 67, Torino, avente codice fiscale DLNGGL60B01L219P, è amministratore delegato della "De Laurentis 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."""
ner_results = nlp(example)
print(ner_results)
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
. Si tratta di un insieme di dati che viene scaricato in automatico dalla rete, visto che i loro creatori hanno pensato di metterlo disponibile per tutti. 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.
Cosa fa nella pratica il modello?
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 Laurentis 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. Ecco a cosa serve il software e come è plausibile (e utile) farne uso: 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
e così via. 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.
👇 Da non perdere 👇
- Domini Internet 🌍
- Informatica 🖥
- Mondo Apple 🍎
- Scrivere 🖋
- Sicurezza & Privacy 👁
- Spiegoni artificiali 🎓
- 💬 Il nostro canale Telegram: iscriviti
- 🔵 Stuxnet è il malware sfruttato per i sabotaggi industriali
- 🟢 Come funziona il WWW
- 🟠 Come utilizzare il tester per trovare i fili di fase e neutro