Cos'è l'elaborazione del linguaggio naturale?
L'elaborazione del linguaggio naturale è una forma di apprendimento automatico che consente alle persone di comunicare con l'intelligenza artificiale (AI) utilizzando il linguaggio umano.
Panoramica dell'elaborazione del linguaggio naturale
Panoramica e definizione dell'NLP
L'elaborazione del linguaggio naturale (NLP) è un affascinante ramo dell'AI che consente alle persone e alle macchine di comunicare tra loro utilizzando il linguaggio corrente. Il modo in cui si impartiscono comandi vocali a Siri o si ottengono traduzioni su Google sono entrambi esempi di NLP in azione che dimostrano la capacità del software di comprendere e rispondere al linguaggio umano.
Come si relaziona l'NLP con l'AI?
La maggior parte delle persone non sono programmatori o utenti software esperti, ed è proprio questo uno dei motivi dell'utilità dell'elaborazione del linguaggio naturale. Il software può avere una curva di apprendimento ripida, ma l'NLP consente a tutti di utilizzare software anche complessi senza dover diventare esperti. Con l'NLP puoi infatti descrivere semplicemente ciò che desideri a un dispositivo AI nello stesso modo in cui lo spiegheresti ad un amico.
Il termine AI copre una vasta gamma di tecnologie, ma il ramo NLP si concentra sulle sfide del linguaggio umano. Per essere veramente utili, le soluzioni NLP devono fare di più che limitarsi a cogliere le parole che vengono dette. I sistemi NLP devono comprendere il contesto e l'intento dietro le parole. A tale scopo, gli sviluppatori di NLP utilizzano anche altre tecnologie di AI come il machine learning e il deep learning.
Perché l'elaborazione del linguaggio naturale è importante?
L'elaborazione del linguaggio naturale consente di utilizzare tecnologie che altrimenti potrebbero essere difficilmente accessibili. Permette inoltre ai computer di comprendere il testo e la parola a un livello irraggiungibile prima dell'avvento dell'NLP. Ecco alcuni dei vantaggi dell'LNP:
L'NLP aiuta le persone ad essere più produttive
In ambito lavorativo, l'elaborazione del linguaggio naturale può aumentare l'efficienza consentendo di utilizzare l'automazione per attività ripetitive o che richiedono tempo. Ad esempio, un reparto di assistenza clienti potrebbe utilizzare chatbot basati su NLP per gestire le richieste di routine dei clienti. Oppure, un reparto contabilità potrebbe utilizzare sistemi abilitati per l'NLP per estrarre informazioni chiave dalle fatture e dalle ricevute e utilizzarle per compilare database o fogli di calcolo.
L'automazione dell'inserimento e dell'elaborazione dei dati offre anche altri vantaggi, consentendo, ad esempio, di ridurre il rischio di errore umano e velocizzare i flussi di lavoro. Se il sistema è in grado di comprendere il linguaggio umano con un livello sufficiente per occuparsi delle attività di base, l'utente può concentrarsi su task a valore aggiunto incrementando la produttività.
L'NLP migliora la customer experience
Se nel tentativo di raggiungere telefonicamente un'azienda, rischi di perderti nei meandri di una struttura gerarchica confusa, significa che il sistema di risposta vocale interattivo utilizzato non è stato addestrato accuratamente. Al contrario, un chatbot NLP ben addestrato può offrire ai clienti un'esperienza più intuitiva. Un sito di e-commerce con un sistema abilitato per l'NLP, ad esempio, può analizzare le pagine visitate da un cliente alla ricerca di un determinato prodotto. Comprendendo a quali prodotti è interessato, il sistema sarà in grado di suggerire al cliente i prodotti che potrebbero rispondere alle sue aspettative.
I chatbot del servizio clienti basati su NLP migliorano l'experience rispondendo alle domande o risolvendo prontamente eventuali problemi. Questi chatbot possono essere configurati in modo da poter disporre dello storico completo delle interazioni di un cliente e poter riconoscere i problemi con i quali il cliente ha avuto a che fare in passato.
L'NLP crea nuovi insight
Quando invii un'e-mail a un'azienda per fare una domanda, offrire consigli o inserire un reclamo, potresti avere la sensazione che il tuo messaggio non verrà mai nemmeno letto. Il tuo dubbio potrebbe essere legittimo, perché poche aziende hanno il tempo di leggere ogni singolo feedback che ricevono. Ma l'AI abilitata per l'NLP ce l'ha. È in grado di passare al setaccio enormi set di dati, ad esempio le conversazioni dei clienti sui siti web. Fornendo una sintesi attendibile di tali conversazioni, mette l'azienda nelle condizioni di risolvere il problema.
Come funziona l'elaborazione del linguaggio naturale?
Ecco come l'NLP consente il dialogo tra esseri umani e macchine. I passaggi descritti di seguito si riferiscono alla lingua scritta. L'NLP per la lingua parlata è un po' diverso, pur seguendo gli stessi principi generali.
Usiamo questa frase inglese come esempio per mostrare come funziona il processo:
“I like demonstrating how natural language processing works.”
L'algoritmo inizia con la pre-elaborazione del testo.
Pre-elaborazione del testo
La pre-elaborazione del testo consiste nella semplificazione del testo creato dall'utente così da facilitare il compito di elaborazione del linguaggio umano da parte degli algoritmi NLP.
- Tokenizzazione
La tokenizzazione consiste nel suddividere le parole e la punteggiatura della frase in token. La suddivisione in token è importante perché gli algoritmi NLP rielaborano in maniera più efficace i singoli token rispetto al testo complessivo quando devono svolgere attività come l'indicizzazione o la ricerca. La frase campione contiene otto parole: “I like demonstrating how natural language processing works.” Include anche un punto, quindi si ottengono otto token per le parole e uno per il punto, per un totale di nove token.
- Lowercasing
Il processo di lowercasing si riferisce alla conversione di tutti i token in token minuscoli per semplificare il set di dati. Nella frase di esempio, uno dei token era "I". Per evitare ambiguità e aumentare l'efficienza, la fase di lowercasing converte il token dal maiuscolo "I" al minuscolo "i". Le regole per la conversione da maiuscolo a minuscolo diventano più complicate in altre parti del processo.
- Rimozione delle parole non significative
Un altro modo di semplificare il testo per l'elaborazione del linguaggio naturale è quello di rimuovere le parole non significative. Nella frase di esempio, parole come “i” e “how” sarebbero tipicamente classificate come parole non significative. Quando l'algoritmo le rimuove, restano sette token, che sono “like”, “demonstrating”, “natural”, “language”, “processing”, “works” e “.”.
- Stemming e lemmatizzazione
Anche con i sette token rimasti c’è spazio per una maggiore semplificazione. Lo stemming consiste nella riduzione della forma inflessa di una parola a un cosiddetto "tema" o forma radice. Il token “demonstrating” ha come radice “demonstr”, allo stesso modo “natural” si forma da “natur,” quindi il modello sostituisce i token originali con le radici “demonstr” e “natur”.
Una parola può avere significati diversi in diversi contesti, e la lemmatizzazione è il processo di determinazione del giusto significato in un determinato contesto. La frase di esempio include "like", che può significare "piacere" o "simile a". In questo caso, la lemmatizzazione comporterebbe l’assegnazione del contesto in cui “like” significa “piacere”.
Rappresentazione testuale
Il passo successivo è la rappresentazione testuale che consiste nel convertire le parole in un formato numerico che la macchina può elaborare. Oltre ai numeri, il testo può essere convertito in vettori o incorporamenti, formati più complessi che forniscono informazioni come il contesto.
- Borse di parole (BoW, Bags of Words)
I computer sono molto bravi a contare e la misurazione BoW conta quante volte una parola appare in un documento. Se in un documento compaiono più frequentemente le parole squadra, gioco e punteggio, ad esempio, è più probabile che il contesto sia sportivo. Nella frase di esempio è presente una sola istanza di ogni parola. La rappresentazione BoW mostrerebbe che ogni parola ricorre una sola volta come segue:
{“i”: 1, “like”: 1, “demonstrating”: 1, “how”: 1, “natural”: 1, “language”: 1, “processing”: 1, “works”: 1}
- TF-IDF (term frequency-inverse document frequency) (frequenza del termine - frequenza inversa del termine)
La funzionalità TF-IDF utilizza una formula basata sulla frequenza con cui una parola appare in un set di dati complessivo composto da molti documenti per determinare l'importanza della parola. Più frequentemente compare una parola, minore è il suo peso TF-IDF, e meno importante è in un singolo documento. Parole come “the” e “a” appaiono abbastanza spesso, e quindi sono meno importanti. La rappresentazione dei pesi delle parole della frase di esempio in questo tipo di formato dimostrerebbe che le parole più comuni hanno un peso più basso e le parole non comuni hanno un peso più alto:
{“i”: 0.1, “like”: 0.1, “demonstrating”: 0.3, “how”: 0.1, “natural”: 0.2, “language”: 0.2, “processing”: 0.5, “works”: 0.1}
Analisi del testo
È la fase in cui l'algoritmo NLP estrae il significato dal testo. Con questa funzione l'algoritmo riesce a produrre risposte appropriate alla query dell'utente.
- Riconoscimento di entità nominate (NER, Named entity recognition)
Dopo aver condotto alcune analisi quantitative, gli algoritmi NLP cercano le parole che identificano qualcosa di riconoscibile. In inglese, ad esempio, la parola mela si riferisce a un tipo di frutto, ma la parola Apple si riferisce a una specifica azienda, e un algoritmo NLP ha bisogno di un modo per riconoscere la differenza. La frase di esempio, "I like demonstrating how natural language processing works", include l'espressione "elaborazione del linguaggio naturale", che le persone potrebbero riconoscere come denominazione di una tecnologia di AI. La rappresentazione sarebbe la seguente:
Output NER: [("elaborazione in linguaggio naturale", "tecnologia")]
- Analisi del sentiment
Alcuni set di dati, come il catalogo delle parti di un tosaerba, potrebbero non avere un tono emotivo significativo, mentre il tono emotivo di una recensione cinematografica potrebbe essere molto marcato. Se un set di dati possiede un certo tono, l'analisi del sentiment è la fase dell'elaborazione del linguaggio naturale in cui questo viene colto. Per la frase di esempio, l'analisi del sentiment potrebbe essere la seguente:
Output di sentiment: positivo
Analisi sintattica (parsing)
Ogni frase ha una struttura grammaticale. Il parsing è il processo di analisi di questa struttura con l'identificazione di sostantivi, verbi, soggetti, ecc. Poiché le diverse lingue utilizzano sintassi diverse, l'analisi sintattica è vitale per la traduzione automatica. Per la frase di esempio, l'analisi sintattica potrebbe generare questo risultato:
Albero di sintassi: (ROOT (S (NP (PRP I)) (VP (VBP like) (S (VP (VBG demonstrating) (SBAR (WHADVP (WRB how)) (S (NP (NNP Natural) (NNP Language) (NNP Processing)) (VP (VBZ works)))))))))
A seconda dell'algoritmo specifico, potrebbero servire fasi supplementari. Il risultato è una conversazione in cui la macchina sembra capire le parole e le intenzioni e risponde in un linguaggio naturale.
Alcuni esempi di attività di elaborazione del linguaggio naturale:
Controllo di un drone con comandi vocali
Anche la tecnologie più potenti hanno un valore limitato se non si sa come usarle. L'elaborazione del linguaggio naturale rende la tecnologia più accessibile. Riduce la necessità di conoscenze tecniche specializzate per trarre vantaggio da software o hardware avanzati. Gli utenti possono interagire con i sistemi abilitati per l'NLP conversando in modo naturale invece di utilizzare comandi complessi, codici o controlli fisici.
Ad esempio, un'applicazione di controllo a distanza per piccoli droni può permetterti di dire semplicemente a un drone di eseguire un movimento, ad esempio un flip in aria, senza dover imparare la complessa serie di comandi altrimenti necessaria. La capacità di utilizzare semplici comandi vocali consente a un maggior numero di persone di utilizzare la tecnologia.
Insight più fruibili per la gestione del brand
Le persone esprimono i loro pensieri e le loro preferenze ogni giorno, e le aziende hanno accesso a gran parte di questi dati. Le aziende utilizzano già i dati, ad esempio i fatturati, per comprendere alcuni aspetti del comportamento dei clienti. Con le soluzioni di elaborazione del linguaggio naturale, i computer possono anche trasformare le conversazioni sui social media e le recensioni dei clienti online in informazioni fruibili.
Gli insight prodotti con l'NLP sono informazioni diverse rispetto a quelle che si ricavano attraverso i metodi tradizionali di analisi delle vendite. Mentre l'azienda sfrutta i dati di vendita per acquisire insight operativi come le previsioni o le informazioni sulla gestione delle risorse, l'analisi basata sull'NLP può dimostrarsi persino più efficace se applicata per finalità di gestione del brand o di miglioramento della customer experience.
Prevenzione del sovraccarico di informazioni
Se utilizzi un indirizzo e-mail per lavoro, sarai inevitabilmente sommerso di informazioni. Un dipendente medio riceve più di 120 e-mail al giorno, quindi non sorprende che circa il 60% dei dipendenti ignorino semplicemente le e-mail interne dell'azienda. Tuttavia, se la tua applicazione di posta elettronica possiede funzionalità NLP, potresti sfruttarle per evitare il sovraccarico di informazioni. Affidati all'NLP per filtrare, classificare e prioritizzare le tue e-mail facendo in modo che quelle più importanti ricevano l'attenzione necessaria.
Allo stesso modo, i sistemi NLP integrati nel software di collaborazione possono trascrivere e riassumere le riunioni e persino individuare e i punti chiave affrontati durante un'assemblea o relazionare sulle linee di azione assegnate. Questo tipo di automazione abilitata dall'NLP consente di risparmiare tempo e aumentare l'efficienza organizzativa complessiva.
Casi di utilizzo dell'elaborazione del linguaggio naturale
L'NLP sta trasformando tutti i settori industriali. Le applicazioni NLP potenziano l'efficienza dei dipendenti, migliorano la customer experience e incentivano un processo decisionale strategico che coinvolge un'ampia gamma di settori. Di seguito sono riportati alcuni casi di utilizzo degni di nota per l'NLP in diversi settori.
Analisi dei difetti: identificazione dei difetti comuni mediante l'analisi degli appunti dei tecnici, dei reclami dei clienti e delle richieste di garanzia
Comunicazione con i fornitori: approvvigionamento tempestivo dei materiali tramite l'analisi dei messaggi di posta elettronica e dei documenti dei fornitori
Rilevamento delle frodi: identificazione di anomalie sintomatiche di situazioni fraudolente attraverso il monitoraggio e l'analisi dei modelli di transazione
Accelerazione del commercio: automazione delle operazioni commerciali in base all'analisi dei dati in tempo reale
Documentazione clinica: trascrizione e gestione di note cliniche
Analisi dei dati del paziente: diagnosi informate tramite l'identificazione di pattern nelle cartelle cliniche del paziente
Analisi dei contratti e controlli di conformità: automazione delle revisioni dei documenti per verificarne la conformità normativa e di altro genere
Automazione dell'esibizione ai fini legali: isolamento rapido delle informazioni pertinenti da grandi quantità di documenti
Automazione dell'elaborazione delle richieste: estrazione e convalida delle informazioni dai moduli di richiesta e dai referti medici inviati
Valutazione del rischio: valutazioni del rischio più accurate con l'estrazione automatica dei dati dalle cartelle cliniche e dai questionari sullo stile di vita
Analisi dei registri di manutenzione: analisi degli appunti degli addetti alla manutenzione per prevedere e prevenire guasti alle attrezzature
Interpretazione dei dati geologici: estrazione e riepilogo dei dati da fonti quali report geologici, registri delle perforazioni e ricerche
Ottimizzazione del catalogo degli immobili: creazione di descrizioni coinvolgenti basate sulle caratteristiche dell'immobile
Qualificazione dei lead: analisi delle domande via e-mail e online per stabilire le priorità in base alla disponibilità all'acquisto
Ottimizzazione dello stock: previsione della domanda attraverso l'analisi dei dati di vendita
Consigli di prodotto personalizzati: purchase experience più personalizzate basate sull'analisi dello storico degli acquisti
Approcci dell'elaborazione del linguaggio naturale
Gli approcci dell'elaborazione del linguaggio naturale possono essere suddivisi sostanzialmente in due grandi categorie. La prima delinea un approccio basato sulle regole, la seconda si avvale del machine learning.
NLP basata su regole
Questo approccio punta a identificare un insieme di regole linguistiche che un computer può seguire per comprendere e generare linguaggio umano in modo attendibile. È pertanto fortemente incentrato sugli aspetti linguistici della linguistica computazionale. Gli approcci basati sulle regole possono essere altamente efficaci se li si utilizza per set di dati con un linguaggio controllato e prevedibile, ad esempio per documenti legali o manuali tecnici.
NLP basata sul machine learning
Un approccio all'NLP basato sull'apprendimento automatico utilizza una varietà di metodi statistici e approcci algoritmici. Piuttosto che fissare regole a monte, l'obiettivo è creare le condizioni per consentire al computer di imparare a comunicare sulla base di set di dati sempre più sostanziosi. L'idea è che il computer arrivi ad elaborare una quantità sufficiente di esempi di linguaggio umano da consentirgli di identificare gli schemi più caratteristici di un linguaggio umano di qualità. Se si dispone di set di dati di dimensioni sufficientemente grandi, questo tipo di approccio NLP basato sul machine learning può dimostrarsi notevolmente flessibile ed estremamente efficace.
Breve storia dell'elaborazione del linguaggio naturale
L'elaborazione del linguaggio naturale come ramo dell'intelligenza artificiale inizia a svilupparsi negli anni quaranta. Negli anni Ottanta e Novanta, le soluzioni di calcolo diventano più potenti e il machine learning inizia a maturare. Più recentemente, la comparsa del deep learning, delle reti neurali e di varie forme di AI generativa ha completamente trasformato l'elaborazione del linguaggio naturale.
Eventi nell'evoluzione dell'NLP
- 1940 | Appaiono i primi sviluppi di NLP, tra cui il Memorandum Weaver sulla traduzione automatica
- 1950 | Viene introdotta la “grammatica universale” con la proposta del test di Turing; fa la sua comparsa il deep learning
- 1960 | Vengono introdotti i chatbot ELIZA e le teorie linguistiche alla base dell'NLP evolvono
- 1970 | Viene teorizzata la grammatica dei casi e vengono introdotte le reti semantiche; i sistemi basati su regole maturano e proliferano i chatbot
- 1980 | Vengono sviluppati i primi algoritmi di apprendimento; le tecnologie di riconoscimento vocale evolvono; la linguistica computazionale si espande e emerge la teoria RNN
- 1990 | Vengono presentati i modelli statistici e LSTM e la traduzione automatica guadagna terreno
- 2000 | Il machine learning si evolve rapidamente e si sviluppano i modelli linguistici neurali; grandi quantità di dati parlati e testuali diventano accessibili
- 2010s | I dati e le risorse di calcolo aumentano in modo significativo consentendo al deep learning di evolversi rapidamente
- 2020 | I modelli linguistici di grandi dimensioni, i modelli linguistici pre-addestrati e i trasformatori acquisiscono importanza
Panoramica delle tecnologie di elaborazione del linguaggio naturale
L'elaborazione del linguaggio naturale è un termine ombrello che copre una gamma di tecnologie e tecniche che consentono alle macchine di comprendere e generare linguaggio umano. Ognuna delle tecnologie che supportano l'NLP soddisfa almeno una di queste due funzionalità.
Sottocategorie dell'NLP
L'elaborazione del linguaggio naturale coinvolge una serie di tecnologie e tecniche. Lo scopo primario resta, tuttavia, quello di consentire alle macchine di comprendere e generare linguaggio umano. Queste due capacità sono le componenti principali dell'elaborazione del linguaggio naturale.
- Comprensione del linguaggio naturale (NLU): la comprensione del linguaggio naturale si concentra sulla comprensione e l'interpretazione del linguaggio umano. A tal fine, i sistemi NLU devono essere in grado di analizzare sintassi e semantica, e comprendere il modo in cui il contesto influisce sul significato nel linguaggio umano. Questa capacità si declina in varie forme, dalla comprensione di domande poste oralmente fino all'esecuzione di attività in risposta a istruzioni vocali.
- Generazione del linguaggio naturale (NLG): la generazione del linguaggio naturale si concentra sulla produzione di testi o discorsi in un linguaggio simile a quello umano. A tale scopo, i sistemi NLG devono essere in grado di trasformare i dati non strutturati in un linguaggio simile a quello umano, riuscendo quindi anche a sintetizzare informazioni fino a sostenere intere conversazioni in autonomia.
Il ruolo del machine learning nell'NLP
Cosa potrebbe fare un computer se potesse insegnare nuove competenze a sé stesso? Il machine learning consiste proprio in questo. L'apprendimento automatico si realizza quando un computer impara a svolgere attività da solo, senza istruzioni specifiche.
Nell'ambito dell'NLP, il machine learning interviene creando modelli che consentono sia la comprensione che la generazione del linguaggio naturale. Utilizza tecniche come l'apprendimento supervisionato i cui modelli di addestramento si basano su dati etichettati e l'apprendimento non supervisionato, ossia con modelli di addestramento basati su dati privi di etichette.
Il ruolo del deep learning nell'NLP
Il deep learning è una forma specifica di machine learning. Utilizza reti neurali che hanno più strati, ecco spiegato l'aggettivo "deep", profondo, presente nel nome. Il termine "learning", apprendimento, si riferisce all'uso di algoritmi che identificano e quindi convertono pattern complessi in set di dati. L'integrazione del deep learning nell'NLP è importante perché ne ha aumentato l'efficienza nello svolgimento di determinate attività, come le traduzioni, l'analisi del sentiment in un set di dati e la generazione di testi.
Come le reti neurali migliorano l'NLP
Le reti neurali si basano sull'idea che il cervello umano possa essere utilizzato come modello per l'elaborazione dei dati. Esse consentono ai sistemi NLP di mantenere un'accuratezza elevata sia nella comprensione che nella generazione del linguaggio umano. Le reti neurali possono presentare architetture diverse e sono fondamentali per abilitare applicazioni come gli assistenti virtuali, i chatbot o l'analisi del testo automatizzata.
Scopri cosa può fare l'NLP per la tua azienda
Conosci Joule: il copilot AI di SAP che può aiutarti a risolvere le sfide del business più impegnative in modo più rapido, intelligente e con risultati migliori. Semplicemente parlando.
Linguistica computazionale e NLP
La linguistica computazionale è il campo di studio che combina informatica e linguistica ponendole al servizio dell'elaborazione del linguaggio naturale e favorendo la creazione di una base teorica che consente al computer di comprendere il linguaggio umano.
- Sintassi
Studia la struttura delle frasi e le regole che rendono le frasi grammaticalmente esatte o inesatte.
Come esempio consideriamo la sintassi corretta della frase inglese: “The cat sits on the mat”.
Ora, la stessa frase, ma con la sintassi errata: “Cat the on mat sits.”
- Semantica
Studia il significato del linguaggio, incluso il modo in cui parole e frasi rappresentano oggetti, azioni e idee.
Frase: “The cat is on the mat.”
Interpretazione semantica: il significato è che c’è un gatto fisicamente situato sopra un tappeto.
- Pragmatica
Studia il modo in cui il contesto influenza l'interpretazione del linguaggio.
Frase: “Can you pass the salt?”
Interpretazione pragmatica: anche se è una domanda sull’abilità (verbo "can"), il contesto dimostra che la frase debba essere interpretata come una richiesta educata affinché qualcuno ti passi il sale.
La linguistica computazionale è importante perché collega i punti tra la teoria linguistica e le applicazioni reali dell'NLP.
Domande frequenti
Le 4 principali sottocategorie sono:
1. La comprensione del linguaggio naturale (NLU), basata sulla capacità dei computer di comprendere il significato e l'intento dietro il linguaggio
2. La generazione del linguaggio naturale (NLG) consente di ottenere testi leggibili dall'uomo a partire da dati strutturati
3. Il riconoscimento vocale converte la lingua parlata in lingua scritta
4. La sintesi vocale converte la lingua scritta (testo scritto) in lingua parlata