Chatbot: cosa sono e come funzionano

Sono passati un paio d’anni ormai da quando in U-Hopper abbiamo cominciato a lavorare sul nostro primo chatbot. Lo abbiamo chiamato Talk2Fiesta ed è stato sviluppato grazie al Progetto Europeo FiestaIoT: l’obiettivo era quello di offrire un approccio alternativo che permettesse di accedere a informazioni ambientali (temperatura, umidità, vento, …) relative alla città di Santander, Spagna.

Da allora abbiamo sviluppato svariati altri bot. Tra i miei preferiti ci sono sicuramente TalkingCity, un bot che permette di scoprire gli eventi organizzati nella città di Aarhus, e Achibot, sviluppato internamente alla nostra azienda per permettere di monitorare e condividere con i colleghi gli obiettivi raggiunti di settimana in settimana.

Posso dire che ormai siamo in grado di creare bot non solo funzionali ma anche intelligenti. Ma mentre la nostra conoscenza e comprensione sull’argomento cresce ci capita spesso di parlare con persone che hanno dubbi e molte domande. Che cos’è un chatbot? È veramente un computer quello che risponde ai miei messaggi? E come riesce a farlo? Ecco quindi alcune informazioni che speriamo aiutino a rispondere a queste domande.

Cos’è un chatbot?

Un chatbot non è altro che un programma che è stato sviluppato in modo da riuscire a simulare delle conversazioni con delle persone. Simulare è la parola chiave di questa definizione: l’obiettivo di un bot non è infatti quello di eguagliare le caratteristiche di una conversazione tra due persone. Non solo questo non è possibile con la tecnologia disponibile al momento ma rischierebbe di creare delle esperienze non realistiche all’interno di una chat!

Un chatbot non si deve limitare a scrivere messaggi testuali o creare messaggi vocali. Può infatti utilizzare una grande varietà di interfacce grafiche e widget che permettono di arricchire e migliorare il modo in cui le informazioni vengono fornite e fruite. Un chatbot è inoltre in grado di fornire risposte pre-compilate: perché perdere tempo a scrivere un messaggio a mano quando è sufficiente cliccare su una delle opzioni proposte?

Come riescono i chatbot a comprendere il contenuto di un messaggio e a creare risposte significative?

Questa è la domanda chiave! Gli approcci che possono essere adottati sono svariati ma tutti hanno un obiettivo comune: identificare e riconoscere intento ed entità. L’intento rappresenta lo scopo del messaggio. Un intento specifico deve essere definito per ogni tipo di domanda alla quale si vuole essere in grado di rispondere. Le entità rappresentano invece termini specifici che permettono di dare un contesto al messaggio ricevuto.

Immaginiamo di aver appena ricevuto il seguente messaggio: Qual’è la temperatura a Trento in questo momento? . Come anticipato, per riuscire a rispondere a questa domanda, il nostro bot deve essere in grado di identificare un intento ed una serie di entità. In questo caso, lo scopo del nostro utente è quello di conoscere la temperatura (intento) per la città di Trento (entità che permette di conoscere il luogo di interesse) in questo momento (entità che arricchisce il contesto con un periodo di riferimento).

Ci sono svari approcci che permettono di identificate intenti ed entità.

Quello più semplice consiste nel ricercare parole specifiche all’interno dei messaggi ricevuti. Sicuramente una strategia che si può configurare velocemente nel momento in cui si sta creando un piccolo prototipo con limitate funzionalità. L’approccio più complesso e completo prevede invece di utilizzare servizi di analisi del linguaggio naturale, NLP (natural language processing). Ce ne sono svariati! Facebook stesso offre un’analisi di questo tipo per tutti i chatbot che si basano sulla rinomata piattaforma. Strano ma vero, insegnare a questi servizi come riconoscere intenti ed entità particolari è molto facile: è sufficiente infatti avere una decina di messaggi per ogni caso che necessita una risposta ed istruire il servizio a riconoscere intento ed entità per ciascuno di essi.


A questo punto spero che molti dei dubbi sul mondo dei chatbot siano stati risolti. Per saperne di più o per avviare una collaborazione con un progetto basato su chatbot non esitate a contattarci.
Qui le tre cose che abbiamo imparato sviluppando il TaklingCity.