Elaborazione del linguaggio naturale

Che cos’è l’elaborazione del linguaggio naturale (NLP)?

3 cose da sapere

L’elaborazione del linguaggio naturale (NLP) è una branca dell’intelligenza artificiale (IA) che insegna ai computer come capire il linguaggio umano in forma verbale e scritta. L’elaborazione del linguaggio naturale combina la linguistica computazionale con il Machine Learning e il Deep Learning per elaborare dati vocali e testuali, che possono essere utilizzati anche con altri tipi di dati per lo sviluppo di sistemi ingegnerizzati intelligenti.

Come funziona l’elaborazione del linguaggio naturale

L’elaborazione del linguaggio naturale mira a trasformare i dati linguistici non strutturati in un formato strutturato utilizzabile dalle macchine per interpretare dati vocali e testuali, scoprire e visualizzare relazioni complesse in set di dati di grandi dimensioni e generare nuovi dati linguistici.

I dati grezzi del linguaggio umano possono provenire da varie fonti, tra cui segnali audio, rete e social media, documenti e database. I dati contengono informazioni preziose come comandi vocali, l’opinione pubblica su vari argomenti, dati operativi e report di manutenzione. L’elaborazione del linguaggio naturale può combinare e semplificare queste grandi fonti di dati, trasformandole in informazioni utili con visualizzazioni e modelli di argomenti.

I dati vocali e testuali vengono implementati su un modello di IA per l’elaborazione del linguaggio naturale.

L’elaborazione del linguaggio naturale combina la linguistica computazionale con la modellazione tramite IA per interpretare dati vocali e testuali.

Per eseguire l’elaborazione del linguaggio naturale su dati vocali, rileva la presenza della voce umana in un segmento audio, esegui una trascrizione da voce a testo e applica il text mining e le tecniche di Machine Learning sul testo derivato.

Preparazione dei dati per l’elaborazione del linguaggio naturale

Tra le tecniche utilizzate nell’elaborazione del linguaggio naturale per convertire testi da un formato non strutturato a un formato strutturato figurano:

Tokenizzazione: in genere, questa è la prima fase dell’elaborazione del testo per l’elaborazione del linguaggio naturale. Indica la suddivisione del testo in frasi o parole.

Stemming: questa tecnica di normalizzazione del testo consiste nel ridurre le parole alla loro forma radice rimuovendo gli affissi delle parole. Utilizza semplici regole euristiche e potrebbe dare origine a parole del dizionario non valide.

Lemmatizzazione: questa sofisticata tecnica di normalizzazione del testo utilizza il vocabolario e l’analisi morfologica per rimuovere gli affissi delle parole. Ad esempio, “l’edificio ha dei piani” viene ridotto a “edificare avere piano”.

Word2vec: l’implementazione più diffusa tra le tecniche di word embedding è Word2vec. Questa tecnica crea una rappresentazione distribuita delle parole in vettori numerici che catturano la semantica e le relazioni tra le parole.

Modellazione di n-grammi: un n-gramma è un insieme di n elementi successivi in un documento di testo che può includere parole, numeri, simboli e punteggiatura. I modelli n-grammi possono essere utili nelle applicazioni di elaborazione del linguaggio naturale in cui le sequenze di parole sono pertinenti, come nella sentiment analysis, nella classificazione testuale e nella generazione di testo.

Elaborazione del linguaggio naturale con l’IA

I modelli di IA addestrati su dati linguistici sono in grado di riconoscere i pattern e prevedere i caratteri o le parole successive in una frase. Per costruire modelli di elaborazione del linguaggio naturale, è possibile utilizzare i classici algoritmi di Machine Learning, come la regressione logistica o gli alberi decisionali, oppure le architetture di Deep Learning, come le reti neurali convoluzionali (CNN), le reti neurali ricorrenti (RNN) e gli autocodificatori. Ad esempio, è possibile usare le CNN per classificare testi e le RNN per generare una sequenza di caratteri.

I modelli di trasformatori (un tipo di modello di Deep Learning) hanno rivoluzionato l’elaborazione del linguaggio naturale e sono alla base di modelli linguistici di grandi dimensioni (LLM) come BERT e ChatGPT™. I trasformatori sono progettati per monitorare i rapporti nei dati sequenziali. Si basano su un meccanismo Self-Attention mediante il quale vengono acquisite le dipendenze globali tra input e output.

Nel contesto dell’elaborazione del linguaggio naturale, ciò permette agli LLM di catturare dipendenze a lungo termine, relazioni complesse tra le parole e sfumature presenti nel linguaggio naturale. Gli LLM sono in grado di elaborare tutte le parole in parallelo, accelerando l’addestramento e l’inferenza.

In modo analogo ad altri modelli di Deep Learning pre-addestrati, è possibile eseguire il Transfer Learning con LLM pre-addestrati per risolvere un problema particolare nell’elaborazione del linguaggio naturale. Ad esempio, è possibile ottimizzare un modello BERT per un testo giapponese.

Perché l’elaborazione del linguaggio naturale è importante

L’elaborazione del linguaggio naturale insegna alle macchine a capire e generare il linguaggio umano. Le applicazioni sono molteplici e con l’evoluzione delle tecnologie di IA l’utilizzo dell’elaborazione del linguaggio naturale aumenterà, dalle attività quotidiane ai workflow di ingegneria avanzata.

