Natural Language Processing e chatbot, nella giungla dei contesti

– Non è una scusa, Kala! Non continuare a difenderlo!
– Imparerà…
– Non imparerà! Non si impara ad essere uno di noi!
[dal film Disney “Tarzan”, 1999]

Anche se tratta da una situazione di fantasia, in questa scena del film Tarzan ritroviamo la stessa frustrazione con cui chi progetta chatbot si trova a fare i conti…

“Questo bot non capisce niente!”, “Cosa si può pretendere da un robot…”, “L’interazione con un chatbot non è paragonabile a quella che abbiamo tra persone”. Questi e molti altri sono i commenti di chi, testando un bot, incappa in qualche incidente comunicativo.

«Non si impara ad essere uno di noi!»

Spesso, nonostante le migliori intenzioni, i chatbot non riescono a offrire l’esperienza utente piacevole ed efficiente, come la si immagina. Il gap comunicativo è un dato di fatto e questo lo sanno bene programmatori e designer delle conversazioni, che si prendono però a cuore le performance del proprio bot, rendendo la sua interazione il più possibile umanizzata.

Quando clienti e prospect chiedono di introdurre un chatbot come nuovo touchpoint della propria azienda, la loro aspettativa è quella di un assistente virtuale smart, in grado di realizzare sistemi di dialogo naturale e quindi basati sull’Artificial Intelligence. Applicare l’intelligenza artificiale nell’ambito dei chatbot significa sfruttare il Natural Language Processing (NLP) per interpretare le richieste dell’utente, fornendo un’interazione naturale come quella tra due umani.

Ciò implica un maggiore investimento di risorse rispetto a quanto richiederebbe la realizzazione di un basic chatbot; l’assistente smart ha, inoltre, la necessità di appoggiarsi su una conoscenza minuziosa degli ambiti che deve trattare, oltre a saper gestire interazioni complesse (dal punto di vista del linguaggio) con l’utente. Per un designer delle conversazioni e un dev questo si traduce, infatti, in decision tree diagram più articolati, oltre a un numero idealmente sempre crescente di intenti (via via che il chatbot acquisisce complessità).

In questo articolo faremo chiarezza sulla differenza tra basic e smart chatbot, specificando che la realizzazione di un bot efficiente non deve per forza implicare l’applicazione dell’AI, ma a seconda delle priorità commerciali un basic chatbot può essere la risposta idonea alle necessità dell’azienda.
Spiegheremo inoltre come si traduce nel concreto il NLP, suddividendolo in 6 fasi e facendo emergere le implicazioni dal punto di vista linguistico.
Infine renderemo esplicite le tanto additate tortuosità linguistiche del NLP, che mettono a dura prova la propensione ad un rapido progresso in questo campo.

A lettura conclusa sarà chiara l’importanza di affidarsi ad un team multidisciplinare per la realizzazione di un chatbot. La specifica competenza dei componenti è in grado di coniugare esigenze di programmazione, linguistiche e commerciali, facendo emergere un’adeguata brand identity.

In una giungla sempre più popolata di chatbot, riuscire a rendere unica l’esperienza vissuta attraverso questo affascinante touchpoint è la chiave per portare la comunicazione aziendale ad un livello superiore.

Basic e Smart chatbot: AI sì o no?

Come già detto precedentemente, la scelta di introdurre un chatbot nella propria proposta di touchpoint non deve per forza implicare l’AI. Esistono chatbot che svolgono efficientemente la funzione per cui sono stati progettati senza avere la necessità di intrattenere conversazioni articolate con l’utente; basti pensare ad assistenti virtuali creati per proporre offerte commerciali attraverso il marketing automation: il bot invia all’utente sequenze automatiche di messaggi, che possono essere impostati sulla base della propria strategia di lead generation. Ad un input affermativo dell’utente per la proposta di offerte, il chatbot può, ad esempio, limitarsi a proporre un carousel con le offerte attive in quel momento. L’importante è riuscire a fornire risposte il più possibile rilevanti per l’utente.

Quelli appena descritti sono basic chatbot, semplici e basati su delle regole: ad una richiesta A dell’utente, il chatbot fornisce una risposta B. C’è una discreta flessibilità per quanto riguarda la comprensione di errori di battitura ma il chatbot non è in grado di processare una richiesta sconosciuta.
Per questo, tutto ciò che il chatbot è in grado di fare deve essere chiaro all’utente fin dall’inizio.

I chatbot basati sull’Artificial Intelligence, a differenza dei precedenti, sono in grado di analizzare il linguaggio dell’utente per estrarne il significato e fornire la risposta adeguata. Qui si cerca la rilevanza completa della risposta e della relazione stabilita con l’utente. Questi chatbot possono comprendere un input sconosciuto sfruttando il NLP.

