Il Natural Language Processing (NLP) è un particolare sistema di Intelligenza Artificiale che negli ultimi anni ha registrato un notevole progresso. Correttori di ortografia e traduzioni automatiche sono solo alcune delle molteplici applicazioni che questa innovativa tecnologia trova oggi.
Grazie al contributo di tecniche AI come Deep Learning e Machine Learning, l’NLP si sta facendo strada con grande rapidità, anche se il percorso è ancora lungo, considerando la complessità del linguaggio umano, ricco di espressioni gergali, modi di dire e dialetti.
Natural Language Processing in italiano significa “elaborazione del linguaggio naturale”. Dunque, tale tecnica AI cerca di sviluppare algoritmi capaci di analizzare e comprendere grandi quantità di dati di linguaggio naturale.
Gli studi sull’NLP vanno avanti ininterrotamente da quasi 70 anni e i moderni applicativi rendono evidente come questa tecnologia stia conquistando uno spazio sempre più importante.
È sufficiente pensare agli assistenti virtuali, ai chatbot, ai sistemi di navigazione per le auto e a tutti i sistemi con cui è possibile interagire per ricevere informazioni.
Proviamo allora a capire meglio cosa vuole dire Natural Language Processing, come funziona e quali sono i principali campi di utilizzo.
Cosa significa Natural Language Processing
Il Natural Language Processing è una branca interdisciplinare che unisce informatica, linguistica e Intelligenza Artificiale e si occupa dell’interazione tra i computer e il linguaggio umano.
In parole povere, l’obiettivo dell’NLP è lo sviluppo di appositi algoritmi AI per analizzare e capire il linguaggio naturale scritto oppure parlato.
Diversamente però dai comuni linguaggi di programmazione che seguono regole precise e sono semplici da interpretare per le macchine, la lingua umana non è così facile da rappresentare.
È in tal senso che entra in scena la linguistica computazionale che cerca di spiegare il funzionamento del linguaggio naturale, così da programmare software eseguibili su computer.
L’NLP offre soluzioni per studiare la struttura sintattica dei testi, mettendo in associazione singole parole con le rispettive categorie morfologiche, andando a classificarle poi in categorie precise ed estraendo relazioni semantiche e connessioni sintattiche.
Inoltre, l’NLP permette di apprendere la semantica del testo, interpretando il significato delle parole in relazione al contesto e ai modi d’uso (ironia, sarcasmo, umore…).
La ricerca nel campo inizia negli anni Cinquanta, quando Alan Turing scrive l’articolo Machine and Intelligence, dove propone il suo celebre test per valutare la capacità della macchina di mostrare comportamenti non distinguibili da quelli umani.
Fino agli anni Ottanta la gran parte degli studi sull’NLP hanno tentato di formalizzare all’interno dei computer i vocabolari e le regole del linguaggio naturale, senza però risultati apprezzabili. Infatti, la rigidità delle regole imposte non consentiva di gestire l’ambiguità lessicale e sintattica del linguaggio naturale.
A partire dagli anni Novanta sono state sviluppate le prime tecniche di NLP statistico, le quali hanno provato a risolvere le difficoltà legate agli approcci basati su regole apprendendo le preferenze lessicali da corpora molto vasti, cioè collezioni di testi orali o scritti legati a precisi contesti comunicativi.
Le metodologie di NLP statistico sono ancora ampiamente utilizzate, ma nonostante gli ottimi risultati ottenuti, permane comunque l’esigenza di affinare ulteriormente la capacità di comprensione automatica, avvicinandosi ai livelli espressi dall’essere umano. Questa è una sfida ancora aperta per tutti coloro che lavorano nel campo dell’NLP.
L’importanza del Natural Language Processing
Servendosi di udito e vista, gli esseri umani comunicano tra di loro rafforzando l’interazione non soltanto tramite le parole, ma anche con l’ausilio della gestualità che aiuta a comprendere il contesto.
Allo stesso modo, un software AI può disporre di microfoni, sensori acustici, sensori di immagini e tecniche di Deep Learning per ottenere dati che aiuteranno ad aumentare la propria consapevolezza situazionale, che altro non è che la capacità di valutare l’ambiente circostante rispetto al tempo e allo spazio per prevenire eventuali minacce.
Dunque, un sistema NLP fornito di occhi/orecchie elettroniche può diventare un’interfaccia uomo-macchina molto più intelligente e potente.
Infatti, percepire i gesti umani sarà utile per capire a cosa si riferisce l’interlocutore o cosa sta indicando. Ecco allora che l’NLP diventa un valido alleato per migliorare il livello di comprensione del discorso.
Il National Language Processing riveste una certa importanza nel mondo odierno soprattutto per l’enorme quantità di dati non strutturati che sono prodotti ogni giorno.
Ci sono moltissime aziende, persone e attività che generano dati di questo tipo, composti da file di testi scritti, conversazioni in chat, referti, cartelle cliniche e tanto altro. Molte di queste informazioni sono catalogate in database e storage e fino a pochi anni fa era complesso analizzarli in maniera efficace.
Oggi invece tutto ciò diventa molto più agevole per merito di tecnologie avanzate come l’NLP di ultima generazione che può agire senza interruzioni e fornire analisi rapide e precise.
Ecco allora che i sistemi NLP hanno un peso sempre maggiore nelle differenti realtà di business per rendere più razionale l’operatività aziendale ed incrementare la produttività dei dipendenti.
In che modo agisce il Natural Language Processing
Il Natural Language Processing presuppone una serie di fasi che provano a superare le ambiguità del linguaggio naturale. Si tratta di un processo abbastanza delicato a causa delle caratteristiche intrinseche del linguaggio umano stesso.
Espressioni idiomatiche, metafore, elementi grammaticali, parole con lo stesso suono e molti altri fattori rendono il nostro linguaggio scritto e orale molto complicato da interpretare in tutti i diversi significati.
I sistemi NLP sono in grado di muoversi in questo ambito così difficile, individuando con rapidità i differenti elementi linguistici. Ciò è possibile grazie ad una pre-elaborazione dei dati volta a semplificarli e renderli in una forma che il computer sia capace poi di analizzare, così da assegnare un significato al linguaggio umano.
Per tentare di ridurre al minimo il numero di errori, il processo di elaborazione viene diviso in più operazioni. Vediamo quali sono quelle più importanti.
Tokenizzazione
Il processo di elaborazione di un testo comincia dalla cosiddetta tokenization o tokenizzazione, la scomposizione in token, cioè in frasi, parole o unità semantiche più piccole. Tale fase non è particolarmente difficile, ma potrebbe presentare dei problemi.
Ad esempio, se il punto è considerato come la fine di una frase, c’è il rischio di errori poiché i punti possono anche riferirsi ad abbreviazioni, date o link.
Part of speech Tagging (POS)
Lo studio della morfologia in linguistica identifica informazioni sulla forma di ogni singola parola e sul ruolo che riveste dentro una frase. Invece il lessico costituisce l’insieme delle parole e dei modi di dire di una determinata lingua.
L’analisi morfologico-lessicale si basa su precise liste di lemmi e loro derivazioni, la classificazione delle parole secondo categorie specifiche e la risoluzione di forme di flessione.
L’esito di un processo del genere è definito Part of Speech Tagging (POS) e permette di individuare tra le parole quali sono nomi, sostantivi, verbi, pronomi, aggettivi e così via, catalogando ognuno con un particolare tag.
Parse tree
Tramite la sintassi di una lingua si può spiegare in che modo alcune serie di parole hanno un senso compiuto, mentre altre con le stesse parole e ordine differente, siano invece prive di senso.
Quindi l’analisi sintattica ha lo scopo di trovare le differenti parti che danno un significato alla frase, posizionando le parole in maniera corretta dentro una frase. Di solito la forma sintattica viene espressa come parse tree o albero sintattico.
Anche questo step dell’NLP presenta delle ambiguità di carattere sintattico e può creare non poche problematiche. In alcuni casi il contesto può districare certi dubbi, ma per le frasi molto articolate si possono generare altri alberi sintattici, con un aumento delle complessità.
Eliminazione delle stop word
Rimuovere le stop word, ovvero le parole più ricorrenti come congiunzioni, articoli e preposizioni, serve ad eliminare dal testo tutti gli elementi inutili ai fini dei risultati del motore di ricerca, conservando soltanto quelle che forniscono maggiori informazioni sul testo.
Gli algoritmi alla base del Natural Language Processing
Una volta completata la fase di pre-elaborazione dei dati, si può passare alla fase seguente che generalmente prevede lo sviluppo di un algoritmo capace di elaborare gli stessi dati.
Nel caso dell’NLP esiste una prima tipologia di algoritmi che appartengono ai sistemi rule-based, quelli fondati su regole linguistiche. Tali algoritmi sono stati i primi sviluppati agli inizi delle attività di NLP quando abbiamo parlato di NLP statistico.
L’approccio rule-based ha bisogno di creare un meccanismo di regole definito manualmente, partendo dalle strutture linguistiche comprese nel progetto. In questi sistemi basati su regole si può controllare se il sistema ha risposto alla domanda dell’utente e come ha replicato alla richiesta dei dati.
Il limite più evidente è che tale modo di approcciarsi necessita di nozioni di linguistica per codificare ogni regola.
Ciò significa che per comprendere una frase, il sistema NLP rule-based applica il gruppo di regole già codificato, provando a definire le relazioni tra parole. Altra importante categoria di algoritmi NLP è composta da quelli di Machine Learning (ML).
Diversamente dagli algoritmi rule-based, in questo caso non è richiesta la costruzione manuale di regole poiché tali algoritmi sono impostati secondo metodi statistici e riescono ad imparare in automatico attraverso un dataset di allenamento, per poi andare a scrivere le proprie regole di classificazione.
Gli ambiti d’applicazione del Natural Language Processing
Secondo la società di ricerche Straits Research, il giro d’affari legato alla tecnologia NLP ammontava a 13,5 miliardi di dollari nel 2021 ed entro il 2030 il totale potrebbe toccare i 91 miliardi di dollari, con un incremento annuale del 27%.
Lo sviluppo del mercato NLP è collegato soprattutto alla sempre più diffusa adozione di tale approccio in settori commerciali quali assistenza sanitaria, call center, sistemi di servizio clienti, cybersecurity e tanto altro.
Andando più nel dettaglio, vediamo quali sono le applicazioni principali per i sistemi NLP:
- Estrazione informazioni: da motori di ricerca si possono estrarre report e documenti che rispondono ad una richiesta espressa in linguaggio naturale. Si vanno quindi a ricercare tali dati estrapolandoli come output;
- Analisi delle e-mail aziendali: con l’NLP si possono riconoscere i messaggi indesiderati e suddividere per argomenti le e-mail in entrata;
- Sentiment Analysis: sistemi per l’individuazione del sentiment presente in un testo (triste, felice, positivo, negativo…) o sui social network;
- Traduzioni automatiche: l’NLP consente di sviluppare sistemi AI di traduzione automatica capaci di selezionare il significato delle parole secondo il contesto;
- Automatic Summarization: si tratta di soluzioni per fornire una sintesi di documenti di testo;
- Analisi fake-news: grazie all’NLP potrebbe diventare più facile intercettare le notizie giornalistiche non attendibili.