Le attività più comuni nell’elaborazione del linguaggio naturale sono il riconoscimento vocale, il riconoscimento del parlante, il miglioramento del parlato e il riconoscimento dell’entità denominata. In un sottogruppo dell’elaborazione del linguaggio naturale, chiamato comprensione del linguaggio naturale (NLU), è possibile utilizzare l’analisi sintattica e semantica a livello vocale e testuale per estrarre il significato di una frase. Le attività di NLU comprendono la classificazione di documenti e la sentiment analysis.

Illustrazione dell’output delle attività di NLP. A sinistra, cinque parlanti diversi vengono riconosciuti in un segnale audio. A destra, nuvole di parole classificate per parole positive e negative.

Il riconoscimento del parlante e la sentiment analysis sono attività ordinarie dell’elaborazione del linguaggio naturale.

Un altro sottogruppo dell’elaborazione del linguaggio naturale, chiamato generazione del linguaggio naturale (NLG), include i metodi utilizzati dai computer per produrre una risposta di testo dato un input di dati. Mentre l’NLG è nata come generazione di testo basata su modelli, le tecniche di IA hanno consentito la generazione dinamica di testo in tempo reale. Le attività di NLG includono la sintesi di testi e la traduzione automatica.

Le due aree principali dell’elaborazione del linguaggio naturale (NLP) sono la comprensione del linguaggio naturale (NLU) e la generazione del linguaggio naturale (NLG).

L’elaborazione del linguaggio naturale e i suoi sottogruppi.

L’elaborazione del linguaggio naturale viene utilizzata nei campi della finanza, della produzione, dell’elettronica, dei software, dell’IT e in altri settori per applicazioni quali:

  • Automatizzazione della classificazione delle recensioni sulla base del sentiment, positivo o negativo
  • Conteggio della frequenza di parole o frasi nei documenti ed esecuzione del topic modeling
  • Automatizzazione dell’etichettatura e dell’aggiunta di tag alle registrazioni vocali
  • Sviluppo di programmi di manutenzione predittiva basati su sensori e dati di registro di testo
  • Automatizzazione della formalizzazione di requisiti e del controllo di conformità

Elaborazione del linguaggio naturale con MATLAB

MATLAB consente di creare pipeline di elaborazione del linguaggio naturale dalla preparazione dei dati alla distribuzione. Utilizzando Deep Learning Toolbox™ o Statistics and Machine Learning Toolbox™ con Text Analytics Toolbox™, è possibile eseguire l’elaborazione del linguaggio naturale su dati di testo. Utilizzando inoltre Audio Toolbox™, è possibile eseguire l’elaborazione del linguaggio naturale su dati vocali.

Il workflow NLP completo comprende l’accesso a dati di testo e la relativa esplorazione, la pre-elaborazione dei dati, lo sviluppo di modelli predittivi e la condivisione di informazioni e modelli.

Workflow completo di elaborazione del linguaggio naturale.

Preparazione dei dati

È possibile utilizzare app low-code per pre-elaborare dati vocali per l’elaborazione del linguaggio naturale. L’app Signal Analyzer consente di esplorare e analizzare i dati, e l’app Signal Labeler etichetta automaticamente la verità di base (ground truth). È possibile ricorrere all’estrazione delle feature audio per estrarre feature specifiche per il dominio ed eseguire le trasformazioni tempo-frequenza. Successivamente è possibile trascrivere dalla voce al testo utilizzando la funzione speech2text.

Una volta ottenuti i dati di testo per l’applicazione dell’elaborazione del linguaggio naturale, è possibile trasformare i dati linguistici non strutturati in un formato strutturato in modo interattivo e pulire i dati con l’attività di pre-elaborazione dei dati di testo di Live Editor. In alternativa, è possibile preparare i dati NLP in modo programmatico con funzioni integrate.

Utilizzando nuvole di parole e grafici a dispersione, è inoltre possibile visualizzare dati di testo e modelli per l’elaborazione del linguaggio naturale.

 Illustrazione della pulizia dei dati di testo per l’elaborazione del linguaggio naturale. A sinistra: nuvola di parole di dati grezzi. A destra: nuvola di parole di dati puliti.

Nuvole di parole che illustrano l’analisi della frequenza delle parole applicata a dati di testo grezzi e puliti dai report di fabbrica.

Modellazione dell’IA

È possibile addestrare molti tipi di modelli di Machine Learning per la classificazione o la regressione. Ad esempio, è possibile creare e addestrare reti Long Short-Term Memory (LSTM) con poche righe di codice MATLAB. È inoltre possibile creare e addestrare modelli di Deep Learning con l’app Deep Network Designer e monitorare l’addestramento del modello attraverso grafici di precisione, perdita e metriche di convalida.

Schermata dell’app Deep Network Designer che mostra una semplice rete BiLSTM che può essere utilizzata per l’elaborazione del linguaggio naturale

App Deep Network Designer per la costruzione, la visualizzazione, la modifica e l’addestramento interattivi di reti NLP.

Invece di creare un modello di Deep Learning da zero, è possibile scaricare un modello pre-addestrato, utilizzabile direttamente o personalizzabile in base alla specifica attività di elaborazione del linguaggio naturale. Con MATLAB è possibile accedere a reti pre-addestrate dall’hub per i modelli di Deep Learning di MATLAB. Ad esempio, è possibile utilizzare il modello VGGish per estrarre gli embedding di feature da segnali audio, il modello wav2vec per la trascrizione dalla voce al testo e il modello BERT per la classificazione di documenti. È inoltre possibile importare modelli da TensorFlow™ o PyTorch™ utilizzando le funzioni importNetworkFromTensorFlow o importNetworkFromPyTorch.

Argomenti correlati