Cos'è l'NLP (Natural Language Processing)?
L'NLP (Natural Language Processing) si propone di realizzare delle macchine che capiscano e rispondano a dati testuali o vocali, e che rispondano con testi o discorsi propri, praticamente nello stesso modo in cui lo fanno gli esseri umani
Scopri l'IA conversazionale di IBM
Sfondo nero con punti blu
Cos'è l'NLP (Natural Language Processing)?

Il termine NLP (Natural Language Processing) si riferisce al settore dell'informatica - e più specificamente al settore dell' AI (Artificial Intelligence)- che si occupa di dare ai computer la capacità di comprendere il testo e le parole nello stesso modo in cui lo fanno gli esseri umani.

L'NLP combina la linguistica computazionale - la modellazione basata su regole del linguaggio umano - con modelli statistici, di machine learning e di deep learning. Insieme, queste tecnologie consentono ai computer di elaborare il linguaggio umano sotto forma di testo o dati vocali e di "capire" il suo pieno significato, compreso l'intento e il sentiment di chi parla o scrive.

L'NLP è alla base di programmi informatici che traducono il testo da una lingua all'altra, rispondono a comandi vocali e riassumono grandi volumi di testo rapidamente, anche in tempo reale. È molto probabile che tu abbia interagito con l'NLP sotto forma di sistemi GPS a comando vocale, assistenti digitali, software di dettatura speech-to-text, chatbot per il servizio clienti e altre funzionalità destinate ai consumatori. Ma l'NLP gioca anche un ruolo crescente nelle soluzioni aziendali che aiutano a snellire le operazioni di business, aumentare la produttività dei dipendenti e semplificare i processi di business mission-critical.

Attività di NLP

Il linguaggio umano è pieno di ambiguità che rendono incredibilmente difficile scrivere un software che determini accuratamente il significato del testo o dei dati vocali. Omonimi, omofoni, sarcasmo, espressioni idiomatiche, metafore, eccezioni grammaticali e d'uso, variazioni nella struttura delle frasi - queste sono solo alcune delle irregolarità del linguaggio umano che gli esseri umani impiegano anni per imparare, ma che i programmatori devono insegnare a riconoscere e comprendere accuratamente alle applicazioni basate sul linguaggio naturale fin dall'inizio, se queste applicazioni devono essere utili.

Diversi processi NLP scompongono il testo umano e i dati vocali in modi che aiutano il computer a dare un senso a quanto in esso immesso. Alcune di queste attività comprendono quanto segue:

  • Il Riconoscimento vocale, chiamato anche speech-to-text, è l'attività di convertire in modo affidabile i dati vocali in dati di testo. Il riconoscimento vocale è necessario per qualsiasi applicazione che esegue comandi vocali o risponde a domande orali. Ciò che rende il riconoscimento vocale particolarmente impegnativo è il modo in cui le persone parlano - velocemente, biascicando le parole insieme, con enfasi e intonazione variabili, con accenti diversi e spesso usando una grammatica non corretta.
  • L'etichettatura delle parti del discorso, chiamata anche etichettatura grammaticale, è il processo di determinazione della parte del discorso di una particolare parola o pezzo di testo in base al relativo uso e al contesto. La parte del discorso identifica ad esempio "riso" come verbo in "Ho riso molto" e come sostantivo in "Ho mangiato riso"
  • La disambiguazione del senso delle parole consiste nel selezionare il significato corretto di una parola con molteplici significati  attraverso un processo di analisi semantica che determina il significato che ha più senso nel contesto dato. Ad esempio, la disambiguazione del senso delle parole aiuta a distinguere il significato del verbo  'realizzare' in 'realizzare un sogno' (raggiungere) rispetto a 'realizzare l'accaduto' (comprendere).
  • Il riconoscimento dell'entità denominata,  o NEM (named entity recognition), identifica parole o frasi come entità utili. Ad esempio, NEM identifica "Kentucky" come un luogo o "Fred" come il nome di un uomo.
  • La risoluzione di co-riferimento è l'attività di identificare se e quando due parole si riferiscono alla stessa entità. L'esempio più comune è determinare la persona o l'oggetto a cui si riferisce un certo pronome (ad esempio, 'lei' = 'Maria'),  ma può anche comportare l'identificazione di una metafora o un idioma nel testo  (ad esempio, un caso in cui 'orso' non si riferisce ad un animale ma ad una persona grande e pelosa).
  • L'analisi del sentiment tenta di estrarre qualità soggettive - atteggiamenti, emozioni, sarcasmo, confusione, sospetto - dal testo.
  • La generazione del linguaggio naturale è talvolta descritta come l'opposto del riconoscimento vocale o dello speech-to-text; la sua attività consiste nel mettere informazioni strutturate in linguaggio umano.