La maggior parte dei chatbot in circolazione mescola i due approcci: si fondano su una complessa logica decisionale ad albero ed utilizzano il NLP per rispondere a query sconosciute, facendo ricadere la query in questione in uno dei rami dell’albero, quello che ritengono coerente con la richiesta.

Questo avviene mediante i processi di matching e parsing (ossia la ricerca di una risposta o follow-up quanto più coerente possibile con il messaggio dell’utente).
Attraverso dei cosiddetti fallback (letteralmente “alternative”) è possibile gestire questa tecnica ed evitare che il chatbot, cercando la risposta più adatta in funzione del NLP, fornisca una risposta sbagliata: stabilendo correttamente i contesti, l’utilizzo dei fallback permette al chatbot di fare all’utente una richiesta più specifica, riformulata, rimanendo quindi in quel determinato flusso di conversazione.

Cos’è il NLP? Analizzare il linguaggio umano in 6 step

Il NLP consiste nell’applicazione di algoritmi per identificare ed estrarre le regole del linguaggio naturale. In altre parole, permette ad una macchina di analizzare il linguaggio umano e di derivarne un significato.

Riferendoci ad un chatbot il processo di NLP consiste nello spezzare frasi input dell’utente: agisce cioè processando la linguistica di un enunciato in entrata, o utterance, per individuare entità ed intenti dell’utente.
Questo è possibile grazie ad alcuni step, che ora analizzeremo per comprendere come lavora il NLP e, di conseguenza, come è strutturato il linguaggio umano.

  • Tokenizzazione

La tokenizzazione può essere considerata una pre-analisi, che avviene cioè prima della vera e propria elaborazione del testo scritto. Si tratta della segmentazione del testo in unità linguistiche minime (parole, punteggiatura, caratteri alfanumerici…), che verranno elaborate successivamente.
La definizione di token va però oltre l’individuazione di unità delimitate su entrambi i lati da spazi o dalla punteggiatura: un token deve infatti essere linguisticamente significativo e metodologicamente utile. Questi due vincoli dipendono dal contesto linguistico.
È molto importante la corretta identificazione delle unità, in quanto errori commessi in questa fase si propagheranno in quelle successive.

  • Analisi Lessicale

Partendo da una tokenizzazione corretta, l’analisi lessicale (cioè la classificazione delle parole o token in categorie grammaticali) dovrebbe risultare semplificata. In realtà dal punto di vista linguistico è tutto molto più complesso; per un linguista le unità minime della lingua non sono le parole, bensì i morfemi, elementi minori dotati di significato.
Per fare un esempio, la parola “musicali” può essere a sua volta scomposta in unità arrecanti significato: music, riferito a musica e con significato di “arte che consiste nell’ideare e nel produrre successioni strutturate di suoni” , al con funzione di aggettivo e significato di “relativo a”, i con significato di plurale.
Ciascuno di questi 3 morfemi può entrare come componente di altre parole (troviamo music in musichiere, al in internazionale, i in facili).

  • Analisi Sintattica

L’analisi sintattica serve a comprendere come si combinano fra loro le parole e come queste si organizzano in frasi; il focus in questa fase non è sulla categoria grammaticale (sostantivo, aggettivo, preposizione…), ma sulla funzione (soggetto, predicato, complemento). Avere chiara la struttura degli enunciati è un aspetto molto importante per la fase successiva.

  • Discourse Integration

Questa fase è strettamente legata alla precedente, perché riguarda il significato di un enunciato in funzione di altre frasi facenti parte del discorso in questione. Ci riferiamo alla necessità di identificare un soggetto e riprenderlo poi, attraverso un pronome, nella frase successiva. Ad esempio:

Beppe è un SEO smanettone. Lo becchiamo spesso a collaborare con dev e designer.

Per comprendere il discorso è necessario sapere che Beppe è la persona a cui ci riferiamo con il pronome “Lo” nella seconda frase.
Il fenomeno prende tecnicamente il nome di anafora, ma può anche verificarsi di avere bisogno della frase successiva per comprendere quella in questione (catafora).

  • Analisi Semantica

Questo piano di analisi della lingua si focalizza sul significato dei segni linguistici. Le difficoltà si riscontrano già a partire dalla definizione di “significato”, concetto astratto nonchè punto d’incontro tra lingua, mente umana e mondo esterno. L’analisi semantica esamina alcuni aspetti del lessico (insieme di parole o “lessemi”, le unità di analisi minime per il livello semantico). I problemi di contesto in questo caso riguardano le occorrenze di omonimia e polisemia: lessemi con lo stesso significante (segno grafico) e diversi significati.

  • Analisi Pragmatica

