Come Creare un ChatBot con Python e Chatterbot
Pubblicato da Michele Saba
Edit Gennaio 2019:
Attenzione, il codice mostrato nel video è ora valido solo in parte per via di modifiche apportate al package da parte dell'autore nelle ultime versioni!
A fine pagina trovata la versione aggiornata e al momento funzionante con Python 3.7+.
Oggi vedremo assieme come creare un chat bot con Python e Chatterbot, in pochissime righe di codice.
Chatterbot è una libreria che rende davvero semplice la creazione di bot in grado di intrattenere conversazioni con esseri umani.
Utilizza una serie di algoritmi di Machine Learning, e dispone di una serie di corpus per più lingue, da utilizzare per l'allenamento del bot.
La documentazione è inoltre davvero ben curata, il che rende piacevole il processo di personalizzazione e di comprensione delle componenti in gioco.
Di seguito il codice utilizzato nel video tutorial, che vi consiglio chiaramente di guardare!
Happy Coding! :)
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
bot = ChatBot(
"Chappie",
storage_adapter="chatterbot.storage.SQLStorageAdapter",
database="./db.sqlite3",
input_adapter="chatterbot.input.VariableInputTypeAdapter",
output_adapter="chatterbot.output.OutputAdapter",
logic_adapters=[
{
"import_path": "chatterbot.logic.BestMatch",
"statement_comparison_function": "chatterbot.comparisons.levenshtein_distance",
"response_selection_method": "chatterbot.response_selection.get_first_response"
}
]
)
with open("/home/pymike00/Desktop/chappie_bot/chatter_conversazione.txt") as f:
conversation = f.readlines()
bot.set_trainer(ListTrainer)
bot.train(conversation)
while True:
try:
user_input = input("msg: ")
response = bot.get_response(user_input)
print("bot:", response)
except(KeyboardInterrupt, SystemExit):
print("goodbye!")
break
CODICE AGGIORNATO A GENNAIO 2019:
from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
from chatterbot.response_selection import get_first_response
from chatterbot.comparisons import levenshtein_distance
import logging
logging.basicConfig(level=logging.CRITICAL)
bot = ChatBot(
"Chappie",
storage_adapter = "chatterbot.storage.SQLStorageAdapter",
database = "./db.sqlite3",
logic_adapters = [
"chatterbot.logic.BestMatch"
],
statement_comparison_function = levenshtein_distance,
response_selection_method = get_first_response
)
with open("/home/pymike00/chatter.txt") as f:
conversation = f.readlines()
trainer = ListTrainer(bot)
trainer.train(conversation)
while True:
try:
user_input = input("Tu: ")
bot_response = bot.get_response(user_input)
print("Chappie: ", bot_response)
except(KeyboardInterrupt, EOFError, SystemExit):
print("GoodBye!")
break
# Documentation: https://chatterbot.readthedocs.io/
# GitHub: https://github.com/gunthercox/ChatterBot
# Input/Output Adapters Support: https://github.com/gunthercox/ChatterBot/pull/1563
# Logging: https://chatterbot.readthedocs.io/en/stable/chatterbot.html?highlight=logger#enable-logging