上一篇(安装):https://www.cnblogs.com/Ctrl-cCtrl-v/p/13220584.html

基础代码:

 1 from chatterbot import ChatBot
2 from chatterbot.trainers import ListTrainer
3
4 chatbot = ChatBot("小土豆",
5 trainer='chatterbot.trainers.ListTrainer',
6 )
7
8
9
10 conversation = [
11 "你好",
12 "Hi~",
13 "你好啊!"
14 ]
15 chatbot.train(conversation)
16
17 conversation = [
18 "你好吗?",
19 "我很好,谢谢!"
20 ]
21 chatbot.train(conversation)
22
23 conversation = [
24 "你叫什么名字?",
25 "我叫小土豆"
26
27 ]
28 chatbot.train(conversation)
29
30 conversation = [
31 "你过得怎么样?",
32 "我很好,谢谢!"
33 ]
34 chatbot.train(conversation)
35
36 conversation = [
37 "哈哈",
38 "呵呵",
39 "呵呵哒"
40 ]
41 chatbot.train(conversation)
42
43
44 while True:
45 h=input("话:")
46 response = chatbot.get_response(h)
47 print(response)

小土豆是机器人名字没啥用

conversation列表是训练的话,一问一答

默认使用的Levenshtein distance算法能让引擎从问答对中选出一个相近的回答

你还可以在第4行代码上加上

 1 logic_adapters=[
2 {
3 'import_path': 'chatterbot.logic.BestMatch'
4 },
5 {
6 'import_path': 'chatterbot.logic.LowConfidenceAdapter',
7 'threshold': 0.65, #匹配度
8 'default_response': 'I am sorry, but I do not understand.' #低于匹配度默认回答
9 }
10 ]
11
12 read_only=True #不学习用户输入的东西,建议关闭,他会乱学习,效果不好!

最终高级版:

 1 from chatterbot import ChatBot
2 from chatterbot.trainers import ListTrainer
3
4 chatbot = ChatBot("小土豆",
5 trainer='chatterbot.trainers.ListTrainer',
6 read_only=True,
7 logic_adapters=[
8 {
9 "import_path": 'chatterbot.logic.BestMatch'#回话逻辑
10
11 },
12
13 {
14 'import_path': 'chatterbot.logic.LowConfidenceAdapter',#回话逻辑
15 'threshold': 0.65,#低于置信度,则默认回答
16 'default_response': '我还是个小孩子,不知道怎么回答'
17 }]
18 )
19
20
21
22 conversation = [
23 "你好",
24 "Hi~",
25 "你好啊!"
26 ]
27 chatbot.train(conversation)
28
29 conversation = [
30 "你好吗?",
31 "我很好,谢谢!"
32 ]
33 chatbot.train(conversation)
34
35 conversation = [
36 "你叫什么名字?",
37 "我叫小土豆"
38
39 ]
40 chatbot.train(conversation)
41
42 conversation = [
43 "你过得怎么样?",
44 "我很好,谢谢!"
45 ]
46 chatbot.train(conversation)
47
48 conversation = [
49 "哈哈",
50 "呵呵",
51 "呵呵哒"
52 ]
53 chatbot.train(conversation)
54
55
56 while True:
57 h=input("话:")
58 response = chatbot.get_response(h)
59 print(response)