Studia le modalità in cui il contesto influisce sul significato, in modo ancora più ampio della Discourse Integration. Tocca infatti l’ambiguità legata all’enuciazione (cercata più o meno intenzionalmente dai parlanti), che è già difficile da gestire per un essere umano, figuriamoci per un computer.

Perché il Contesto è l’aspetto più difficile? Parola ai linguisti

Come risulta dalle osservazioni del paragrafo precedente, l’aspetto più difficile del replicare una conversazione umana riguarda il contesto; i linguisti da sempre cercano di definire un metodo efficiente per analizzare il significato della comunicazione a partire dal contesto e da questi studi sono emerse delle teorie, tra cui la Speech Act Theory, Teoria degli Atti Linguistici (J.L. Austin, 1962 e J.R. Searle, 1969).

Questa implica il fatto che ogni enunciato non solo presenta informazioni, descrive una situazione o ne sostiene la veridicità, ma comporta il compimento di azioni concrete sulla base di un influsso comunicativo latente.  Ad oggi il punto debole del NLP è infatti l’utilizzo degli elementi pragmatici della conversazione (con conseguenze a livello pratico, concreto) per contribuire alla comprensione del linguaggio nelle macchine: il vero problema è identificare e modellare gli Speech Act, atti linguistici.

La teoria si inserisce nell’ambito della linguistica pragmatica, che si fonda sull’uso contestuale della lingua come azione reale e concreta, cioè l’uso di un determinato linguaggio in una data situazione comunicativa: il contesto.
Qualsiasi enunciato linguistico è sempre contestualizzato e ha come scopo la messa in atto di una determinata azione per ottenere un preciso risultato. Approfondiamo meglio…

Austin delineò la propria teoria facendo notare che per ogni singolo enunciato ci troviamo in presenza di tre tipi di atti linguistici, e cioè locutorio, illocutorio e perlocutorio.

  • L’atto locutorio è una pura successione di elementi linguistici portatori di significato: consiste nella susseguirsi di fonemi che formano le parole, a loro volta disposte secondo le norme sintattiche di una lingua.
  • L’atto illocutorio è l’azione che si compie nel dire qualcosa (promessa, ordine, consiglio…). Per fare un esempio concreto, l’enunciato

Mara è appassionata di montagna

rivolto al collega di lavoro che vuole farle un regalo, può essere visto come un consiglio ad acquistare dell’abbigliamento tecnico per escursioni.

  • L’atto perlocutorio rappresenta l’effetto che si produce dicendo qualcosa: il risultato dell’enunciato

Mara è appassionata di montagna

potrebbe quindi essere l’acquisto di una maglia termica da parte del collega in cerca del regalo perfetto per Mara.

È chiaro quindi come sia frequente dover fare riferimento al contesto situazionale per la corretta interpretazione di un enunciato.

Noi umani ce la caviamo bene nelle conversazioni: siamo capaci di comprendere il sarcasmo, spesso riusciamo a leggere tra le righe e sfruttiamo costantemente le informazioni contestuali quando diamo una risposta al nostro interlocutore. I bot non ancora del tutto. Non possono contenere informazioni contestuali per più di alcune battute della chat e prima o poi finiranno per perdere traccia di ciò che l’utente stava dicendo prima di porre la domanda.

Fanno appunto eccezione quelli alimentati dalla tecnologia di elaborazione del Linguaggio Naturale: i progressi dell’AI nel NLP sono notevoli. Ad oggi, però, la capacità di un chatbot di situarsi, intento dopo intento, nel contesto corretto sta principalmente nell’accuratezza di chi lo progetta e lo sviluppa, nella minuziosità che permette di isolare circostanze e risvolti conversazionali attraverso una logica decision-tree. Logica che deve tenere chiaramente conto delle implicazioni linguistiche che potrebbero emergere in ciascuno scenario e applicabili solo attraverso un accurato lavoro di programmazione.

È bene tenere presente che questo lavoro non riguarda solamente la fase di progettazione. La lingua cambia costantemente e il monitoraggio delle conversazioni risulta fondamentale per il training del chatbot. È necessario un aggiornamento continuo di parole ed espressioni, che per il bot risultino ancora sconosciute.

La vera sfida non è creare un chatbot, ma più che altro mantenerlo e perfezionarlo con cura e costanza, affinchè evolva nell’assistente virtuale che ogni cliente sogna.

Interessante? Chiedici una consulenza