检索类聊天机器人-检索匹配、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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值