ChatterBot人工智能,聊天机器人,无坑指南(安装,使用)(2.使用篇)的更多相关文章

  1. 用 AIML 开发人工智能聊天机器人

    借助 Python 的 AIML 包,我们很容易实现人工智能聊天机器人.AIML 指的是 Artificial Intelligence Markup Language (人工智能标记语言),它不过是 ...

  2. 【翻译】用AIML实现的Python人工智能聊天机器人

    前言 用python的AIML包很容易就能写一个人工智能聊天机器人. AIML是Artificial Intelligence Markup Language的简写, 但它只是一个简单的XML. 下面 ...

  3. 一个使用 Python 的人工智能聊天机器人框架

    一个Python 的 AI Chatbot框架 建立一个聊天室可以听起来很棒,但它是完全可行的. IKY是一个内置于Python中的AI动力对话对话界面. 使用IKY,很容易创建自然语言会话场景,无需 ...

  4. 记录k8s:k8s1.8.4无坑离线安装

    安装部署: 1. 使用vagrant 准备3太虚拟机,自己使用Vbox 准备3太也可以. 2. 按照 https://github.com/gjmzj/kubeasz 安装. 3. 使用letsenc ...

  5. QQ 聊天机器人API

    QQ机器人是腾讯陆续推出的的人工智能聊天机器人的总称. 都说小Q妹妹聪明好学,我们能够教她说话.也能够请他帮忙查询邮编.手机号,或者解释成语.翻译成语,据说她还会查询手机号码归属地.应用科学计算器. ...

  6. 聊天机器人(chatbot)终极指南:自然语言处理(NLP)和深度机器学习(Deep Machine Learning)

    在过去的几个月中,我一直在收集自然语言处理(NLP)以及如何将NLP和深度学习(Deep Learning)应用到聊天机器人(Chatbots)方面的最好的资料. 时不时地我会发现一个出色的资源,因此 ...

  7. 人工智能不过尔尔,基于Python3深度学习库Keras/TensorFlow打造属于自己的聊天机器人(ChatRobot)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_178 聊天机器人(ChatRobot)的概念我们并不陌生,也许你曾经在百无聊赖之下和Siri打情骂俏过,亦或是闲暇之余与小爱同学谈 ...

  8. 【自然语言处理篇】--Chatterbot聊天机器人

    一.前述 ChatterBot是一个基于机器学习的聊天机器人引擎,构建在python上,主要特点是可以自可以从已有的对话中进行学(jiyi)习(pipei). 二.具体 1.安装 是的,安装超级简单, ...

  9. Rasa Stack:创建支持上下文的人工智能助理和聊天机器人教程

    相关概念 Rasa Stack 是一组开放源码机器学习工具,供开发人员创建支持上下文的人工智能助理和聊天机器人: • Core = 聊天机器人框架包含基于机器学习的对话管理 • NLU = 用于自然语 ...

  10. ElasticSearch入坑指南之概述及安装

    ---恢复内容开始--- ElasticSearch入坑指南之概述及安装 了解ElasticSearch ElasticSearch(简称ES)基于Lucene的分布式全文检索引擎.使用ES可以实现近 ...

随机推荐

  1. 0基础的人关于C++多态产生的一系列疑问

    之前在面试的时候被问过懂不懂C++,懂不懂"多态".我之前搞科研一直在用Python,不会C++.完全没听过"多态"这个词,只听说过"多模态" ...

  2. linux centos8 mirrorlist: No URLs in mirrorlist,更新yum源

    前言 由于官方已经在2021/12/31停止了对CentOS 8的支持,所以需要更新 yum 源,才能使用 更新镜像源 这里用的是阿里的 yum 镜像源 将源文件备份 cd /etc/yum.repo ...

  3. BGP路由优选原则

    0 丢弃下一跳不可达的路由 1 优选Preference_Value值最高的路由(本设备有效) Pref-Val:协议首选值 华为私有的属性,只具有本地(本设备)意义,缺省情况下为0,越大越优,0-6 ...

  4. substring( )的两种用法?

    xx.substring()括号中带的参数不一样,效果就会有很大的区别 1.xx.substring(0,2)表示取第一个和第二个字符(0,1,2表示第一.二.三个字符,含头不含尾的原则就只包含第一. ...

  5. vite 引入element

    import {fileURLToPath, URL} from 'node:url' import {defineConfig, loadEnv} from 'vite' import vue fr ...

  6. Static Timing Analysis Basics

    Preface This note only introduce the essential concepts about Static Timing Analysis, which not cont ...

  7. sql server2005的死锁

    select request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tra ...

  8. 大量数据topk-分桶+堆+多路并归解决方案

    利用分桶.堆与多路归并解决 TopK 问题:结果处理阶段解析 在处理大规模数据时,TopK 问题是一个常见且具有挑战性的任务,即从海量数据中找出最大(或最小)的 K 个元素.为了高效地解决这个问题,我 ...

  9. zk基础—5.Curator的使用与剖析

    大纲 1.基于Curator进行基本的zk数据操作 2.基于Curator实现集群元数据管理 3.基于Curator实现HA主备自动切换 4.基于Curator实现Leader选举 5.基于Curat ...

  10. kettle+report designer导出带样式的excel包含多个sheet页

    场景介绍: 运用pentaho report designer报表设计器,查询数据库字典表生成带有样式的excel,通过kettle pentaho报表输出组件导出形成数据字典,最终形成的数据字典样式 ...