Pycharm 使用chatterbot&;chatterbot语料库对我提出的所有问题都给出了错误的输出

Pycharm 使用chatterbot&;chatterbot语料库对我提出的所有问题都给出了错误的输出,pycharm,python-3.6,chatterbot,Pycharm,Python 3.6,Chatterbot,我试图使用Python3.6和Pycharm作为IDE创建一个聊天机器人项目,但是它作为输出给出的答案是不合适的,毫无意义。所以我的问题是我如何训练它,或者我应该做什么改变,这样它才能给我适当的输出 这是我的代码: 从chatterbot导入ChatBot 从chatterbot.trainers导入ListTrainer 导入会话模块 从tkinter进口* 将语音识别导入为s 导入线程 导入pyaudio 将pyttsx3作为pp导入 导入win32com.client eng=pp.in

我试图使用Python3.6和Pycharm作为IDE创建一个聊天机器人项目,但是它作为输出给出的答案是不合适的,毫无意义。所以我的问题是我如何训练它,或者我应该做什么改变,这样它才能给我适当的输出

这是我的代码:
从chatterbot导入ChatBot
从chatterbot.trainers导入ListTrainer
导入会话模块
从tkinter进口*
将语音识别导入为s
导入线程
导入pyaudio
将pyttsx3作为pp导入
导入win32com.client
eng=pp.init()
voices=eng.getProperty(“voices”)
印刷品(声音)
eng.setProperty('voice',voices[0].id)
def发言(文字):
英语说(单词)
运行等待
bot=ChatBot(“Bot1”)
CONVA=对话模块.con(bot)
培训师=列表培训师(机器人)
培训师培训(车队)
main=Tk()
主要几何图形(“500x700”)
主要名称(“CS部门”)
img=PhotoImage(文件='unnamed.png')
照片=标签(主,图像=图像)
照片包(pady=2)
帧=帧(主)
sc=滚动条(帧)
msg=Listbox(框架,宽度=80,高度=20,yscrollcommand=sc.set)
sc.pack(侧面=右侧,填充=Y)
msg.pack(侧面=左侧,填充=两侧,pady=10)
frame.pack()
#takequery:它将音频作为输入并将其转换为字符串
def take_query():
sr=s.Recognizer()#我想使用speechrec模块中定义的类
sr.pause_阈值=1
打印(“您的机器人正在收听并尝试讲话”)
将s.麦克风()作为m:
尝试:
音频=sr.listen(m)
QUOTE=sr.ENGINER_谷歌(音频、语言、英语)
打印(问题)
text.delete(0,结束)
文本。插入(0,问题)
向机器人询问
例外情况除外,如e:
打印(e)
打印(“未识别”)
def Ask_from_Bot():
question=text.get()
ans=bot.get_响应(问题)
msg.insert(结束,“你:”+问题)
打印(类型(ans))
信息插入(结束,“机器人:”+str(ans))
发言(ans)
text.delete(0,结束)
msg.yview(完)
#创建文本字段
text=条目(主,字体=(“Times”,15))
text.pack(pady=10)
btn=按钮(main,text=“从Bot请求”,font=(“Times”,16),command=Ask\u From\u Bot)
btn.pack()
#按Enter键并获取输出
def Enter_fun(事件):
btn.invoke()
main.bind(“”,输入_-fun)
def repeatL():
尽管如此:
以_query()为例
t=线程。线程(目标=重复)
t、 开始()
main.mainloop()
Here is my code:

from chatterbot import ChatBot
from chatterbot.trainers import ListTrainer
import conversation_module
from tkinter import *
import speech_recognition as s
import threading
import pyaudio
import pyttsx3 as pp
import win32com.client

eng = pp.init()

voices = eng.getProperty('voices')
print(voices)

eng.setProperty('voice', voices[0].id)

def speak(word):
    eng.say(word)
    eng.runAndWait()

bot = ChatBot("Bot1")
convo = conversation_module.con(bot)
trainer = ListTrainer(bot)
trainer.train(convo)

main = Tk()
main.geometry("500x700")
main.title("CS Department")
img = PhotoImage(file='unnamed.png')
photo = Label(main, image=img)
photo.pack(pady=2)

frame = Frame(main)
sc = Scrollbar(frame)
msg = Listbox(frame, width=80, height=20, yscrollcommand=sc.set)
sc.pack(side=RIGHT, fill=Y)
msg.pack(side=LEFT, fill=BOTH, pady=10)
frame.pack()

#take query : it takes audio as a input & convert it into string
def take_query():
    sr=s.Recognizer() #i want to use the class which are defined within the speechrec module
    sr.pause_threshold=1
    print("Your Bot is listening try to speak")
    with s.Microphone() as m:
        try:
            audio = sr.listen(m)
            question = sr.recognize_google(audio, language='eng-in')
            print(question)
            text.delete(0, END)
            text.insert(0, question)
            Ask_from_Bot()
        except Exception as e:
            print(e)
            print("Not recognized")

def Ask_from_Bot():
    question = text.get()
    ans = bot.get_response(question)
    msg.insert(END, "You : " + question)
    print(type(ans))
    msg.insert(END, "Bot : " + str(ans))
    speak(ans)
    text.delete(0, END)
    msg.yview(END)

# Creating text field
text = Entry(main, font=("Times", 15))
text.pack(pady=10)

btn = Button(main, text="Ask From Bot", font=("Times", 16), command=Ask_from_Bot)
btn.pack()

# Press Enter & get Output
def Enter_fun(event):
    btn.invoke()

main.bind('<Return>', Enter_fun)
def repeatL():
    while True:
        take_query()
t=threading.Thread(target=repeatL)
t.start()
main.mainloop()