"Ehi Siri, dimmi le previsioni per il fine settimana"

"Ehi Cortana, cosa significa 3 miglia in chilometri"

"Alexa, controlla i messaggi vocali di mamma"

"Ehi, Google, quali sono i migliori ristoranti di New Orleans?"

Tutti li abbiamo sentiti in un modo o nell'altro, a casa di amici, al ristorante, seduti in auto o nel comfort delle nostre case. Le interazioni vocali umane naturali con il vostro dispositivo connesso preferito sono ormai una realtà e non sono più il regno della fantascienza. Il punto chiave è l'interazione con voci umane, utilizzando il linguaggio naturale di tutti i giorni e non un linguaggio di programmazione. L'improvvisa proliferazione di assistenti intelligenti e dispositivi di automazione dei consumatori in grado di decifrare il nostro linguaggio è stata resa possibile dai progressi nell'elaborazione del linguaggio naturale.

Che cos'è l'elaborazione del linguaggio naturale?

Sebbene esistano molte definizioni di elaborazione del linguaggio naturale (o NLP), la più semplice a mio avviso è la capacità delle macchine di analizzare, comprendere e generare il linguaggio umano. Ciò si ottiene combinando modelli e pratiche che si trovano nell'informatica, nell'intelligenza artificiale e nella linguistica computazionale(Wikipedia)

Come funziona tutto questo?

Figure 1 - NLP Mechanics Flow Diagram

Figura 1 - Diagramma di flusso della meccanica NLP[/caption]

Sebbene i risultati di una domanda posta al vostro assistente digitale preferito possano sembrare magici, ogni volta si verifica una serie logica di eventi (Figura 1). Ogni volta che si pone una domanda attraverso un'espressione vocale come "Alexa, controlla i messaggi vocali della mamma", nel motore NLP del dispositivo si verifica quanto segue:

1. Riconoscimento vocale - Il primo passo è la digitalizzazione della voce, quindi la scomposizione o il parsing del linguaggio naturale nella domanda parlata in modo che una macchina possa identificare ogni parola. A causa dei diversi accenti parlati, dell'intonazione non riconosciuta o anche del rumore di fondo, l'accuratezza di questa traduzione potrebbe non essere sempre al cento per cento.

Storicamente, questa operazione era difficile anche perché i computer non erano abbastanza veloci per tenere il passo con il parlato ed eseguire il riconoscimento. I moderni motori NLP sfruttano servizi di calcolo altamente scalabili nel cloud e applicano algoritmi di riconoscimento vocale automatico (ASR) per scomporre rapidamente le frasi nelle parole che le compongono e che possono essere analizzate. Uno di questi servizi, che alimenta Alexa, si chiama Amazon Lex, e ora esistono servizi cloud di tutti i principali fornitori: Microsoft Cognitive Services, Google Cloud Natural Language.

Questi servizi non solo offrono agli sviluppatori di applicazioni un servizio cloud integrato per eseguire l'ASR, ma eseguono anche l'analisi e il punteggio di confidenza statistica necessari per comprendere le parole e determinare l'intento.

2. Comprensione del linguaggio naturale - Questa fase avviene subito dopo che le parole sono state analizzate e tradotte in linguaggio macchina. La comprensione del linguaggio naturale (NLU) è di gran lunga la fase più difficile della catena di eventi NLP, perché il sistema deve capire l'intento della domanda originale dell'utente. Ciò è complicato dal fatto che il linguaggio naturale parlato può essere ambiguo, quindi gli algoritmi NLU devono utilizzare una serie di modelli di analisi lessicale per disambiguare le parole. Ad esempio, "check" potrebbe essere un sostantivo (ad esempio, un conto al ristorante) o un verbo (ad esempio, controllare qualcosa). La situazione si fa ancora più complessa quando si includono i numeri nel discorso. Ad esempio, "2017" potrebbe essere l'anno 2017 o il numero duemiladiciassette.

Utilizzando un motore NLP come Lex, gli sviluppatori creano regole per "addestrare" le applicazioni ad applicare correttamente queste regole per determinare l'intento dell'utente. Naturalmente, le persone pongono le domande in modo diverso. Di conseguenza, è possibile che più domande abbiano lo stesso intento. Ad esempio, le seguenti frasi potrebbero avere tutte lo stesso intento, ovvero riprodurre i messaggi vocali di mia madre:

"Alexa, controlla i messaggi vocali di mamma" "Alexa, riproduci i miei messaggi dalla mamma" "Alexa, riproduci i messaggi vocali di mamma" "Alexa, vorrei ascoltare i miei messaggi vocali da mamma" "Alexa, riproduci i messaggi della mamma"

Una volta compreso l'intento, è possibile avviare un'azione, come ad esempio l'esecuzione di comandi per filtrare e recuperare i messaggi vocali dalla mia casella di posta lasciati da mia madre e poi riprodurli sull'altoparlante del mio dispositivo. Nell'era dell'Internet delle cose, in cui molti dispositivi sono connessi, questi comandi potrebbero attivare l'esecuzione di servizi da parte di altri dispositivi o applicazioni.

3. Generazione del linguaggio naturale - Le conversazioni sono raramente unilaterali e per fornire risposte interattive i computer devono essere in grado di comunicare con l'utente. Questo è noto come generazione del linguaggio naturale (NLG). Si tratta di un'operazione che va nella direzione opposta a quella appena descritta. L'NLG prende il linguaggio macchina, utilizzando un insieme di regole grammaticali e un lessico, e lo traduce in parole e frasi regolari. Di solito, la fase finale consiste nel sintetizzare il testo utilizzando un modello linguistico in un audio che assomigli a una voce umana in un processo chiamato text-to-speech. Sempre utilizzando AWS come esempio, c'è un servizio su AWS chiamato Polly che facilita la conversione del testo in parlato realistico, in modo che i riconoscimenti o le domande aggiuntive possano essere ritrasmessi con voce naturale.

Dove ci porterà?

Sebbene la domanda e l'utilizzo della PNL nelle applicazioni consumer siano aumentati, lo stesso non si può dire per le applicazioni aziendali. Nelle applicazioni consumer, l'ampiezza del vocabolario e la complessità degli intenti sono più limitati, a partire dalle attività quotidiane. Nelle applicazioni aziendali, invece, il vocabolario richiesto è molto più ampio se si tiene conto del linguaggio del dominio e la complessità degli intenti varia notevolmente a seconda dell'applicazione aziendale. L'ambiguità che spesso è insita negli enunciati nel mondo degli affari può essere complessa. A titolo di esempio, si pensi a un semplice enunciato di un utente del tipo "Mostrami i servizi più performanti nel 1° trimestre". Si tratta di un'affermazione piuttosto ambigua: cosa significa "Q1", "top" o "performance" e pensate ai possibili modi alternativi di porre la domanda (permutazione degli enunciati)?

L'aspetto interessante è che le stesse tecnologie NLP e gli stessi framework di sviluppo che si sono evoluti per fornire prodotti di consumo come Echo e Google Home sono disponibili anche per gli sviluppatori di applicazioni aziendali. E man mano che questi framework si evolvono e si affinano, l'insieme dei modelli NLU creati diventa disponibile anche per le applicazioni aziendali.

Nello spazio delle applicazioni aziendali sta nascendo una nuova dimensione dell'esperienza utente e dell'interazione, ancora una volta guidata dalle aspettative delle applicazioni consumer. Con il tempo, le esperienze vocali, più naturali per gli utenti, trasformeranno l'esperienza dell'utente in modo analogo a quello introdotto dalle interfacce grafiche. È un momento entusiasmante per sviluppare nuove applicazioni aziendali!