Natural Language Processing

We facilitate human-machine interaction

Applied Innovation

L’evoluzione delle «macchine intelligenti» in grado di capire e rispondere alla comunicazione «umana» è nel riconoscimento di intenzione e sentimenti dell’utente

Natural Language Processing: cos'è e in cosa consiste

Il Natural Language Processing è quella procedura che permette alle “macchine” di riconoscere testo o voce, e formulare a sua volta le dovute risposte o le proprie argomentazioni, che verranno fornite anch’esse sotto forma di testo o voce.

Da decenni l’uomo sta lavorando alla costruzione di macchine in grado di capire e rispondere a input testuali o vocali, e quindi di interagire allo stesso modo di come facciamo noi essere umani.

Ebbene, la tecnologia ha fatto passi da gigante in questo campo, soprattutto nell’elaborazione del linguaggio naturale.

Oggi grazie all’evoluzione dei processi di elaborazione del complicatissimo linguaggio umano, le macchine sono in grado di comprendere il significato delle parole riconoscendo anche l’intenzione (Intent) ed il sentimento (Sentiment) di chi parla o scrive.

Cosa vuol dire Natural Language Processing (NLP)?

La definizione esatta del termine “Natural Language Processing” è “Elaborazione del Linguaggio Naturale”.

Potremmo definirlo una disciplina o un ramo dell’Intelligenza Artificiale (A.I.).

Il suo scopo è rendere il linguaggio umano comprensibile alle macchine e permettere a quest’ultime di elaborare correttamente i dati testuali o vocali inviati / ricevuti.

E di conseguenza rispondere e interagire allo stesso modo di noi essere umani, ovvero con testo o voce.

Dal riconoscimento vocale all’analisi del Sentiment, nei prossimi paragrafi vi indicheremo le varie fasi e le principali tecniche di Natural Processing Language.

Quali sono le fasi del Natural Processing Language

Le fasi del Natural Processing Language, in generale, sono tre.
Ognuna di esse è composta a sua volta da diverse attività e tecniche specifiche utili
a codificare e comprendere testo e voce.

Riconoscimento
Vocale

La prima fase non può che essere quella del Riconoscimento Vocale, se si tratta di “clip” parlate, o del Riconoscimento ottico dei caratteri (OCR) se si tratta di testo.

In questa fase la macchina procederà quindi a riconoscere ciò che gli viene detto, a segmentare il discorso e separarlo quindi in parole, per poi effettuare una sintesi vocale e un’ulteriore segmentazione delle parole (detta anche “tokenizzazione”).
1

Generazione del linguaggio
naturale

L’ultima fase è quella della generazione del linguaggio naturale.

Infatti una volta codificato e compreso il discorso (parola per parola), analizzato il sentiment e rilevato atteggiamenti particolari, sarcasmo, confusione ed altre emozioni collegate al testo o all’audio; la macchina formulerà ciò che serve per rispondere correttamente agli input ricevuti. E rispondere quindi allo stesso modo, ovvero con testo o voce.
3

Comprensione del
linguaggio naturale

La seconda fase è quella di comprensione di ciò che viene detto alla macchina. Questo avviene grazie alle varie analisi che la macchina compirà sulle singole parole. Principalmente si tratta di analisi morfologiche e sintattiche che permetteranno di riconoscere le parole nella loro forma effettiva.

Seguirà la segmentazione morfologica e il tagging di precise parti del discorso. Operazioni utili a identificare il corretto significato delle parole inserite in un determinato contesto, e riconoscere se possono servire come più parti del discorso.

Ad esempio la macchina riconoscerà che la parola “matita” può essere un sostantivo (“la matita è sul tavolo”), può essere collegata a un verbo (“prendere una matita”), e così via.

La macchina dovrà però essere in grado di riconoscere che lo stesso termine non può essere usato come aggettivo. Infatti usato come aggettivo, il termine “matita” non avrà alcun significato. Il linguaggio umano è molto complesso e spesso risulta difficilissimo analizzare correttamente il significato di una frase o di singole parole.

Senza ombra di dubbio le maggiori problematiche derivano da: omonimi, metafore, modi di dire, eccezioni grammaticali e così via.

Inoltre, fanno parte di questa fase anche i processi di stemming (riduzione delle parole flesse ad una forma base) e la lemmatizzazione (rimozione delle desinenze flessive e ritorno della parola alla forma base).

Riconoscimento dell’entità designata (NER) e Analisi del Sentiment (di cui parleremo in maniera più approfondita nei prossimi paragrafi) completano la lista di attività rientranti in questa fase
2

A cosa serve il Natural Language Processing?

Il Natural Language Processing è utile per diversi scopi, non solo per creare delle macchine in grado di interagire con noi nel miglior modo possibile.

L’NLP è infatti utilizzato per creare software in grado di facilitare la comprensione di testi scritti in altre lingue, per creare auto-risponditori o bot, e anche per effettuare analisi su flussi di dati testuali e vocali relativi ai social o app/software di messaggistica.

Esempi di NLP

Traduzione Automatica

L’esempio più lampante di Natural Processing Language utilizzato a scopo “innovativo” e come una sorta di “evoluzione” della comunicazione tra esseri umani è Google Translate.

Big G ha introdotto questo strumento nel 2006, utile per tradurre in maniera istantanea parole o frasi da/per lingue diverse. Con il passare del tempo anche questo strumento si è evoluto, oggi non solo fornisce una buona traduzione in varie lingue, ma è in grado anche di leggere e pronunciare correttamente (o quasi!) il testo inserito. Il tutto in oltre 100 lingue diverse.

Non è sicuramente uno strumento perfetto, ma la traduzione automatica sta facendo grandi progressi in termini di accuratezza e precisione.

Chatbot e Assistenti Virtuali

L’NLP si rivela fondamentale per la creazione di Chatbot o Assistenti Virtuali. Gli esempi più interessanti sono Siri (assistente sviluppato da Apple e integrato in quasi tutti i suoi device) e Alexa (sviluppato da Amazon).

In questi due casi il Natural Processing Language è servito a sviluppare un software in grado di comprendere il linguaggio naturale e rispondere con azioni appropriate o commenti utili (per il momento si tratta di elementi predefiniti dallo sviluppatore, in futuro l’assistente virtuale potrebbe essere libero di rispondere a proprio piacimento).

I chatbot funzionano allo stesso modo degli assistenti vocali e sono in grado di rispondere automaticamente a precise richieste da parte dell’utente (sia vocali che scritte).

Rilevamento Spam

Il Natural Processing Language si rivela utilissimo anche per individuare Spam. Un esempio è il nuovo algoritmo che sta sviluppando Facebook, in grado di rilevare parole o linguaggi volgari, aggressivi, incitanti all’odio, in modo tale da cancellare in automatico i post contenenti questo tipo di contenuto.

L’NPL viene utilizzato anche per scansionare mail alla ricerca di parole o linguaggio che indichino la presenza di spam, tentativi di phising o truffe online.


Possibile impostare il sistema su qualsiasi parametro, ad esempio per scansionare contenuti ed evidenziare le parti contenenti termini finanziari, frasi grammaticalmente scorrette, nomi sbagliati e così via.

Sempre per i social, risulta determinante l’analisi del sentiment. Riesce a determinare in modo corretto il linguaggio usato nei post, nelle risposte, nelle recensioni e in futuro potrebbe riuscire a comprendere anche atteggiamenti ed emozioni degli utenti nei confronti ad esempio di un prodotto o un post.

Interagire con le macchine attraverso il riconoscimento vocale e del sentiment