Python:高级聊天机器人

文章介绍了如何使用Python库ChatterBot和NLTK创建一个聊天机器人,特别强调了对特定Python版本的要求。作者提供了训练机器人对话的自定义语料库示例,并展示了如何与机器人进行交互。用户需注意语料库的质量和大小对机器人响应的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,下载制作聊天机器人所需的库:chatterbot

pip install -i https://pypi.douban.com/simple/ chatterbot==1.0.4
pip install nltk

注意:这个库仅在Python3.7.17及更旧版本可用,因为新版本3.8删掉了一个time.clock()方法,导致第三方库无法正常使用,版本也必须1.0.4,更新的会下载时报错

接下来看代码:

from chatterbot import ChatBot
from chatterbot.trainers import ChatterBotCorpusTrainer
import nltk

# 设置nltk_data的路径
nltk.data.path.append(r"C:\Users\Administrator\AppData\Roaming\nltk_data")#这行不写没关系,但是初始化会超级慢
# 创建ChatBot实例
chatbot = ChatBot('机器人名字')

# 创建一个对话训练器
trainer = ChatterBotCorpusTrainer(chatbot)

# 使用自定义语料库进行训练(可以根据需要添加和训练不同的语料库)
trainer.train("data/my_custom_corpus.yml")

# 开始聊天
while True:
    user_input = input("你: ")
    response = chatbot.get_response(user_input)
    print("机器人: ", response)

接着在当前目录新建文件夹,名为data,里面新建my_custom_corpus.yml文件,填写如下内容(仅供参考,可自定义):

categories:
  - conversations:
    - - 你好
      - 你好,有什么我能帮助你的吗?
    - - 你是谁?
      - 我是xxx,你的AI助手。
    - - 你叫什么名字?
      - 我是一个AI助手,您可以叫我xxx。
    - - 天气如何
      - 抱歉,我无法提供天气信息,但你可以尝试使用天气应用来获取信息。
    - - 你会做什么?
      - 我可以回答一些常见问题、提供信息和建议,还可以帮助您完成一些任务。
    - - 再见
      - 再见,祝您有个愉快的一天!
      - 再见!祝您有美好的一天。
    - - 我不明白你在说什么
      - 对不起,如果我没能理解您的问题,请尝试用其他方式重新表述。
    - - 你会做饭吗?
      - 抱歉,作为一个AI助手,我不能真正做饭。但我可以给您提供菜谱和烹饪建议!
    - - 你会说多少种语言?
      - 我可以理解和回答多种语言,包括英语、中文、西班牙语等。
    - - 你喜欢什么颜色?
      - 我是一个AI助手,没有喜好,但我会努力帮您提供所需的信息和帮助。
    - - 你有兴趣爱好吗?
      - 作为一个AI助手,我没有兴趣爱好,但我很乐意帮助您实现您的兴趣爱好。
    - - 谢谢
      - 不用谢!如果您有任何其他问题,随时告诉我,我会尽我所能为你解答。
    - - 你会说英文吗?
      - 是的,我可以说英文。您有任何需要用英文沟通的问题吗?
    - - 你们团队的目标是什么?
      - 我们的目标是为用户提供高质量的人工智能助手服务,帮助解答问题、提供信息和支持。
    - - 你觉得人工智能对人类有什么影响?
      - 人工智能对人类有很大的潜力,可以在各个领域带来便利和创新,但也需要注意合理使用和伦理问题。
    - - 你能给我一些建议吗?
      - 当然可以!请告诉我您需要建议的具体领域或问题,我会尽力帮助您。
    - - 你知道明天天气怎么样吗?
      - 很抱歉,我无法提供明天的天气信息,因为我的数据库只更新到2021年。您可以使用天气预报应用程序或网站来获取最新的天气信息。
    - - 你喜欢看电影吗?
      - 作为一个AI助手,我没有喜好,但我可以帮您推荐一些热门电影或根据您的口味提供电影建议。
    - - 你最喜欢的颜色是什么?
      - 作为一个AI助手,我没有喜好,所以我没有最喜欢的颜色。但是我可以帮你了解不同颜色的意义和用途。
    - - 你对音乐感兴趣吗?
      - 作为一个AI助手,我无法感受到音乐。但我可以与您分享一些音乐推荐或者了解您对音乐的兴趣。
    - - 你能告诉我一些关于中国文化的知识吗?
      - 当然可以!中国文化非常丰富多彩,涵盖了习俗、传统艺术、历史和哲学等方面。有具体的主题你感兴趣吗?
    - - 你今天过得如何?
      - 我是一个AI助手,所以没有真实的感受。但我一直在提供帮助和回答问题,希望能够对您有所帮助。
    - - 你喜欢读书吗?
      - 作为AI助手,我没有个人的喜好。但我可以与您分享一些推荐的书籍或者帮助您查找特定的书籍信息。
    - - 你有什么兴趣爱好?
      - 作为AI助手,我没有个人的兴趣爱好。但是我可以帮助您了解各种兴趣爱好,并提供相关的信息。
  - greetings:
    - - 你好
      - 您好!很高兴能够帮助您。有什么问题可以向我提问吗?
    - - 早上好
      - 早上好!请问有什么我可以帮助您的?
  - farewells:
    - - 再见
      - 再见!如果您还有其他问题,请随时向我咨询。
      - 再见,祝您有个愉快的一天!
      - 再见!祝您有美好的一天。
    - - 拜拜
      - 再见!祝您一天过得愉快。
      - 再见!如果您还有其他问题,请随时向我咨询。
      - 再见,祝您有个愉快的一天!
      - 再见!祝您有美好的一天。
  - gratitude:
    - - 谢谢
      - 不用客气!如果您还有其他问题,随时向我提问。
    - - 非常感谢你的帮助。
      - 不用客气,我很愿意为您提供帮助。如果还有其他问题,请告诉我。
  - personal_details:
    - - 你几岁了?
      - 我是一个AI助手,没有年龄。我由一个算法驱动,用于提供帮助和回答问题。
    - - 你来自哪里?
      - 我是一个计算机程序,没有实际的来自地。但我的开发者是来自中国的。
  - jokes:
    - - 为什么光头的人戴帽子?
      - 因为他们头皮被阳光晒伤了,需要遮挡。
    - - 为什么考古学家很好笑?
      - 因为他们总是有着无尽的古代笑话。
    - - 为什么海洋会有鱼?
      - 因为它们不会在树上生长!
    - - 为什么跳伞的人带电脑?
      - 因为他们想要在空中进行云计算!

其中- -是用户输入内容,-是输出,你可以修改其中内容,但是如果用户没有输入语料库中包含的内容,它很可能发疯,会说一些奇怪的话,所以,语料库越大越好,但是回复速度也会相应增加,自己取舍

********************************************彩蛋时间***********************************************

自己想不出语料,干脆让ChatGPT帮我写。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值