chatterbot中get_response函数初步分析。

来源:互联网 发布:node.js搭建 编辑:程序博客网 时间:2024/05/16 13:58

聊天机器人代码test.py如下:

# -*- coding:utf-8 -*-from chatterbot import ChatBot  # 从一个库导入一个文件#from chatterbot.trainers import ChatterBotCorpusTrainer  # 从一个文件导入一个类from chatterbot.trainers import UbuntuCorpusTrainer#所以这种import选用的class,导致训练用预料是本地语料。chatbot = ChatBot("myBot")#chatbot.set_trainer(ChatterBotCorpusTrainer)chatbot.set_trainer(UbuntuCorpusTrainer)# 使用英文语料库训练它#chatbot.train("chatterbot.corpus.chinese")chatbot.train()# 开始对话while True:    print(chatbot.get_response(input(">")))

代码的主干分为两部分,一个是训练,一个是对话。

训练部分在

http://blog.csdn.net/appleyuchi/article/details/77374491有分析,

训练部分的代码目前分析到storage,暂时无法再细化分析下去,不知道storage是怎么做的。


对话部分,主要在上述代码中的get_response中。

test.py调用了chatterbot.py的get_response函数,get_response函数调用了generate_response函数,

而generate_response函数调用了multi_adapter.py中的process函数

process函数中由下面一句

output = adapter.process(statement)
产生响应。

process(self,statement)函数中由process(statement)函数产生响应,可能是递归调用,需要进一步分析。