一.介绍

ChatterBot是一个基于机器学习的聊天机器人引擎,构建在python上,主要特点是可以自可以从已有的对话中进行学习。由于机器学习的特点,代理实例从和人的交互或者其他数据源学习得越久,就越能更精确的交互。

具备语言独立性,可以训练成说任何语言。

二.处理流程

ChatterBot对于输入语句选择最匹配的响应作为回答。输入、输出、存储和处理逻辑,是由各种adapter来处理的,这样使得他非常容易扩展。

输入形式 Input Adapters

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

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

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

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

预处理部分Preprocessor

对于输入语句在提交给logic adaper处理之前,进行一些特殊的处理。比如:

clean_whitespace 去掉语句中连续的空白字符

unescape_html 将 html中的转义字符变成对应的原字符,比如“<b>” 变成“”.

convert_to_ascii 将unicode转成对应的ASCII码

机器人应答逻辑 Logic Adapters

Best Match Adapter 最佳匹配

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

Mathematical Evaluation Adapter 涉及数学运算

Specific Response Adapter 针对特点的输入,给出特定的输出。比如用户输入"help me"时,输出"你可以拨打xxxx电话"

存储器后端 Storage Adapters

SQL Storage Adapter 用sql数据库存储对话数据,由于程序是采用Alchemy ORM开发的,需要选择支持Alchemy ORM的数据库,比如mysql

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

输出形式 => 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

chatterbot mysql_ChatterBot代码解读-介绍和框架相关推荐

  1. 并注册烧写钩子 获取启动介质类型_鸿蒙OS开源代码精要解读之—— 系统服务框架子系统(服务启动)...

    鸿蒙OS开源代码精要解读之-- 系统服务框架子系统(服务启动) 作者介绍: 中科创达OpenHarmony研究组 说明: 中科创达OpenHarmony研究组第一时间对https://codechin ...

  2. 【Spikingjelly】SNN框架教程的代码解读_3

    Spikingjelly 时间驱动:神经元 LIF神经元 a. 单个神经元 b. 多个神经元 时间驱动:编码器 泊松编码器 a. 单独的时间步长 b. 多个时间步长叠加 周期编码器 延时编码器和带权相 ...

  3. Transformer框架时间序列模型Informer内容与代码解读

    Transformer框架时间序列模型Informer内容与代码解读 注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java S ...

  4. arduinowifi.send怎么获取响应_ChatterBot代码解读-获取对话

    这个过程比较复制,安装处理的流程,依次进行代码解读. 在定义一个ChatBot后,可以进行对话的训练,这个过程参考: 水中的鱼:ChatterBot代码解读-训练数据​zhuanlan.zhihu.c ...

  5. 基于SegNet和UNet的遥感图像分割代码解读

    基于SegNet和UNet的遥感图像分割代码解读 目录 基于SegNet和UNet的遥感图像分割代码解读 前言 概述 代码框架 代码细节分析 划分数据集gen_dataset.py UNet模型训练u ...

  6. jsoup获得css,Jsoup代码解读之五-实现一个CSS Selector

    Jsoup代码解读之七-实现一个CSS Selector 当当当!终于来到了Jsoup的特色:CSS Selector部分.selector也是我写的爬虫框架webmagic开发的一个重点.附上一张s ...

  7. Jsoup代码解读之七-实现一个CSS Selector

    转载自    Jsoup代码解读之七-实现一个CSS Selector 当当当!终于来到了Jsoup的特色:CSS Selector部分.selector也是我写的爬虫框架webmagic开发的一个重 ...

  8. 编译原理语义分析代码_Pix2Pix原理分析与代码解读

    原理分析: 图像.视觉中很多问题都涉及到将一副图像转换为另一幅图像(Image-to-Image Translation Problem),这些问题通常都使用特定的方法来解决,不存在一个通用的方法.但 ...

  9. YOLO系列代码解读(图像检测)

    1.YOLO v1 yolo v1源码解析 - 筱 - CSDN博客  https://blog.csdn.net/baidu_27643275/article/details/82794559 [D ...

最新文章

  1. jqgrid横向滚动条
  2. JAVA——读取文本文件的倒数第N行(模拟Linux中tail命令)
  3. 记一则Hadoop DataNode OOM故障,以及解决方案
  4. GoldenGate 12.3 MA架构介绍系列(4)–Restful API介绍
  5. PS中rename-item的一些高级应用
  6. 解决从PDF复制到Word中的英文字母变成宋体格式的问题
  7. 13 集成测试之自顶向下集成测试方法
  8. GVS与唯康教育达成战略合作,共建智能家居人才培养高地
  9. AsyncTask下载图片
  10. C++ operator
  11. Win 10 关闭系统自动更新(解决svchost.exe 占用网络问题,解决svchost.exe不断消耗流量问题)
  12. [技巧]Ubuntu与Windows10局域网共享文件夹
  13. 用pr做简单的相册视频
  14. python3爬取教务系统的个人学期课程表(无头谷歌浏览模拟登录)
  15. SpringBoot 项目 Shiro 的实现
  16. chdir改变当前目录
  17. Mac用Homebrew安装MySQL
  18. 多目标优化问题及求解
  19. java传真发送_调用java API发送传真
  20. 成长的代价和教育的意义

热门文章

  1. java.lang.ClassNotFoundException: org.apache.jsp.WEB_002dINF.classes.views.index_jsp
  2. 哈工大人工智能作业一_想从事人工智能行业,考研选什么专业对口?
  3. VC++动态链接库DLL编程深入浅出
  4. 【quickhybrid】API的分类:短期API、长期API
  5. 敏捷开发方法XP的12个最佳实践
  6. 基于9款CSS3鼠标悬停相册预览特效
  7. drupal 字符串替换符号 @ % !
  8. 我的DWR学习(二)
  9. 让redhat5以yum方式安装软件
  10. 企业如何考虑自己的网络防护设备