检索类聊天机器人-检索匹配、chatterbot

1、检索类聊天机器人

在这里插入图片描述

1.1检索类的机器人的特点

  • 需要数据库大
  • 回答比较自然
    在这里插入图片描述

1.2检索类机器人的应用

在这里插入图片描述
在这里插入图片描述

2、检索匹配

2.1检索类机器人的流程

在这里插入图片描述

2.2匹配检索的关键技术

在这里插入图片描述
在这里插入图片描述

  • 余弦相似度
    在这里插入图片描述
  • 分类
    • 机器学习相关分类算法
      在这里插入图片描述
      下面是相关博客
      贝叶斯
      SVM

    • 深度学习相关分类算法
      在这里插入图片描述

3、Chatterbot

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

3.1安装chatterbot

pip install chatterbot

在这里插入图片描述
在这里插入图片描述

3.2chatterbot训练过程

在这里插入图片描述
通过调用train方法,并将训练集作为参数。ChatterBot的训练过程涉及将示例对话框加载到聊天机器人的数据库中。这可以构建代表已知语句和响应集的图数据结构。当一个聊天机器人训练师被提供一个数据集时,它会在聊天机器人的知识图中创建必要的条目,以正确表示语句输入和响应。
用上下句来构建一个statement ,statement相当于存储了一个上下对话的关系,在查找的时候,先找到最合适的上文,下文就是答案了。这就是一个训练的过程,训练的这一过程,主要是在构建statement,并把statement放到storage中。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3chatterbot总结

在这里插入图片描述

4、代码小练

chatterbot的聊天逻辑和输入输出以及存储是由各种adapter来限定的,下面是它的流程图。
在这里插入图片描述

创建chatterbot

  1. ChatBot: 这是 ChatterBot 库中用于创建聊天机器人的类。
  2. ‘Default Response Example Bot’: 这是你给机器人起的名字,用于标识这个聊天机器人实例。
  3. storage_adapter=‘chatterbot.storage.JsonFileStorageAdapter’: 指定了用于存储对话数据的适配器。这里使用了 JsonFileStorageAdapter,表示对话数据将被存储在一个 JSON 文件中。
  4. logic_adapters: 这是一个列表,包含了多个逻辑适配器的配置。逻辑适配器用于处理输入并生成机器人的回复。
  5. {‘import_path’: ‘chatterbot.logic.BestMatch’}: 使用了 BestMatch 适配器,它根据输入选择最佳的匹配回复。
  6. ‘import_path’: ‘chatterbot.logic.LowConfidenceAdapter’, ‘threshold’: 0.65, ‘default_response’: ‘I am sorry, but I do not understand.’: 使用了 LowConfidenceAdapter 适配器,它用于处理低置信度的输入。当输入的置信度低于 0.65 时,机器人会回复 ‘I am sorry, but I do not understand.’。
  7. trainer=‘chatterbot.trainers.ListTrainer’: 指定了训练器的类型。这里使用了 ListTrainer,它允许你通过列表来手动训练机器人,而不是使用自动训练。

from chatterbot import ChatBot

# 构建ChatBot并指定Adapter
bot = ChatBot(
    'Default Response Example Bot',
    storage_adapter='chatterbot.storage.JsonFileStorageAdapter',
    logic_adapters=[
        {
            'import_path': 'chatterbot.logic.BestMatch'
        },
        {
            'import_path': 'chatterbot.logic.LowConfidenceAdapter',
            'threshold': 0.65,
            'default_response': 'I am sorry, but I do not understand.'
        }
    ],
    trainer='chatterbot.trainers.ListTrainer'
)

# 手动给定一点语料用于训练
bot.train([
    'How can I help you?',
    'I want to create a chat bot',
    'Have you read the documentation?',
    'No, I have not',
    'This should help get you started: http://chatterbot.rtfd.org/en/latest/quickstart.html'
])

# 给定问题并取回结果
question = 'How do I make an omelette?'
print(question)
response = bot.get_response(question)
print(response)

print("\n")
question = 'how to make a chat bot?'
print(question)
response = bot.get_response(question)

  • 20
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您好,使用 AIML 或 ChatterBot 实现聊天机器人的方法有很多种。其中,AIML 是一种基于 XML 的标记语言,可以用于编写聊天机器人的规则和模板,而 ChatterBot 则是一种基于 Python 的聊天机器人框架,可以用于构建自然语言处理模型。具体实现方法可以参考相关的教程和文档。 ### 回答2: 使用AIML或ChatterBot实现聊天机器人可以分为以下几个步骤: 1. 安装和设置:首先,需要安装相应的AIML或ChatterBot库。对于AIML,需要安装PyAIML库;而对于ChatterBot,需要安装ChatterBot库。在安装完库之后,需要确保库的依赖项都满足,并进行相应的设置。 2. 训练语料库:接下来,需要准备一个用于训练聊天机器人的语料库。AIML使用AIML格式的文件作为语料库,而ChatterBot使用Json格式。语料库应包含各种可能的用户输入和对应的聊天机器人回答。可以根据实际需求来创建和定制语料库,以提供与用户互动的各种情境和响应。 3. 创建机器人实例:使用AIML时,需要创建一个Kernel实例,它将负责加载和处理语料库,并执行相应的逻辑。而对于ChatterBot,需要创建一个ChatBot实例,并设置相应的训练器和语料库。 4. 进行对话:一旦机器人实例创建完成,可以开始与机器人进行对话。将用户的输入传递给机器人实例,并获取机器人的回答。AIML和ChatterBot都提供了相应的接口来处理对话过程。 5. 调试和优化:在使用过程中,可以逐步调试和优化机器人的回答逻辑和语料库,以提供更准确和人性化的回答。可以根据用户的反馈和实际使用情况,不断改进机器人的性能和表现。 总之,使用AIML或ChatterBot实现聊天机器人需要进行库的安装和设置,准备训练语料库,创建机器人实例,并进行对话。通过不断调试和优化,可以提供更好的用户体验和服务质量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值