Chatterbot front-end. Machine Learning
This commit is contained in:
parent
60a6c07b7a
commit
595b3c0993
|
@ -0,0 +1,38 @@
|
||||||
|
import PySimpleGUI as gui
|
||||||
|
from chatterbot import ChatBot
|
||||||
|
import chatterbot.utils
|
||||||
|
|
||||||
|
'''
|
||||||
|
Demo_Chatterbot.py
|
||||||
|
A GUI wrapped arouind the Chatterbot package.
|
||||||
|
The GUI is used to show progress bars during the training process and
|
||||||
|
to collect user input that is sent to the chatbot. The reply is displayed in the GUI window
|
||||||
|
'''
|
||||||
|
|
||||||
|
# redefine the chatbot text based progress bar with a graphical one
|
||||||
|
def print_progress_bar(description, iteration_counter, total_items, progress_bar_length=20):
|
||||||
|
gui.EasyProgressMeter(description, iteration_counter, total_items)
|
||||||
|
|
||||||
|
chatterbot.utils.print_progress_bar = print_progress_bar
|
||||||
|
|
||||||
|
chatbot = ChatBot('Ron Obvious', trainer='chatterbot.trainers.ChatterBotCorpusTrainer')
|
||||||
|
|
||||||
|
# Train based on the english corpus
|
||||||
|
chatbot.train("chatterbot.corpus.english")
|
||||||
|
|
||||||
|
################# GUI #################
|
||||||
|
with gui.FlexForm('Chat Window', auto_size_text=True, default_element_size=(30, 2)) as form:
|
||||||
|
layout = [ [gui.Output(size=(80, 20))],
|
||||||
|
[gui.Multiline(size=(70, 5), enter_submits=True),
|
||||||
|
gui.ReadFormButton('SEND', bind_return_key=True), gui.SimpleButton('EXIT')]]
|
||||||
|
|
||||||
|
form.Layout(layout)
|
||||||
|
# ---===--- Loop taking in user input and using it to query HowDoI web oracle --- #
|
||||||
|
while True:
|
||||||
|
button, (value,) = form.Read()
|
||||||
|
if button != 'SEND':
|
||||||
|
break
|
||||||
|
print(value.rstrip())
|
||||||
|
# send the user input to chatbot to get a response
|
||||||
|
response = chatbot.get_response(value.rstrip())
|
||||||
|
print(response)
|
Loading…
Reference in New Issue