In questo articolo programmeremo con python un chat bot intelligente, che potrai facilmente estendere per i tuoi progetti.
Prima di iniziare rispondiamo a tre domande che ci vengono spesso fatte nella chat del sito.
Di quali competenze ho bisogno per creare un chatbot?
Gli sviluppatori di chatbot devono possedere una vasta gamma di abilità. Devono avere una conoscenza approfondita delle piattaforme e dei linguaggi di programmazione per lavorare in modo efficiente sullo sviluppo di Chatbot. Gli sviluppatori di chatbot dovrebbero essere esperti in algoritmi di apprendimento, intelligenza artificiale ed elaborazione del linguaggio naturale. Background multilingue con esperienza di programmazione in linguaggi come Java, PHP, Python, Ruby e altri. I programmatori devono avere dimestichezza con le piattaforme per migliorare la qualità del chatbot. Però non preoccuparti perchè da oggi dopo questo tutorial potrai dedicarti allo studio dei chatbot con una base in più.
Che cos'è un chatbot basato su regole?
Invece di utilizzare l'intelligenza artificiale, un bot basato su regole utilizza un flusso ad albero per assistere gli ospiti con le loro domande. Ciò indica che il bot guiderà l'ospite attraverso una serie di domande di follow-up per arrivare alla soluzione corretta. Hai il controllo completo sul dialogo perché le strutture e le risposte sono tutte predefinite. Quindi, perché dovresti usare un chatbot con regole? Numeri più piccoli e richieste semplici, come prenotare un tavolo in un ristorante o chiedere informazioni sugli orari di apertura, sono l'ideale per i chatbot basati su regole.
Esistono Chatbot senza I.A.?
Assolutamente si, sono molto semplici e non molto utili perchè sono basati per la maggior parte su dei semplici if.
ora iniziamo
Cos'è un Chatbot?
Un chatbot è un software basato sull'intelligenza artificiale progettato per interagire con gli esseri umani nel loro linguaggio naturale. Questi chatbot di solito conversano tramite metodi uditivi o testuali e possono imitare senza sforzo i linguaggi umani per comunicare con gli esseri umani in modo simile a quello umano. Un chatbot è probabilmente una delle migliori applicazioni di elaborazione del linguaggio naturale.
I chatbot possono essere classificati in due varianti principali:
basati su regole e basato sull'apprendimento automatico.
L'approccio basato su regole addestra un chatbot a rispondere alle domande sulla base di una serie di regole predeterminate su cui è stato inizialmente addestrato. Queste regole stabilite possono essere molto semplici o molto complesse. Sebbene i chatbot basati su regole possano gestire abbastanza bene query semplici, di solito non riescono a elaborare query/richieste più complicate.
Come suggerisce il nome, i robot di autoapprendimento sono chatbot che possono imparare da soli. Questi sfruttano tecnologie avanzate come l'intelligenza artificiale e l'apprendimento automatico per allenarsi da istanze e comportamenti. Naturalmente, questi chatbot sono molto più intelligenti dei robot basati su regole.
I robot di autoapprendimento possono essere ulteriormente suddivisi in due categorie:
1. Chatbot basati sul recupero [Retrieval-based Chatbots]
Un chatbot basato sul recupero funziona su modelli di input predefiniti e imposta le risposte. Una volta inserita la domanda/modello, il chatbot utilizza un approccio euristico per fornire la risposta appropriata. Il modello basato sul recupero è ampiamente utilizzato per progettare chatbot orientati agli obiettivi con funzionalità personalizzate come il flusso e il tono del bot per migliorare l'esperienza del cliente.
2. Chatbot generativi [Generative Chatbots]
A differenza dei chatbot basati sul recupero, i chatbot generativi non si basano su risposte predefinite: sfruttano le reti neurali seq2seq. Questo si basa sul concetto di traduzione automatica in cui il codice sorgente viene tradotto da una lingua a un'altra lingua. Nell'approccio seq2seq, l'input viene trasformato in un output.
Il primo chatbot risale al 1966 quando Joseph Weizenbaum creò ELIZA che poteva imitare il linguaggio di uno psicoterapeuta in sole 200 righe di codice. Tuttavia, grazie al rapido avanzamento della tecnologia, oggi abbiamo fatto molta strada dai chatbot con script ai chatbot in Python.
Chatbot nella generazione di oggi
Oggi disponiamo di chatbot intelligenti basati sull'intelligenza artificiale che utilizzano l'elaborazione del linguaggio naturale (NLP) per comprendere i comandi umani (testo e voce) e imparare dall'esperienza. I chatbot sono diventati uno strumento fondamentale di interazione con i clienti per aziende e marchi che hanno una presenza online attiva (sito web e piattaforme di social network).
I chatbot che utilizzano Python sono uno strumento ingegnoso poiché facilitano la messaggistica istantanea tra il marchio e il cliente. Pensa a Siri di Apple, Alexa di Amazon e Cortana di Microsoft.
Non sono semplicemente meravigliosi?
Non sei già curioso di imparare come creare un chatbot in Python?
In sostanza, i chatbot che utilizzano Python sono programmati per acquisire le informazioni che gli fornisci e quindi analizzarle con l'aiuto di complessi algoritmi di intelligenza artificiale e fornirti una risposta scritta o verbale. Poiché questi robot possono imparare dal comportamento e dalle esperienze, possono rispondere a un'ampia gamma di query e comandi.
Sebbene i chatbot in Python abbiano già iniziato a dominare la scena tecnologica al momento, Gartner prevede che entro il 2020 i chatbot gestiranno quasi l'85% delle interazioni cliente-marca .
Alla luce della crescente popolarità e adozione dei chatbot nel settore, puoi aumentare il tuo valore di mercato imparando a creare un chatbot in Python, uno dei linguaggi di programmazione più utilizzati al mondo.
Oggi ti insegneremo come creare un semplice chatbot in Python usando la libreria ChatterBot Python. Quindi iniziamo!
Libreria ChatterBot per svilupare chatbot
ChatterBot è una libreria Python progettata per fornire risposte automatizzate agli input degli utenti. Fa uso di una combinazione di algoritmi ML per generare molti tipi diversi di risposte. Questa funzione consente agli sviluppatori di creare chatbot utilizzando Python in grado di conversare con gli esseri umani e fornire risposte appropriate e pertinenti. Non solo, gli algoritmi ML aiutano il bot a migliorare le sue prestazioni con l'esperienza.
Un'altra caratteristica eccellente di ChatterBot è la sua indipendenza dalla lingua. La libreria è progettata in modo da rendere possibile addestrare il tuo bot in più linguaggi di programmazione.
Come funziona ChatterBot?
Quando un utente inserisce un input specifico nel chatbot (sviluppato su ChatterBot), il bot salva l'input insieme alla risposta, per un uso futuro. Questi dati (delle esperienze raccolte) consentono al chatbot di generare risposte automatiche ogni volta che viene immesso un nuovo input.
Il programma sceglie la risposta più adatta dall'istruzione più vicina che corrisponde all'input, quindi fornisce una risposta dalla selezione già nota di affermazioni e risposte. Nel tempo, man mano che il chatbot si impegna in più interazioni, l'accuratezza della risposta migliora.
Come creare un chatbot in Python?
Adotteremo un approccio passo dopo passo e analizzeremo il processo di creazione di un chatbot Python.
Prerequisiti :
Se non sai cosa è il Machine Learning, clicca qui
Se non sai cosa è il Deep Learning, clicca qui
Se non sai come scaricare e gestire le librerie, clicca qui
Se non sai cosa sia un Dataset, clicca qui
Se non sai dove e come scrivere codice, clicca qui
Per costruire un chatbot in Python, devi importare tutti i pacchetti necessari e inizializzare le variabili che vuoi usare nel tuo progetto chatbot. Inoltre, ricorda che quando lavori con dati di testo, devi eseguire la preelaborazione dei dati sul tuo set di dati prima di progettare un modello ML.
È qui che la tokenizzazione aiuta con i dati di testo: aiuta a frammentare il set di dati di testo di grandi dimensioni in blocchi più piccoli e leggibili (come le parole). Una volta fatto, puoi anche optare per la lemmatizzazione che trasforma una parola nella sua forma lemma. Quindi crea un file pickle per archiviare gli oggetti Python utilizzati per prevedere le risposte del bot.
Un'altra parte vitale del processo di sviluppo del chatbot è la creazione dei set di dati di addestramento e test. Ora che abbiamo coperto le basi dello sviluppo di chatbot in Python, approfondiamo il processo vero e proprio!
Step 1. Installare le Librerie
Il primo passo per creare un chatbot in Python con la libreria ChatterBot è installare la libreria nel tuo sistema. È meglio creare e utilizzare un nuovo ambiente virtuale Python per l'installazione. Per farlo, devi scrivere ed eseguire questo comando nel tuo terminale Python:
pip install chatterbot
pip install chatterbot_corpus
#se hai python3
pip3 install chatterbot
pip3 install chatterbot_corpus
Se stai utilizzando google Colab invece
!pip install chatterbot
!pip install chatterbot_corpus
Step 2. Importiamo le Librerie
L'importazione delle librerie è il secondo passaggio nel processo di creazione del chatbot Python. Tutto quello che devi fare è importare due classi: ChatBot da chatterbot e ListTrainer da chatterbot.trainers. Per fare ciò, crea un nuovo file python o un nuovo file .ipynb e incolla:
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
Step 3. Crea e addestra il chatbot
Questo è il terzo passaggio per creare chatbot in Python. Il chatbot che stai creando sarà un'istanza della classe "ChatBot". Dopo aver creato una nuova istanza ChatterBot, puoi addestrare il bot a migliorarne le prestazioni. La formazione garantisce che il bot disponga di conoscenze sufficienti per iniziare con risposte specifiche a input specifici. Ora devi eseguire il seguente comando:
my_bot = ChatBot(name='Il_NostroPrimo_BOT', read_only=True,
logic_adapters=['chatterbot.logic.MathematicalEvaluation',
'chatterbot.logic.BestMatch'])
Qui, l'argomento (che corrisponde al nome del parametro) rappresenta il nome del tuo chatbot Python. Se desideri disabilitare la capacità del bot di apprendere dopo l'addestramento, puoi includere il comando "read_only=True". Il comando "logic_adapters" indica l'elenco degli adattatori utilizzati per addestrare il chatbot.
Mentre "chatterbot.logic.MathematicalEvaluation" aiuta il bot a risolvere problemi di matematica, "chatterbot.logic.BestMatch" lo aiuta a scegliere la corrispondenza migliore dall'elenco di risposte già fornite.
Dato che devi fornire un elenco di risposte, puoi farlo specificando gli elenchi di stringhe che possono essere utilizzati in seguito per addestrare il tuo chatbot Python e trovare la corrispondenza migliore per ogni query. Ecco un esempio di risposte che puoi addestrare al tuo chatbot usando Python per imparare:
small_talk = ['Ciao!',
'Ciao Umano!',
'Come stai?',
'Come va?',
'Sono un robot sto benissimo.',
'Meglio di un robot chi può stare, tu come stai?',
'sto bene',
'felice di sentirlo.',
'mi sento benissimo',
'eccellente, felice di sentirlo.',
'non così bene',
'mi dispiace sentirlo.',
'come ti chiami?',
'Sono pybot. fammi una domanda di matematica, per favore.']
math_talk_1 = ['teorema di pitagora',
'a al quadrato più b al quadrato uguale a c al quadrato.']
math_talk_2 = ['legge dei coseni',
'c**2 = a**2 + b**2 - 2 * a * b * cos(gamma)']
Puoi creare e addestrare il bot scrivendo un'istanza di "ListTrainer" in questo modo:
list_trainer = ListTrainer(my_bot)
for item in (small_talk, math_talk_1, math_talk_2):
list_trainer.train(item)
Ora il tuo chatbot Python è pronto per comunicare.
Step 4. Comunica con Python Chatbot
Per interagire con il tuo chatbot Python, puoi usare la funzione .get_response(). Ecco come dovrebbe apparire durante la comunicazione:
a = input()
while a != "esci":
print(my_bot.get_response(a))
a = input()
Tuttavia, è essenziale capire che il chatbot che utilizza Python potrebbe non sapere come rispondere a tutte le tue domande. Poiché le sue conoscenze e la sua formazione sono ancora molto limitate, devi dargli tempo e fornire più dati di formazione per addestrarlo ulteriormente.
Step 5. Addestra il tuo chatbot Python con un corpus di dati
In quest'ultimo passaggio di come creare un chatbot in Python, per addestrare ulteriormente il tuo chatbot python, puoi utilizzare un corpus di dati esistente. Ecco un esempio di come addestrare il tuo chatbot Python con un corpus di dati fornito dal bot stesso:
from chatterbot.trainers import ChatterBotCorpusTrainer
corpus_trainer = ChatterBotCorpusTrainer(my_bot)
corpus_trainer.train('chatterbot.corpus.italian')
La cosa buona è che ChatterBot offre questa funzionalità in molte lingue diverse. Quindi, puoi anche specificare un sottoinsieme di un corpus nella lingua che preferisci. È così che creiamo chatbot in Python.
Conclusione
Quello che abbiamo illustrato qui è solo uno dei tanti modi per creare un chatbot in Python. Puoi anche usare NLTK, un'altra ricca libreria Python per creare un chatbot Python. E anche se quello che hai imparato qui è un chatbot molto semplice in Python che non ha quasi nessuna capacità cognitiva, dovrebbe essere sufficiente per aiutarti a capire l'anatomia dei chatbot.
Una volta compreso perfettamente il design di un chatbot utilizzando Python , puoi sperimentarlo utilizzando diversi strumenti e comandi per renderlo ancora più intelligente.
error: command 'C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.32.31326\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2
[end of output]
Non va. Grazie per l'aiuto.🙂