Elaborazione del linguaggio naturale (NLP)
Cos’è l’elaborazione del linguaggio naturale (NLP)?
L’elaborazione del linguaggio naturale (NLP) è la capacità di un programma per computer di comprendere il linguaggio umano parlato e scritto, ovvero il linguaggio naturale. È una componente dell’intelligenza artificiale (AI).
L’NLP esiste da oltre 50 anni e affonda le sue radici nel campo della linguistica. Ha una varietà di applicazioni nel mondo reale in numerosi campi, tra cui la ricerca medica, i motori di ricerca e la business intelligence.
L’NLP utilizza approcci basati su regole o di apprendimento automatico per comprendere la struttura e il significato del testo. Svolge un ruolo nei chatbot, negli assistenti vocali, nei programmi di scansione basati su testo, nelle applicazioni di traduzione e nei software aziendali che aiutano nelle operazioni aziendali, aumentano la produttività e semplificano diversi processi.
Come funziona l’elaborazione del linguaggio naturale?
L’NLP utilizza molte tecniche diverse per consentire ai computer di comprendere il linguaggio naturale come fanno gli esseri umani. Che la lingua sia parlata o scritta, l’elaborazione del linguaggio naturale può utilizzare l’IA per prendere input dal mondo reale, elaborarli e dargli un senso in un modo che un computer possa comprendere. Proprio come gli esseri umani hanno sensori diversi, come orecchie per sentire e occhi per vedere, i computer hanno programmi per leggere e microfoni per raccogliere l’audio. E proprio come gli esseri umani hanno un cervello per elaborare quell’input, i computer hanno un programma per elaborare i rispettivi input. A un certo punto dell’elaborazione, l’input viene convertito in codice che il computer può comprendere.
La pre-elaborazione dei dati comporta la preparazione e la pulizia dei dati di testo in modo che le macchine possano analizzarli. La pre-elaborazione mette i dati in una forma utilizzabile ed evidenzia le caratteristiche del testo con cui un algoritmo può lavorare. Ci sono diversi modi per farlo, tra cui i seguenti:
- Tokenizzazione. La tokenizzazione sostituisce le informazioni sensibili con informazioni non sensibili o un token. La tokenizzazione è spesso utilizzata nelle transazioni di pagamento per proteggere i dati delle carte di credito.
- Rimozione delle stop word. Le parole comuni vengono rimosse dal testo, quindi rimangono le parole uniche che offrono la maggior parte delle informazioni sul testo.
- Lemmatizzazione e stemming. La lemmatizzazione raggruppa diverse versioni flesse della stessa parola. Ad esempio, la parola “camminare” verrebbe ridotta alla sua forma radice, o stem, “camminare” per elaborare.
- Tagging delle parti del discorso. Le parole vengono taggate in base alla parte del discorso a cui corrispondono, come nomi, verbi o aggettivi.
Una volta che i dati sono stati preelaborati, viene sviluppato un algoritmo per elaborarli. Esistono molti algoritmi di elaborazione del linguaggio naturale diversi, ma i due tipi principali seguenti sono comunemente utilizzati:
- Sistema basato su regole. Questo sistema utilizza regole linguistiche attentamente progettate. Questo approccio è stato utilizzato all’inizio dello sviluppo dell’elaborazione del linguaggio naturale ed è ancora utilizzato.
- Sistema basato sull’apprendimento automatico. Gli algoritmi di apprendimento automatico utilizzano metodi statistici. Imparano a eseguire attività in base ai dati di formazione che vengono loro forniti e adattano i loro metodi man mano che vengono elaborati più dati. Utilizzando una combinazione di apprendimento automatico, apprendimento profondo e reti neurali, gli algoritmi di elaborazione del linguaggio naturale perfezionano le proprie regole tramite elaborazione e apprendimento ripetuti.
Perché l’elaborazione del linguaggio naturale è importante?
Le aziende utilizzano grandi quantità di dati non strutturati e ricchi di testo e hanno bisogno di un modo per elaborarli in modo efficiente. Gran parte delle informazioni create online e archiviate nei database sono linguaggio umano naturale e, fino a poco tempo fa, le aziende non erano in grado di analizzare efficacemente questi dati. Ecco dove l’elaborazione del linguaggio naturale è utile.
I vantaggi dell’elaborazione del linguaggio naturale possono essere visti quando si considerano le due affermazioni seguenti: “L’assicurazione del cloud computing dovrebbe essere parte di ogni contratto di servizio” e “Un buon SLA garantisce un sonno più tranquillo, anche nel cloud”. Se un utente si affida all’elaborazione del linguaggio naturale per la ricerca, il programma riconoscerà che il cloud computing è un’entità, che il cloud è una forma abbreviata di cloud computing e che SLA è un acronimo del settore per contratto di servizio.
Questi sono i tipi di elementi vaghi che compaiono frequentemente nel linguaggio umano e che gli algoritmi di apprendimento automatico sono stati storicamente scarsi nell’interpretare. Ora, con i miglioramenti nei metodi di apprendimento profondo e di apprendimento automatico, gli algoritmi possono interpretarli in modo efficace. Questi miglioramenti espandono l’ampiezza e la profondità dei dati che possono essere analizzati.
Allo stesso modo, l’elaborazione del linguaggio naturale è utile per le stesse ragioni di quando una persona interagisce con un chatbot AI generativo o un assistente vocale AI. Invece di dover usare una lingua specifica predefinita, un utente potrebbe interagire con un assistente vocale come Siri sul proprio telefono usando la sua dizione abituale, e l’assistente vocale sarebbe comunque in grado di capirlo.
Tecniche e metodi di elaborazione del linguaggio naturale
Sintassi e analisi semantica sono due tecniche principali utilizzate nell’elaborazione del linguaggio naturale.
La sintassi è la disposizione delle parole in una frase per dare un senso grammaticale. L’NLP utilizza la sintassi per valutare il significato di una lingua in base alle regole grammaticali. Le tecniche NLP di sintassi includono quanto segue:
Parsing
Questa è l’analisi grammaticale di una frase. Ad esempio, un algoritmo di elaborazione del linguaggio naturale riceve la frase “Il cane ha abbaiato”. L’analisi comporta la suddivisione di questa frase in parti del discorso, ovvero cane = sostantivo, abbaiato = verbo. Questo è utile per attività di elaborazione a valle più complesse.
Segmentazione delle parole
Questo è l’atto di prendere una stringa di testo e derivare da essa forme di parole. Ad esempio, una persona esegue la scansione di un documento scritto a mano in un computer. L’algoritmo può analizzare la pagina e riconoscere che le parole sono divise da spazi bianchi.
Suddivisione delle frasi
Questo pone dei confini di frase in testi di grandi dimensioni. Ad esempio, un algoritmo di elaborazione del linguaggio naturale riceve il testo “Il cane ha abbaiato. Mi sono svegliato”. L’algoritmo può usare la suddivisione delle frasi per riconoscere il punto che divide le frasi.
Segmentazione morfologica
Questo divide le parole in parti più piccole chiamate morfemi. Ad esempio, la parola untestably verrebbe suddivisa in [[un[[test]able]]ly], dove l’algoritmo riconosce “un”, “test”, “able” e “ly” come morfemi. Ciò è particolarmente utile nella traduzione automatica e nel riconoscimento vocale.
Stemming
Questo divide le parole con flessione in forme radicali. Ad esempio, nella frase “Il cane ha abbaiato”, l’algoritmo riconoscerebbe che la radice della parola “barked” è “bark”. Ciò è utile se un utente sta analizzando il testo per tutte le istanze della parola bark, così come tutte le sue coniugazioni. L’algoritmo può vedere che sono essenzialmente la stessa parola anche se le lettere sono diverse.
La semantica riguarda l’uso e il significato dietro le parole. L’elaborazione del linguaggio naturale applica algoritmi per comprendere il significato e la struttura delle frasi. Le tecniche semantiche includono quanto segue:
Disambiguazione del senso delle parole
Questo deriva il significato di una parola in base al contesto. Ad esempio, considera la frase “The pig is in the pen”. La parola penna ha significati diversi. Un algoritmo che utilizza questo metodo può comprendere che l’uso della parola qui si riferisce a un’area recintata, non a uno strumento di scrittura.
Riconoscimento di entità denominate (NER)
NER determina le parole che possono essere categorizzate in gruppi. Ad esempio, un algoritmo che utilizza questo metodo potrebbe analizzare un articolo di giornale e identificare tutte le menzioni di una determinata azienda o prodotto. Utilizzando la semantica del testo, potrebbe distinguere tra entità che sono visivamente uguali. Ad esempio, nella frase “Il figlio di Daniel McDonald è andato da McDonald’s e ha ordinato un Happy Meal”, l’algoritmo potrebbe riconoscere le due istanze di “McDonald’s” come due entità separate, una un ristorante e una una persona.
Generazione del linguaggio naturale (NLG)
NLG utilizza un database per determinare la semantica dietro le parole e generare nuovo testo. Ad esempio, un algoritmo potrebbe scrivere automaticamente un riepilogo dei risultati da una piattaforma di business intelligence (BI), mappando determinate parole e frasi alle caratteristiche dei dati nella piattaforma BI. Un altro esempio sarebbe la generazione automatica di articoli di notizie o tweet in base a un determinato corpo di testo utilizzato per la formazione.
Gli attuali approcci all’elaborazione del linguaggio naturale si basano sul deep learning, un tipo di intelligenza artificiale che esamina e utilizza modelli nei dati per migliorare la comprensione di un programma. I modelli di deep learning richiedono enormi quantità di dati etichettati affinché l’algoritmo di elaborazione del linguaggio naturale si alleni e identifichi correlazioni rilevanti, e l’assemblaggio di questo tipo di big data set è uno dei principali ostacoli all’elaborazione del linguaggio naturale.
I primi approcci all’elaborazione del linguaggio naturale prevedevano un approccio più basato su regole, in cui agli algoritmi di apprendimento automatico più semplici veniva detto quali parole e frasi cercare nel testo e venivano fornite risposte specifiche quando tali frasi apparivano. Ma il deep learning è un approccio più flessibile e intuitivo in cui gli algoritmi imparano a identificare l’intento dei parlanti da molti esempi, quasi come un bambino imparerebbe il linguaggio umano.
Tre strumenti open source comunemente usati per l’elaborazione del linguaggio naturale includono Natural Language Toolkit (NLTK), Gensim e NLP Architect di Intel. NLTK è un modulo Python con set di dati e tutorial. Gensim è una libreria Python per la modellazione di argomenti e l’indicizzazione di documenti. NLP Architect di Intel è una libreria Python per topologie e tecniche di deep learning.
A cosa serve l’elaborazione del linguaggio naturale?
Alcune delle principali funzioni e attività NLP che gli algoritmi di elaborazione del linguaggio naturale eseguono includono quanto segue:
- Classificazione del testo. Questa funzione assegna tag ai testi per inserirli in categorie. Ciò può essere utile per l’analisi del sentimento, che aiuta l’algoritmo di elaborazione del linguaggio naturale a determinare il sentimento, o l’emozione, dietro un testo.Ad esempio, quando il marchio A viene menzionato in X testi, l’algoritmo può determinare quante di queste citazioni sono state positive e quante negative. Può anche essere utile per il rilevamento dell’intento, che aiuta a prevedere cosa potrebbe fare il parlante o lo scrittore in base al testo che sta producendo.
- Estrazione del testo. Questa funzione riassume automaticamente il testo e trova importanti dati. Un esempio è l’estrazione delle parole chiave, che estrae le parole più importanti dal testo, il che può essere utile per l’ottimizzazione dei motori di ricerca. Farlo con l’elaborazione del linguaggio naturale richiede un po’ di programmazione, non è completamente automatizzato. Tuttavia, ci sono molti semplici strumenti di estrazione delle parole chiave che automatizzano la maggior parte del processo: l’utente imposta semplicemente i parametri all’interno del programma. Ad esempio, uno strumento potrebbe estrarre le parole utilizzate più di frequente nel testo. Un altro esempio è il riconoscimento dell’entità, che estrae i nomi di persone, luoghi e altre entità dal testo.
- Traduzione automatica. In questo processo, un computer traduce il testo da una lingua, come l’inglese, a un’altra lingua, come il francese, senza intervento umano.
- Generazione del linguaggio naturale. Questo processo utilizza algoritmi di elaborazione del linguaggio naturale per analizzare dati non strutturati e produrre automaticamente contenuti basati su tali dati. Un esempio di ciò è nei modelli linguistici come il Generative Pre-trained Transformer (GPT-3) di terza generazione, che può analizzare testo non strutturato e quindi generare articoli credibili basati su tale testo.
Le funzioni elencate sopra sono utilizzate in una varietà di applicazioni del mondo reale, tra cui le seguenti:
- Analisi del feedback dei clienti. Gli strumenti che utilizzano l’intelligenza artificiale possono analizzare le recensioni sui social media e filtrare commenti e query per un’azienda.
- Automazione del servizio clienti. Gli assistenti vocali su una linea telefonica del servizio clienti possono utilizzare il riconoscimento vocale per comprendere cosa sta dicendo il cliente, in modo da poter indirizzare correttamente la sua chiamata.
- Traduzione automatica. Strumenti come Google Translate, Bing Translator e Translate Me possono tradurre testo, audio e documenti in un’altra lingua.
- Ricerca e analisi accademica. Gli strumenti che utilizzano l’intelligenza artificiale possono analizzare enormi quantità di materiale accademico e documenti di ricerca in base ai metadati del testo e al testo stesso.
- Analisi e categorizzazione delle cartelle cliniche. Gli strumenti basati sull’intelligenza artificiale possono utilizzare informazioni per prevedere e, idealmente, prevenire le malattie. Rilevamento del plagio. Strumenti come Copyleaks e Grammarly utilizzano la tecnologia AI per analizzare documenti e rilevare corrispondenze di testo e plagio.
- Previsioni azionarie e approfondimenti sul trading finanziario. Gli strumenti NLP possono analizzare la cronologia di mercato e i report annuali che contengono riepiloghi completi delle prestazioni finanziarie di un’azienda.
- Reclutamento di talenti nelle risorse umane. Le organizzazioni possono utilizzare strumenti basati sull’AI per ridurre i tempi di assunzione automatizzando il processo di ricerca e selezione dei candidati.
- Automazione delle controversie legali di routine. Gli strumenti basati sull’AI possono effettuare ricerche, identificare possibili problemi e riassumere i casi più velocemente degli avvocati umani.
- Rilevamento dello spam. Gli strumenti abilitati all’NLP possono essere utilizzati per classificare il testo per il linguaggio spesso utilizzato nei tentativi di spam o phishing. Ad esempio, gli strumenti abilitati all’AI possono rilevare grammatica errata, nomi scritti male, inviti all’azione urgenti e termini minacciosi.
Vantaggi dell’elaborazione del linguaggio naturale
Il vantaggio principale dell’NLP è che migliora il modo in cui gli esseri umani e i computer comunicano tra loro. Il modo più diretto per manipolare un computer è tramite codice, il linguaggio del computer. Consentire ai computer di comprendere il linguaggio umano rende l’interazione con i computer molto più intuitiva per gli esseri umani.
Altri vantaggi includono quanto segue:
- Offre una migliore accuratezza ed efficienza della documentazione.
- Consente a un’organizzazione di utilizzare chatbot per l’assistenza clienti.
- Fornisce a un’organizzazione la possibilità di creare automaticamente un riepilogo leggibile di un testo originale più ampio e
- complesso.
- Consente alle organizzazioni di analizzare dati strutturati e non strutturati.
- Consente ad assistenti personali come Alexa di comprendere le parole pronunciate.
- Rende più semplice per le organizzazioni eseguire analisi del sentiment.
- Le organizzazioni possono utilizzare l’NLP per comprendere meglio la generazione di lead, i post sui social media, i sondaggi e le recensioni.
- Fornisce approfondimenti avanzati da analisi che in precedenza erano irraggiungibili a causa del volume di dati.
Sfide dell’elaborazione del linguaggio naturale
Ci sono numerose sfide nell’elaborazione del linguaggio naturale, e la maggior parte di esse si riduce al fatto che il linguaggio naturale è in continua evoluzione e in qualche modo ambiguo. Tra queste:
- Precisione. I computer tradizionalmente richiedono che gli esseri umani parlino loro in un linguaggio di programmazione preciso, inequivocabile e altamente strutturato, o tramite un numero limitato di comandi vocali chiaramente enunciati. Il linguaggio umano, tuttavia, non è sempre preciso; è spesso ambiguo e la struttura linguistica può dipendere da molte variabili complesse, tra cui slang, dialetti regionali e contesto sociale.
- Tono di voce e inflessione. L’elaborazione del linguaggio naturale non è ancora stata perfezionata. Ad esempio, l’analisi semantica può ancora essere una sfida. Altre difficoltà includono il fatto che l’uso astratto del linguaggio è in genere difficile e complesso da comprendere per i programmi. Ad esempio, l’elaborazione del linguaggio naturale non coglie facilmente il sarcasmo. Questi argomenti di solito richiedono la comprensione delle parole utilizzate e del loro contesto in una conversazione. Inoltre, una frase può cambiare significato a seconda della parola o della sillaba su cui il parlante pone l’accento. Gli algoritmi NLP possono non rilevare i sottili ma importanti cambiamenti di tono nella voce di una persona quando eseguono il riconoscimento vocale. Il tono e l’inflessione del discorso possono anche variare tra diversi accenti, il che può essere difficile da analizzare per un algoritmo.
- Uso del linguaggio in evoluzione. L’elaborazione del linguaggio naturale è inoltre messa alla prova dal fatto che il linguaggio, e il modo in cui le persone lo usano, cambia continuamente. Sebbene esistano delle regole per il linguaggio, nessuna è scritta nella pietra e sono soggette a modifiche nel tempo. Le rigide regole computazionali che funzionano ora potrebbero diventare obsolete, poiché le caratteristiche del linguaggio del mondo reale cambiano nel tempo.
- Pregiudizio. I sistemi NLP possono essere prevenuti quando i loro processi riflettono i pregiudizi che appaiono nei loro dati di formazione. Questo è un problema nei campi medici e nelle posizioni di assunzione, in cui una persona potrebbe essere discriminata.
L’evoluzione dell’elaborazione del linguaggio naturale
L’NLP attinge da una varietà di discipline, tra cui gli sviluppi dell’informatica e della linguistica computazionale risalenti alla metà del XX secolo. La sua evoluzione ha incluso le seguenti pietre miliari principali:
Anni ’50
L’elaborazione del linguaggio naturale ha le sue radici in questo decennio, quando Alan Turing ha sviluppato il test di Turing per determinare se un computer è veramente intelligente o meno. Il test prevede l’interpretazione automatizzata e la generazione del linguaggio naturale come criterio di intelligenza.
Anni ’50-’90
L’NLP era in gran parte basata su regole, utilizzando regole artigianali sviluppate da linguisti per determinare come i computer avrebbero elaborato il linguaggio. L’esperimento Georgetown-IBM del 1954 divenne una notevole dimostrazione di traduzione automatica, traducendo automaticamente più di 60 frasi dal russo all’inglese. Gli anni ’80 e ’90 hanno visto lo sviluppo dell’analisi basata su regole, della morfologia, della semantica e di altre forme di comprensione del linguaggio naturale.
Anni ’90
L’approccio top-down, language-first all’elaborazione del linguaggio naturale è stato sostituito con un approccio più statistico perché i progressi nell’informatica hanno reso questo un modo più efficiente di sviluppare la tecnologia NLP. I computer stavano diventando più veloci e potevano essere utilizzati per sviluppare regole basate su statistiche linguistiche senza che un linguista creasse tutte le regole. L’elaborazione del linguaggio naturale basata sui dati divenne mainstream durante questo decennio. L’elaborazione del linguaggio naturale passò da un approccio basato sui linguisti a un approccio basato sugli ingegneri, attingendo a una più ampia varietà di discipline scientifiche invece di addentrarsi nella linguistica.
Anni 2000-2020
L’elaborazione del linguaggio naturale vide una crescita esponenziale della popolarità come termine. Furono esplorati anche processi NLP che utilizzavano algoritmi di apprendimento automatico non supervisionati e semi-supervisionati. Con i progressi nella potenza di calcolo, l’elaborazione del linguaggio naturale ha anche ottenuto numerose applicazioni nel mondo reale.
La NLP ha anche iniziato ad alimentare altre applicazioni come chatbot e assistenti virtuali. Oggi, gli approcci alla NLP implicano una combinazione di linguistica classica e metodi statistici.
L’elaborazione del linguaggio naturale svolge un ruolo fondamentale nella tecnologia e nel modo in cui gli esseri umani interagiscono con essa. Sebbene presenti le sue sfide, si prevede che la PNL diventi più accurata con modelli più sofisticati, più accessibili e più rilevanti in numerosi settori. La NLP continuerà a essere una parte importante sia del settore che della vita quotidiana.