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

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

一、前述

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

django oracle 性能,4.利用Django在前端展示Oracle 状态趋势

利用Django在前端展示Oracle 状态趋势2017-12-15 Python 宅必备开发环境操作系统:CentOS 7.4Python版本 :3.6Django版本: 1.10.5操作系统用户:oms数据处理:pandas前端展示:highcharts通过上面我们已介绍了如何定时获取系统Oracle状态语句以及如何利用pandas处理成highcharts识别…

分段二次插值例题_分段三次插值

摘要用函数来表示变量间的数量关系广泛应用于各学科领域,但是在实际问题中,往往是通过实验、观测以及计算等方法,得到的是函数在一些点上的函数值。如何通过这些离散数据找到函数的一个满足精度要求且便于使用的近似表达式,是经常…

linux文件在哪个分区,linux下肿么查看目录所在的分区

1、用df 命令查看查看目录所在分区,例如查看/var目录所在分区:[rootlocalhost var]# df -h /varFilesystem Size Used Avail Use% Mounted on/dev/mapper/vg1-lvroot 51G 2.6G 46G 6% /mounted on 列下面就是所在的分区2、如果还想看磁盘分区情况&#x…

linux 格式化 目录,Linux 磁盘分区、格式化、目录挂载

实验环境: Citrix虚拟化, RHEL6.4系统环境本文目的: 熟悉Linux的基本磁盘分区、格式化、目录挂载。1.显示当前主机目录2.磁盘分区3.磁盘格式化4.挂载目录1. 显示当前主机目录命令df -h[rootlocalhost ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/map…

通州区机器人比赛活动总结_机器人大赛赛后总结

机器人大赛赛后总结机器人大赛结束了,每个科协人都缓和了一下自己忙碌的节奏。在比赛这段时间里,大家都辛苦地准备了很久,尽管在比赛中有着不尽如人意的地方,比赛也落下了完美的帷幕。赛后我们认真总结了此次活动中出现的问题。首…

linux用分词系统,Linux(CentOS 6.4)Solr4.8.1中文分词配置(IK分词)

1、环境准备CentOS6.4、Tomcat6.0、Jdk1.7、Solr4.8.1、IK Analyzer 2012FF_hf12、配置步骤(1)下载IK Analyzer分词包,解压缩(2)将IKAnalyzer2012FF_u1.jar拷贝到solr服务的目录solr/WEB-INF/lib下cp /usr/download/IK Analyzer 2012FF_hf1/IKAnalyzer2012FF_u1.jar…

python我的世界服务器_Python取Minecraft服务器信息

最近猛玩Minecraft,无聊之下写了这个东西,可以取到版本,在线人数,最大人数。import socketimport codecsclass mcstatus:def __init__(self,hostname,port,timeout 0.6):self.hostname hostnameself.timeout timeoutself.port …

华为内部存储转sd卡_怎样把华为手机内存的东西传、转到SD卡中呢

2016-08-24华为mate8手机里没有SD卡有关系吗华为Mate8支持SD卡锁功能,下面小编就来讲讲SD卡锁如何使用。一、当前手机没有设置SD卡密码功能, 手机一旦丢失,SD卡中的内容也将泄露;Mate 8支持SD卡加密功能,通过对SD加密&…

linux隔一级目录找文件,linux查看文件和子目录

Q4:linux查找当前目录下所有子目录特定文件类型需要查找的文件内容1、find [选项] [目录] [条件] [动作]如果不指定任何目录,find将会查找当前目录。如果 不指定条件,则条件相当于“true”,这样会把全部文件都找出来。选项、条件和…

linux c程序加args,C/C++可变参数,“## __VA_ARGS__”宏的介绍和使用

在阅读代码的时候,在一个宏定义语句中,发现了个之前未曾见过的编译器预定义宏:“__VA_ARGS__”。当时,从代码语句中推测它代表宏参数:“…”(本文称之为省略号),依稀记得printf函数声明中有使用这个省略号&…

python梦幻西游鼠标偏移_【按键盒子】梦幻西游解决鼠标漂移问题

Gosub GetFbl//Gosub 点击任务红名/////获取窗口分辨率///Sub GetFbl//左上角找图FindPic 0, 0, 1024, 768, "Attachment:\zsj.bmp", 0.9, intX1, intY1If intX1 < 0MessageBox "未找到窗口左上角"Else//定位窗口右下角Delay 10FindPic 0, 0, 1024, 768…

linux看java堆大小,linux 改java堆内存大小

linux 改java堆内存大小[2021-02-08 23:06:29] 简介:linux查内存大小的方法&#xff1a;首先打开应用程序&#xff1b;然后选择系统工具选项&#xff0c;并单击系统终端选项&#xff1b;接着在系统终端命令行输入【free -h】命令&#xff1b;最后在结果中找到total即可查看到系…

脉冲宽度调制pdm_PWM (脉冲宽度调制)原理与实现

原理与实现1、PWM原理2、调制器设计思想3、具体实现设计一、PWM(脉冲宽度调制Pulse Width Modulation)原理&#xff1a;脉冲宽度调制波通常由一列占空比不同的矩形脉冲构成&#xff0c;其占空比与信号的瞬时采样值成比例。图1所示为脉冲宽度调制系统的原理框图和波形图。该系统…

arch linux简体中文,User-mode Linux (简体中文)

本文或本节需要翻译。要贡献翻译&#xff0c;请访问简体中文翻译团队。什么是 user-mode-linux?User-mode-linux (UML) 是让一个linux作为一个独立进程运行在另一个linux上。 请在[1] 查找 uml 的详细安装使用指南。这篇 wiki 文章是 这帖[失效链接 2020-08-06 ⓘ] 概要。 如果…

cad常用字体包_CAD制图初学入门如何学好CAD?CAD大神总结5点诀窍,必须收藏

现在有很多的小伙伴们都加入到了CAD这个大家庭中&#xff0c;一开始都是都是一脸懵的状态&#xff0c;更不知要从何入手&#xff01;小编才开始也是&#xff0c;但是只要掌握好CAD的技巧和脊髓&#xff0c;一切都不是事。CAD大神总结5点诀窍&#xff0c;悄悄告诉你&#xff0c;…

栈windows linux,Linux+Windows: 程序崩溃时,在 C++ 代码中,如何获取函数调用栈信息...

一、前言程序在执行过程中 crash 是非常严重的问题&#xff0c;一般都应该在测试阶段排除掉这些问题&#xff0c;但是总会有漏网之鱼被带到 release 阶段。因此&#xff0c;程序的日志系统需要侦测这种情况&#xff0c;在代码崩溃的时候获取函数调用栈信息&#xff0c;为 debug…

python vbs库_Python语言之requests库

发送请求、传递URL参数、定制headers、接受数据&#xff0c;处理数据等在Java中用httpclient jar包&#xff0c;在Python中用requests库&#xff0c;即使没有事先下载&#xff0c;在Pycharm开发工具中&#xff0c;出现提示时刻&#xff0c;同意安装即可1) 发送请求urlhttp://ba…

Linux中fdisk对应的c函数,linux下fdisk命令实战案例之详解

一、fdisk命令中参数介绍&#xff1a;1.查看硬盘使用情形#fdisk -l 观察硬盘之实体使用情形2.fdisk /dev/sda&#xff0c;进入硬盘分割模式1. 输入 m 显示所有命令列示。2. 输入 p 显示硬盘分割情形。3. 输入 a 设定硬盘启动区。4. 输入 n 设定新的硬盘分割区。4.1. 输入 e 硬盘…

cvs有机添加剂检测_美国ECI CVS 电镀添加剂分析仪QL-10EX

美国ECI CVS 电镀添加剂分析仪型 号&#xff1a;QL-10EX价 格&#xff1a;美国ECI CVS 电镀添加剂分析仪QL-10EXQL-5EX, QL-10EX,旧型号&#xff1a;QL-5E,QL-5, QL-10E,QL-10,QP-4000,QLC-5000产品介绍别名&#xff1a;电镀分析仪 循环剥离伏安测试仪 CVS测试仪 电镀成份分…

linux多台主机对比文件大小,Linux主机df和du出来的文件和磁盘大小不相同

df 查看磁盘大小和使用空间的命令 常用的是df -hdu 查看文件或者文件夹大小的命名 常用的是du -sh *一、问题现象的陈述1、先列出df的结果# df -hFilesystem Size Used Avail Use% Mounted on/dev/xvda1 20G 17G 2.3G 88% /tmpfs 1.9G 0 1.9G …