python微信集成_Python微信公众号后台开发<005>:集成智能聊天机器人​

​给公众号集成一个智能聊天机器人

一、前述

ChatterBot是一个基于机器学习的聊天机器人引擎,构建在python上,主要特点是可以自可以从已有的对话中进行学(jiyi)习(pipei)。

二、具体

1、安装

是的,安装超级简单,用pip就可以啦

pip install chatterbot

2、流程

大家已经知道chatterbot的聊天逻辑和输入输出以及存储,是由各种adapter来限定的,我们先看看流程图,一会再一起看点例子,看看怎么用。

3、每个部分都设计了不同的“适配器”(Adapter)。

机器人应答逻辑 => Logic Adapters

Closest Match Adapter 字符串模糊匹配(编辑距离)

Closest Meaning Adapter  借助nltk的WordNet,近义词评估

Time Logic Adapter 处理涉及时间的提问

Mathematical Evaluation Adapter 涉及数学运算

存储器后端 => Storage Adapters

Read Only Mode 只读模式,当有输入数据到chatterbot的时候,数

据库并不会发生改变

Json Database Adapter 用以存储对话数据的接口,对话数据以Json格式

进行存储。

Mongo Database Adapter  以MongoDB database方式来存储对话数据

输入形式 => Input Adapters

Variable input type adapter 允许chatter bot接收不同类型的输入的,如strings,dictionaries和Statements

Terminal adapter 使得ChatterBot可以通过终端进行对话

HipChat Adapter 使得ChatterBot 可以从HipChat聊天室获取输入语句,通过HipChat 和 ChatterBot 进行对话

Speech recognition 语音识别输入,详见chatterbot-voice

输出形式 => Output Adapters

Output format adapter支持text,json和object格式的输出

Terminal adapter

HipChat Adapter

Mailgun adapter允许chat bot基于Mailgun API进行邮件的发送

Speech synthesisTTS(Text to speech)部分,详见chatterbot-voice

4、代码

计算模式

from chatterbot import ChatBot

bot = ChatBot(

"Math & Time Bot",

logic_adapters=[

"chatterbot.logic.MathematicalEvaluation",

"chatterbot.logic.TimeLogicAdapter"

],

input_adapter="chatterbot.input.VariableInputTypeAdapter",

output_adapter="chatterbot.output.OutputAdapter"

)

# 进行数学计算

question = "What is 4 + 9?"

print(question)

response = bot.get_response(question)

print(response)

print("\n")

# 回答和时间相关的问题

question = "What time is it?"

print(question)

response = bot.get_response(question)

print(response)

利用已经提供好的小中文语料库

from chatterbot import ChatBot

from chatterbot.trainers import ChatterBotCorpusTrainer

chatbot = ChatBot("ChineseChatBot")

trainer = ChatterBotCorpusTrainer(chatbot)

# 使用中文语料库训练它

trainer.train("chatterbot.corpus.chinese")

def response_text(sentence):

res_text = chatbot.get_response(sentence)

print(sentence , "----", res_text)

return res_text

#

if __name__ == '__main__':

# 开始对话

while True:

print(chatbot.get_response(input(">")))

# print(response_text("你是谁"))

小黄鸡语料更智能(推荐)

from chatterbot import ChatBot

bot = ChatBot('my-chat', database_uri='sqlite:///db.sqlite3')

def response_text(sentence):

temp = bot.get_response(sentence)

return temp.text

if __name__ == '__main__':

# bot_response = response_text("你几岁了")

# print(bot_response)

# 开始对话

while True:

小黄鸡语料数据库:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值