-
Ciao! Benvenuti in una nuova serie di video sui ChatBot
-
Questa serie si troverà nel mio programma
-
che ho cominciato circa un anno fa
-
ho fatto un po di video per voi
-
ed ora voglio aggiungere alcuni contenuti ad esso.
-
Quindi, quello che voglio aggiungere riguarda i ChatBots.
-
Ok prima di tutto, cosa è un ChatBot?
-
Utilizzerò la definizione di wikipedia che dice:
-
"Un chatbot è un programma per computer
-
che conduce una conversazione tramite
-
metodi auditivi o testuali."
-
Quindi, questo è quello che è già in molti miei esempi
-
dove l'utente scrive qualcosa, viene processato
-
e qualche altro testo viene mostrato magari su una web page
-
ho tutta una serie sui bot di twitter
-
in quei bot puoi considerare la conversazione
-
come se fosse solo ad una via
-
è un bot che tweeta una volta all'ora
-
dice qualcosa all' audience
-
e nessuno risponde
-
oppure può essere una conversazione
-
uno-a-molti, dove ogni volta che qualcuno tweeta
-
a quel twitter bot, quel bot risponde con qualcosa
-
sarebbero due bot che parlano tra loro
-
Quindi "chatbot" è una cosa più ampia
-
rispetto a quello che abbiamo visto in passato
-
ho visto solo dei tipi di chatbot specifici
-
senza menzionare la parola "chatbot".
-
Quindi quello che ora voglio dirvi è:
-
cosa ne pensate di un programma per computer
-
che ha una conversazione con un umano?
-
E che possiamo realizzare tutto questo
-
con strumenti in-the-browser e opensource?
-
Potremmo anche pensare
-
Oh! Potremmo anche fare qualcosa
-
per dei media commerciali,
-
come Twitter o una conversazione vocale
-
come "Ciao Siri!"
-
Sembra che questi pennarelli non sono
-
dei pennarelli intelligenti!
-
Qualcuno dovrebbe inventare qualcosa che
-
permetta di fare delle domande
-
a dei pennarelli, ma no problem!
-
Alexa, expo, qual'è oggi il meteo a New York?
-
Uhm, sembra che questo detergente per
-
le lavagne a pennarello "expo"..
-
Sarebbe stato bello se tutto questo
-
fosse stato spontaneo?
-
Ma.. l'ho fatto prima e ora sto facendo
-
questo video cercando di
-
far sembrare questo scherzo spontaneo,
-
ma non sta funzionando..
-
Ok! Mi son dimenticato della precisazione
-
che stavo facendo!
-
"Un chatbot è un programma per computer
-
che conduce una conversazione tramite
-
metodi auditivi o testuali."
-
Quindi voglio prendere tutta questa roba
-
e vedere i diversi strumenti,
-
farli funzionare nel browser
-
E voglio vedere se riusciamo a fare qualcosa
-
con la voce e riconoscimento vocale
-
ed interfacciarci con prodotti commerciali
-
che sembra stia pubblicizzando gratuitamente
-
cosa che non sto facendo in questo video.
-
Uhm, c'è una lunga storia in questa
-
tradizione dei computer che conversano
-
e, uhm, ora non farò una
-
presentazione completa della storia
-
ma proverò ad includere dei link
-
nello specifico ad un articolo che
-
effettivamente vi da la storia dei chatbot
-
ed è un fantastico articolo
-
che vi linkerò nella descrizione del video
-
Ma eliza probabilmente è stato
-
uno dei più famosi, nel 1966
-
e simula una conversazione utilizzando
-
pattern matching e sostituzioni.
-
Quindi, questo è qualcosa di cui
-
voglio parlarvi: quali sono le diverse
-
tecniche per fare un chatbot,
-
come determini, come fa il bot o
-
il programma capisce cosa
-
ha detto la persona ed il bot risponde.
-
Sono delle risposte hard-coded
-
è una rete neurale o machine learning
-
che genera le risposte?
-
Questo è qualcosa che voglio
-
esplorare in questi video.
-
Uhm, un altro esempio è stato ALICE, 1995
-
"Artificial Linguistic Internet Computer Entity"
-
questo è il miglior acronimo di sempre!
-
Ma voglio menzionare ALICE perché
-
con ALICE uscì qualcosa chiamato AIML.
-
"Artificial Intelligence Markup Language".
-
Essenzialmente un linguaggio a markup
-
per scrivere uno script per un chatbot.
-
Quindi se un utente dice "questo",
-
il chatbot dice "questo"
-
Se l'utente dice "questo"
-
il chatbot dice "questo".
-
E lo script è qualcosa simile a questo
-
quindi, ci può essere questa idea di "pattern"
-
o anche si può decidere di
-
impostare un topic (argomento)
-
o una reply (risposta)
-
o un template (modello)
-
Tutto questo! Vi incoraggio ad investigare
-
questo alicebot.org ed il motivo per cui
-
sto menzionando questo è perché
-
il mio primo video comincerà usando
-
qualcosa che si chiama RiveScript
-
che è uno strumento open source
-
per creare il cervello dei chatbot
-
più o meno simile a questa sintassi
-
a markup di ALICE.
-
Uhm, quindi queste sono alcune
-
considerazioni importanti e questo è
-
l'articolo a cui mi stavo riferendo
-
quindi vi consiglio vivamente di
-
andare a leggerlo se volete imparare
-
qualcosa in più riguardo la storia
-
dei chatbot e anche dove questa idea
-
di deep learning e reti neurali potrebbero
-
incastrarsi, il che sarà visto in
-
un video futuro, ma qualcosa che voglio
-
a cui pensiate davvero sono i modelli
-
di conversazione, cioè
-
retrieval contro generative.
-
Quindi, partirò con il modello retrieval
-
che è molto più semplice il che vuoldire:
-
ho solo questo script che indica cosa
-
il bot sa dire e cerca di far coincidere
-
qualche pattern con quello che
-
l'utente sta dicendo e rispondere
-
in un dato modo.
-
Mentre il modello generative potrebbe
-
avere un algoritmo che genera quello
-
che il bot deve dire in qualche modo,
-
Tra Long (lunga) e short (corta)
-
conversation, preferisco scegliere
-
una short conversation, quindi come faccio
-
a creare un bot che risponde può fare
-
uno scherzo tipo quello del "Toc Toc"
-
o rispondere ad uno scherzo "Toc Toc"?
-
Questa è una short conversation oppure
-
"indovina un numero" che sarà un esempio
-
che farò in un video futuro
-
che in realtà ho già fatto, ecco perché
-
lo sto accennando
-
Riguarda un chatbot che pensa un numero
-
e tu provi a indovinarlo.
-
Dominio open (aperto) contro close(chiuso)
-
vuoldire che stai facendo un bot che
-
riguarda solo il caso di ordinare una pizza
-
oppure un bot "psicologo"
-
parlami di tutti i tuoi problemi
-
ed io risponderò, quindi
-
un dominio molto ampio.
-
Quindi di nuovo voglio partire imparando
-
i chatbot creando un prototipo facendo
-
cose più veloci e più facili, perciò
-
comincerò con un sistema basato su
-
Short, closed e retrieval
-
ma spero che man mano che questa
-
serie di video si espande, io possa
-
parlarvi dei sistemi generative,
-
conversazioni long e domini open.
-
Quindi nuovamente, la maggior parte
-
delle mie conoscenze e riferimenti
-
vengono da questo magnifico articolo.
-
Quindi RiveScript è da dove
-
voglio cominciare! Vorrei provare ad usare
-
le cose dell'open source 3 il più possibile
-
per poter spingere gli esperimenti
-
nella direzione dell'interfacciamento
-
con la voce eccetera per poter
-
ad un certo punto utilizzare delle cose
-
create da grosse aziende,
-
interfacciandoci con le loro API come
-
abbiamo fatto per twitter
-
quindi RiveScript è un linguaggio di
-
scripting semplice, basato su questa idea
-
di artificial intelligence markup language
-
ma in qualche modo è più semplice
-
è solo una manciata di facili regole e
-
proverò a vederne alcune con voi,
-
ma onestamente vi mostrerò la pagina
-
dove tutte le regole sono descritte
-
di modo che potrete leggerle da voi
-
Uhm ha una licenza open source MIT quindi
-
è una licenza molto libera e permissiva
-
e potrete usarlo con i diversi linguaggi
-
di programmazione disponibili:
-
Go, Java, JavaScript, Perl, Python e molti altri
-
Ma io lo utilizzerò con JavaScript
-
quindi nei prossimi video,
-
continuate a vedere, questa è l'ultima
-
presentazione di queste slide
-
(ding) non sono un bravo presentatore
-
di cose su internet nelle mie presentazioni?
-
Uhm, quindi se continuerete a
-
vedere questi video non utilizzerò
-
presentazioni a slide di nuovo,
-
uhm, partirò parlando semplicemente delle
-
basi di RiveScript e poi farò, uhm,
-
vedremo l'utilizzo di RiveScript
-
nel browser con JavaScript
-
ed eventualmente interfaccerò il tutto
-
con una libreria chiamata p5 speech che
-
mi permette di convertire
-
il parlato in testo ed il testo in parlato
-
dal browser ed eventualmente
-
riuscire anche in questo passaggio.
-
Quindi, spero che guarderete qualcuno
-
di questi video sui ChatBot
-
e ci farete qualcosa
-
e datemi un feedback!