L’elaborazione del linguaggio naturale (NLP) è uno dei settori dell’intelligenza artificiale (AI) più in voga negli ultimi anni grazie ad applicazioni come i generatori di testo che creano testi coerenti, i chatbot che ingannano le persone facendole credere di stare parlando con un interlocutore umano e i programmi text-to-image che producono immagini fotorealistiche partendo da una descrizione testuale. Gli ultimi anni hanno portato una rivoluzione nella capacità dei computer di comprendere le lingue umane, i linguaggi di programmazione e persino le sequenze biologiche e chimiche, come il DNA e le strutture proteiche, che assomigliano al linguaggio. I più recenti modelli di intelligenza artificiale stanno sbloccando queste aree per analizzare i significati del testo in ingresso e generare risultati significativi ed espressivi.
In questo articolo andremo a comprendere cos’è l’elaborazione del linguaggio naturale e perché è così importante ai giorni nostri. Successivamente, analizzeremo alcuni dei principali campi applicativi in cui i modelli di NLP vengono impiegati.
Cos’è l’elaborazione del linguaggio naturale
L’elaborazione del linguaggio naturale (NLP) è la disciplina che si occupa di costruire modelli in grado di manipolare il linguaggio umano (o dati che lo ricordano) nel modo in cui viene scritto, parlato e organizzato. Si è evoluta dalla linguistica computazionale, che utilizza l’informatica per comprendere i principi del linguaggio, ma piuttosto che sviluppare modelli teorici, l’NLP è una disciplina ingegneristica che cerca di costruire una tecnologia per svolgere compiti utili. L’NLP può essere suddivisa in due sottocampi che si sovrappongono: la comprensione del linguaggio naturale (NLU), che si concentra sull’analisi semantica e/o sulla determinazione del significato del testo, e la generazione del linguaggio naturale (NLG), che si focalizza sulla generazione del testo da parte di un computer. L’NLP è distinto dal riconoscimento vocale, che cerca di analizzare il linguaggio parlato trasformando il suono in testo e viceversa.
Perché l’elaborazione del linguaggio naturale è importante?
L’NLP è, ormai, parte integrante della vita quotidiana e lo sta diventando sempre di più con l’applicazione della tecnologia linguistica a diversi settori come la vendita al dettaglio (ad esempio, nei chatbot del servizio clienti) e la medicina (interpretazione o sintesi delle cartelle cliniche elettroniche). Gli agenti di conversazione, come Alexa di Amazon e Siri di Apple, utilizzano l’NLP per ascoltare le domande degli utenti e trovare le risposte. Gli agenti più sofisticati, come GPT-3 e le sue evoluzioni, sono in grado di generare testi sofisticati su un’ampia varietà di argomenti e di alimentare chatbot in grado di tenere conversazioni coerenti. Google utilizza l’NLP per migliorare i risultati dei suoi motori di ricerca e i social network come Facebook la usano per individuare e filtrare i discorsi non idonei e offensivi.
L’NLP sta diventando sempre più sofisticato, ma c’è ancora molto lavoro da fare. I sistemi attuali sono soggetti a distorsioni e incoerenze e talvolta si comportano in modo irregolare. Nonostante le sfide, gli ingegneri dell’apprendimento automatico hanno molte opportunità di applicare l’NLP in modi sempre più rilevanti per il funzionamento della società.
Come viene usata l’elaborazione del linguaggio naturale?
L’NLP viene utilizzato per un’ampia varietà di compiti legati al linguaggio, tra cui rispondere a domande, classificare il testo in vari modi e conversare con gli utenti.
Di seguito analizziamo alcuni task che possono essere indirizzati dall’NLP
Sentiment analysis
La sentiment analysis è il processo di classificazione dell’intento emotivo di un testo. In genere, l’input di un modello di classificazione è un testo e l’output è la probabilità che il sentimento espresso sia positivo, negativo o neutro. In genere, questa probabilità si basa su caratteristiche generate a mano come gli n-grammi di parole, l’uso del TF-IDF o l’impiego di modelli di deep learning per catturare le dipendenze sequenziali a lungo e a breve termine. L’analisi del sentimento viene utilizzata per classificare le recensioni dei clienti su varie piattaforme online e per applicazioni di nicchia come l’identificazione di segni di malattia mentale nei commenti online.
La classificazione della tossicità
Questo è un ramo della sentiment analysis in cui l’obiettivo non è solo quello di classificare l’intento ostile, ma anche quello di individuare particolari categorie come minacce, insulti, oscenità e odio verso determinate identità. L’input di questo modello, come nella sentiment analysis, è un testo e l’output è generalmente la probabilità associata a ciascuna classe di tossicità. I modelli di classificazione della tossicità possono essere utilizzati per moderare e migliorare le conversazioni online, mettendo a tacere i commenti offensivi, rilevando i discorsi di odio o analizzando i documenti alla ricerca di diffamazione.
Traduzione automatica
Questo compito è focalizzato sull’automatizzare la traduzione tra diverse lingue. Google Translate e DeepL sono forse le applicazioni più famose e utilizzate. Tali modelli sono utilizzati per migliorare la comunicazione tra persone su piattaforme di social media. Gli approcci più efficaci sono in grado anche di distinguere tra parole con significati simili. Alcuni sistemi eseguono anche l’identificazione della lingua.
Named entity recognition
Questo processo mira ad estrarre le entità, appartenenti a categorie predefinite, presenti in un testo come nomi di persone, organizzazioni, luoghi e quantità. L’output generato da questi modelli è costituito dalle varie entità denominate con le loro posizioni all’interno del testo originale. Il riconoscimento delle entità è utile in applicazioni come la sintesi di articoli di cronaca e la lotta alla disinformazione. Di seguito riportiamo un esempio di output di un modello.
Spam detection
Il rilevamento dello spam è un problema di classificazione binaria prevalente in NLP, il cui scopo è classificare le email come spam o meno. I rilevatori di spam utilizzano non solo il testo di un’email ma, di solito, anche altre informazioni quali il titolo dell’email, il nome e l’email del mittente. Il loro scopo è quello di fornire una probabilità che la mail sia spam o meno. I provider di posta elettronica come Gmail utilizzano questi modelli per fornire una migliore esperienza all’utente, rilevando le email non richieste e indesiderate e spostandole nella cartella spam.
Correzione degli errori grammaticali
I modelli di questa categoria codificano le regole grammaticali per correggere un testo. Questo è visto principalmente come un compito sequenza-sequenza, in cui un modello viene addestrato su una frase sgrammaticata come input e su una frase corretta come output. I controllori grammaticali online, come Grammarly, e i sistemi di videoscrittura, come Microsoft Word, utilizzano questi sistemi per fornire una migliore esperienza di scrittura ai loro clienti. Anche le scuole li utilizzano per valutare gli elaborati degli studenti.
Topic modeling
Questo task è un’attività di text mining non supervisionata che prende una collezione di documenti e scopre gli argomenti trattati. L’output ottenuto è un elenco di argomenti che definisce le parole per ogni argomento e le proporzioni di assegnazione di ogni argomento a ciascun documento della collezione. Esistono diverse tecniche. Ad esempio, la Latent Dirichlet Allocation (LDA), una delle tecniche più popolari, cerca di vedere un documento come una collezione di argomenti e un argomento come una collezione di parole.
Generazione di testo
La generazione di testo, più formalmente nota come generazione di linguaggio naturale (NLG), produce un testo simile a quello scritto dall’uomo. Tali modelli possono essere perfezionati per produrre testi di generi e formati diversi, tra cui tweet, blog e persino codice informatico. La generazione di testo è stata eseguita utilizzando processi Markov, LSTM, BERT, GPT-3, GPT-4, LaMDA e altri approcci. Viene utilizzato principalmente da due applicazioni, ma negli ultimi anni il loro utilizzo si sta molto ampliando. Le principali applicazioni sono:
- Autocomplete: in questo caso il modello prevede la parola successiva dopo quelle digitate dall’utente. Ad esempio, Google utilizza il completamento automatico per prevedere le query di ricerca. Uno dei modelli più famosi per il completamento automatico è GPT di OpenAI, che è stato utilizzato per scrivere articoli, testi di canzoni e molto altro.
- Chatbot: questi sistemi automatizzano una parte della conversazione, mentre un interlocutore umano fornisce l’altra parte della conversazione. Possono essere suddivisi nelle due categorie seguenti:
- Interrogazione del database: partendo da un database di domande e risposte l’utente umano lo interroga usando il linguaggio naturale.
- Generazione di conversazioni: questi chatbot possono simulare un dialogo con un interlocutore umano. Alcuni sono in grado di avviare conversazioni di ampio respiro. Un esempio di alto profilo è LaMDA di Google, che ha fornito risposte così simili a quelle umane alle domande che uno dei suoi sviluppatori era convinto che avesse dei sentimenti.
Information retrieval
L’information retrieval cerca i documenti più rilevanti per una query. Questo è un problema che ogni sistema di ricerca e raccomandazione deve affrontare. L’obiettivo non è rispondere a una particolare domanda, ma recuperare, da una collezione di documenti (anche molto grande) i documenti più rilevanti relativamente alla query effettuate. I sistemi di information retrieval eseguono principalmente due processi: l’indicizzazione e il confronto. Uno dei software classici in questo ambito è Elasticsearch che però non usa modelli di linguaggio naturale. Nei sistemi moderni più complessi, l’indicizzazione viene effettuata con un modello di spazio vettoriale attraverso Two-Tower Networks, mentre il confronto viene effettuato, come in Elasticsearch, utilizzando punteggi di somiglianza o di distanza. Google ha recentemente integrato la sua funzione di ricerca con un modello di recupero delle informazioni multimodale che lavora con dati di testo, immagini e video.
Summarization
L’obiettivo di questo task è di abbreviare un testo o una collezione di documenti per evidenziare le informazioni più rilevanti. I ricercatori di Salesforce hanno sviluppato un sintetizzatore che valuta anche la coerenza dei fatti per garantire l’accuratezza del risultato. La riepilogazione si divide in due classi di metodi:
- Il riassunto estrattivo si concentra sull’estrazione delle frasi più importanti da un testo lungo e sulla loro combinazione per formare un riassunto. In genere, il riassunto estrattivo assegna un punteggio a ogni frase di un testo in ingresso e poi seleziona le frasi più rilevanti per formare il riassunto.
- Il riassunto astratto, invece, produce un riassunto parafrasando il testo originale. È simile alla stesura di un riassunto da parte di un essere umano che include parole e frasi non presenti nel testo originale. Questa tipologia di riassunto è solitamente modellata come un task sequenza-sequenza, in cui l’input è un testo lungo e l’output è un riassunto.
Question answering
In questo caso il modello deve rispondere alle domande poste dagli esseri umani in un linguaggio naturale. Uno degli esempi più significativi di risposta alle domande è stato Watson, che nel 2011 si è esibito nel gioco televisivo Jeopardy contro campioni umani, vincendo con margini considerevoli. In generale, i compiti di risposta alle domande sono di due tipi:
- Scelta multipla: il problema delle domande a scelta multipla è composto da una domanda e da una serie di possibili risposte. Il compito di apprendimento consiste nello scegliere la risposta corretta.
- Dominio aperto: Nella risposta a domande a dominio aperto, il modello fornisce risposte a domande in linguaggio naturale senza alcuna opzione, spesso interrogando un gran numero di testi.
2 risposte