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

一、前述

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

二、具体

1、安装

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

pip install chatterbot

2、流程

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

image

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)

image

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

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("你是谁"))

image

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

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:

print(response_text(input(">")))

image

小黄鸡语料数据库:

Snip20191204_47.png

python微信集成_Python微信公众号后台开发005:集成智能聊天机器人​相关推荐

  1. python 公众号菜单_Python微信公众号后台开发003:自定义菜单

    有同学问道微信公众号后台开发的自定义菜单怎么实现? 这个问题本来想放到后面的,因为的确对公众号的影响挺明显的, 因为开启后台服务,公众号的自定义菜单就不见了,很影响使用, 也有同学问这个问题,就提前了 ...

  2. Python微信公众号后台开发003:自定义菜单

    有同学问道微信公众号后台开发的自定义菜单怎么实现? 这个问题本来想放到后面的,因为的确对公众号的影响挺明显的, 因为开启后台服务,公众号的自定义菜单就不见了,很影响使用, 也有同学问这个问题,就提前了 ...

  3. Yii2.0实现微信公众号后台开发

    2019独角兽企业重金招聘Python工程师标准>>> 研读 微信公众平台开发者文档 ,然后再阅读本文,效果更佳! 接入微信 Yii2后台配置 1.在app/config/param ...

  4. 公众号后台开发上传文件功能

    微信公众号开发中, 上传文件是一个常用功能, 包括图片上传,视频,文件,附件,语音都要使用到这个. 今天的课程中, 介绍一个上传文件的类, 可以设置保存文件路径, 设置上传文件的类型- 公众号后台开发 ...

  5. python公众号教学_Python微信公众号后台开发教程

    本篇文章开启Python开发微信公众号后台 准备: 云服务平台:(我用的是京东云的) 公众号:自己注册一个就行 Git:代码管理平台 了解平台 进入公众号后台,查看开发相关项 基本配置(服务器配置等) ...

  6. JAVA微信公众号后台开发 接口接入

    前期准备 注册一个公众号,完成认证,阅读开发手册,选取开发工具,配置环境等等. 微信公众号开发标准 通过阅读文档我们了解到微信服务器向开发者提供接口,具体的流程如下 由上图可以看出,开发者需要做的:接 ...

  7. [基于Python的微信公众号后台开发:2]文字消息的接收与解密

    文章目录 1.服务器安装pycryptodome 2.下载微信官方提供的解密SDK 3.上传SDK到服务器 4.开始测试 5.发送消息到公众号 6.测试解密:把所有参数套入官方给的Sample.py文 ...

  8. 微信公众号上部署自己训练的聊天机器人(腾讯云服务器+TensorFlow2.1+Django3.1)

    文章目录 前言 1. 模型介绍 1.1 Encoder-Decoder框架 1.2 Attention机制 1.3 代码实现 2. 安装依赖库 3. 模型部署 4. 测试 前言   哈哈,重头戏终于来 ...

  9. Python多线程与多进程微信公众号后台开发

    目录 前言 一.线程与进程 1.什么是线程 2.什么是进程 3.进程与线程的关系 4.总结 5.CPU密集型与IO密集型 二.Python的多线程和多进程 1.GIL(Global Interpret ...

最新文章

  1. STL库(C++11)提供的异步执行方法的方式
  2. C#日期格式精确到毫秒 !!
  3. 微信小程序 点击卡片切换 动画效果
  4. SpringBoot简单使用ehcache
  5. String、StringBuilder和StringBuffer
  6. Linux Shell脚本编程--cut命令
  7. 【powerdesigner】将pdm或者cdm保存为普通图片格式
  8. python之新式类与经典类
  9. Python中的GIL锁
  10. edittext 无法输入内容_掌握其中1个Excel小技巧,你就不用再担心会重复录入内容了。...
  11. visio studio调试 字符串断点
  12. 设计模式---简单工厂模式(c++实现)
  13. 20160504课堂作业
  14. (5)Redis主从同步原理及详细配置
  15. ffmpeg推流到流媒体服务器
  16. kali linux下的嗅探工具介绍
  17. 前程无忧网站大数据职位信息分析可视化(源码)
  18. python合并word表格_python docx处理word文档中表格合并问题
  19. K_A02_005 基于单片机驱动数码管 LED 按键模块(TM1638) 流水灯 0-7 按键值显示
  20. App在appstore下架的方法

热门文章

  1. 可应用于实际的14个NLP突破性研究成果(三)
  2. 年度大盘点:机器学习开源项目及框架
  3. 在MaxCompute上分析IP来源的方法
  4. (Python)时序预测的七种方法
  5. 面试中遇到这 3 个SQL问题,最容易掉坑里!
  6. 腾讯会议扩容背后:100万核计算资源全由自研服务器星星海支撑
  7. 腾讯云与智慧产业总裁汤道生:产业互联网是一场“持久战”
  8. 刷爆了!GitHub标星1.6W,这个 Python 项目太实用!
  9. 微服务精华问答 | 在使用微服务架构时,您面临哪些挑战?
  10. 边缘计算精华问答 | 边缘计算需要IaaS、PaaS、SaaS等服务能力吗?