Vedi il post del blog "NLP vs. NLU vs. NLG: the differences between three natural language processing concepts" per uno sguardo più approfondito su come questi concetti sono collegati.

Strumenti e approcci NLP

Python ed NLTK (Natural Language Toolkit)

Il linguaggio di programmazione Python fornisce una vasta gamma di strumenti e librerie per affrontare specifiche attività NLP. Molti di questi si trovano nell'NLTK, o Natural Language Toolkit, una raccolta open source di librerie, programmi e risorse educative per costruire programmi NLP.

L'NLTK include librerie per molte delle attività NLP sopra elencate, più librerie per le attività secondarie, come l'analisi delle frasi, la segmentazione delle parole, lo stemming e la lemmatizzazione (metodi per ricondurre le parole alle loro radici), e la tokenizzazione (per suddividere frasi, periodi, paragrafi e passaggi in token che aiutano il computer a capire meglio il testo). Include anche delle librerie per implementare funzionalità come il ragionamento semantico, la capacità di raggiungere conclusioni logiche basate su fatti estratti dal testo.

NLP statistico, machine learning e deep learning

Le prime applicazioni NLP erano sistemi codificati a mano e basati su regole che potevano eseguire alcune attività NLP, ma non potevano essere ridimensionati facilmente per accogliere un flusso apparentemente infinito di eccezioni o i crescenti volumi di dati testuali e vocali.

È ora disponibile l'NLP statistico, che combina algoritmi informatici con modelli di machine learning e deep learning per estrarre, classificare ed etichettare automaticamente elementi di testo e dati vocali e poi assegnare una probabilità statistica ad ogni possibile significato di quegli elementi. Oggi, i modelli di deep learning e le tecniche di apprendimento basate sulle reti neurali convoluzionali (CNN - convolutional neural network) e le reti neurali ricorrenti (RNN - recurrent neural network) consentono ai sistemi NLP di "imparare" mentre lavorano e di ricavare un significato sempre più accurato da enormi volumi di testo non elaborato, non strutturato e non etichettato e da dataset vocali. 

Per approfondire le sfumature tra queste tecnologie e i loro approcci di apprendimento, consulta "AI vs. Machine Learning vs. Deep Learning vs. Neural Networks: What’s the Difference?"

Casi di utilizzo di NLP

