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.
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.
Introduzione all’elaborazione del linguaggio naturale con esempi
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.
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.
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à
Applicazione dell’elaborazione del linguaggio naturale con MATLAB
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.
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.
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.
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.
Per saperne di più sull’elaborazione del linguaggio naturale
Argomenti correlati
Seleziona un sito web
Seleziona un sito web per visualizzare contenuto tradotto dove disponibile e vedere eventi e offerte locali. In base alla tua area geografica, ti consigliamo di selezionare: .
Puoi anche selezionare un sito web dal seguente elenco:
Come ottenere le migliori prestazioni del sito
Per ottenere le migliori prestazioni del sito, seleziona il sito cinese (in cinese o in inglese). I siti MathWorks per gli altri paesi non sono ottimizzati per essere visitati dalla tua area geografica.
Americhe
- América Latina (Español)
- Canada (English)
- United States (English)
Europa
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)