L'NLP (Natural Language Processing) è la forza trainante alla base dell'intelligenza delle macchine in molte moderne applicazioni del mondo reale. Ecco alcuni esempi:

  • Rilevamento della posta indesiderata: potresti non pensare al rilevamento della posta indesiderata come a una soluzione NLP, ma le migliori tecnologie di rilevamento della posta indesiderata utilizzano le funzionalità di classificazione del testo NLP per analizzare le e-mail alla ricerca del linguaggio che spesso indica posta indesiderata o phishing. Questi indicatori possono includere l'uso eccessivo di termini finanziari, la caratteristica grammatica scorretta, il linguaggio minaccioso, l'urgenza inappropriata, i nomi delle aziende scritti male e altro ancora. Il rilevamento della posta indesiderata è uno dei pochi problemi di NLP che gli esperti considerano "per lo più risolti" (anche se potresti obiettare che questo non corrisponde alla tua esperienza con le e-mail).
  • Traduzione automatica: Google Translate è un esempio pratico di tecnologia NLP ampiamente disponibile. Una traduzione automatica veramente utile implica più che la sostituzione di parole di una lingua con parole di un'altra.  Una traduzione efficace deve cogliere in modo preciso il significato e il tono della lingua di origine e tradurlo in un testo che abbia lo stesso significato e l'impatto desiderato nella lingua di destinazione. Gli strumenti di traduzione automatica stanno facendo degli ottimi progressi in termini di precisione. Un ottimo modo per testare qualsiasi strumento di traduzione automatica è quello di tradurre il testo in una lingua e poi tornare all'originale. Un esempio classico spesso citato: non molto tempo fa, traducendo "The spirit is willing but the flesh is weak" (Lo spirito è forte ma la carne è debole) dall'inglese al russo e viceversa si otteneva "The vodka is good but the meat is rotten" (La vodka è buona ma la carne è marcia). Oggi il risultato è "The spirit desires, but the flesh is weak" (Lo spirito desidera, ma la carne è debole), che non è perfetto, ma ispira molta più fiducia nella traduzione dall'inglese al russo.
  • Agenti virtuali e chatbot: agenti virtuali come Siri di Apple e Alexa di Amazon usano il riconoscimento vocale per riconoscere i modelli nei comandi vocali e la generazione di linguaggio naturale per rispondere con azioni appropriate o commenti utili. I chatbot eseguono la stessa magia in risposta a immissioni di testo. I migliori imparano anche a riconoscere indizi contestuali relativi alle richieste umane e li usano per fornire risposte o opzioni sempre migliori nel tempo. Il prossimo miglioramento per queste applicazioni è la risposta alle domande, la capacità di rispondere alle nostre domande - anticipate o meno - con risposte pertinenti e utili con parole proprie.
  • Analisi del sentiment dei social media: l'NLP è diventato uno strumento di business essenziale per scoprire insight nascosti nei canali dei social media. L'analisi del sentiment può analizzare il linguaggio usato nei post dei social media, nelle risposte, nelle recensioni e altro ancora per identificare gli atteggiamenti e le emozioni suscitati da prodotti, promozioni ed eventi - informazioni che le aziende possono usare nel design dei prodotti, nelle campagne pubblicitarie e in altro ancora.
  • Riassunto del testo: il riassunto del testo usa tecniche NLP per analizzare enormi volumi di testo digitale e creare riassunti e sinossi per indici, database di ricerca o lettori indaffarati che non hanno tempo per leggere il testo completo. Le migliori applicazioni di riassunto del testo usano il ragionamento semantico e l'NLG (Natural Language Generation) per aggiungere contesto e conclusioni utili ai riassunti.
Soluzioni correlate
Watson Natural Language Processing

Trova risposte e insight critici nei tuoi dati di business utilizzando una tecnologia di ricerca aziendale basata sull'AI.

Esplora IBM Watson Natural Language Processing
Watson Natural Language Understanding

Il servizio NLP (Natural Language Processing) per un'analytics di testo avanzata.

Esplora IBM Watson Natural Language Understanding
Watson Assistant

Risolvi i problemi dei clienti al primo tentativo, su qualsiasi canale.

Esplora IBM Watson Assistant
Passa alla fase successiva

IBM ha innovato nel campo dell'AI facendo da pioniere per quanto riguarda gli strumenti e i servizi basati su NLP che consentono alle organizzazioni di automatizzare i loro complessi processi aziendali, ottenendo al contempo insight di business essenziali. Analizza il testo in formati di dati non strutturati inclusi HTML, pagine web, social media e altro ancora. Aumenta la tua comprensione del linguaggio umano sfruttando questo kit di strumenti del linguaggio naturale per identificare concetti, parole chiave, categorie, semantica ed emozioni, e per eseguire la classificazione del testo, l'estrazione di entità, il riconoscimento di entità nominate (NER - named entity recognition), l'analisi del sentiment e la sintesi.

Esplora Watson Natural Language Understanding oggi stesso