用Python轻松做一个智能聊天机器人

在这里插入图片描述
伴随着自然语言技术和机器学习技术的发展,越来越多的有意思的自然语言小项目呈现在大家的眼前,聊天机器人就是其中最典型的应用,今天小编就带领大家用不到20行代码,运用两种方式搭建属于自己的聊天机器人。

01、神器wxpy库

首先,小编先向大家介绍一下本次运用到的python库,本次项目主要运用到的库有wxpy和chatterbot。

wxpy是在 itchat库 的基础上,通过大量接口优化,让模块变得简单易用,并进行了功能上的扩展。什么是接口优化呢,简单来说就是用户直接调用函数,并输入几个参数,就可以使用了,不需要关心函数的底层实现。

Chatterbot是一个基于机器学习的聊天机器人引擎,基于python编写而成,它可以自可以从已有的对话中进行记忆匹配。

Wxpy因为采用大量的接口集成,所以在使用的时候非常方便,下图是简单的wxpy使用,通过进入交互式界面,可以与指定的好友进行交谈。代码及效果如下图所示:
在这里插入图片描述

上述的代码中print_msg函数采用了wxpy库的装饰器,装饰器在这里的作用可以查阅其源码进行查看,主要是用于注册消息的配置。例如print_msg函数,可以将对方的回复消息进行输出。而在手机微信上我们同样看到了双方之间交流,所以从某个层面上来讲,wxpy就是PC端的微信。

02、图灵聊天机器人

下面我们将会实现第一个聊天机器人,该机器人是wxpy内集成的图灵机器人,由于图灵机器人的高度专业,所以制作出来的聊天机器人交流也非常的顺畅。那如何将图灵机器人嵌入到我们的交流中呢?首先我们需要去图灵机器人官网注册得到我们自己的机器人,注册完成后,我们便可以生成图灵机器人,并得到一个api_key,如下图所示:
在这里插入图片描述
这个api_key便是我们后续制作聊天机器人的关键。图灵聊天机器人的代码和效果图如下图所示:
在这里插入图片描述
由上图右边的聊天记录来看,依托图灵机器人的聊天机器人效果非常的出色,而且还可以进行天气查询等功能。

03、自己训练的聊天机器人

下面我们不依托于图灵机器人,而是依靠ChatterBot来制作一款机器人,这款机器人,虽然效果较上一款性能差距较大,但是它可以训练我们自己的语料库,下面是代码和效果的展示。
在这里插入图片描述
由上图可以看出,或许是受制于语料库资源过少,而且也不能够主动上网查询。所以要想使其能够回答和提问基本吻合还需要大量的工作。

难道除了这些我们就没有其它可以做的了吗?当然不是,ChatterBot为我们提供了可以训练的方式,我们可以提供素材来让其进行训练。代码和效果如下图所示:
在这里插入图片描述
我们首先定义了一个chatbot,然后将训练数据加入进去,让模型匹配我们的问题,得到训练的结果。

右边的图展示了我们的结果,由结果可以看出,由于我们的训练集中没有“在”这个数据,所以得到的回答很莫名其妙,而对于“你好”和“你叫什么名字?”这两个问题的回答则得到了很完美的答复,这就是加入训练数据集的优势所在。

trainer.train([ “你好”, “你好,很高兴认识你”, “你叫什么名字?”, “我叫chat-robot-2.”,])

你也可以加入你想要训练的语料库进行训练,一样会得到不错的效果。有的同学可能会问这是如何训练的呢?答案就在chatterbot的源码里,打开源码我们可以这里的chatbot选择的训练方法是“BestMatch”,也即最匹配方式,从训练的对话中找到最相识的语句,然后根据对话提供回答。
在这里插入图片描述
Python做机器学习的项目是不是很有趣,以上就是小编为大家带来的两款聊天机器人的设计,大家赶快动手设计一款属于自己的聊天机器人吧!

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,我可以提供一个使用ChatterBot实现的聊天机器人的demo。您可以访问以下链接来查看:https://github.com/gunthercox/ChatterBot/tree/master/examples/terminal_example ### 回答2: AIML(Artificial Intelligence Markup Language)和ChatterBot是两个常用的工具,可以用来实现聊天机器人。下面是一个使用ChatterBot实现聊天机器人的示例: ```python from chatterbot import ChatBot from chatterbot.trainers import ChatterBotCorpusTrainer # 创建一个ChatBot实例 chatbot = ChatBot('Demo ChatBot') # 创建一个基于语料库的训练器 trainer = ChatterBotCorpusTrainer(chatbot) # 使用英文语料库进行训练 trainer.train('chatterbot.corpus.english.greetings', 'chatterbot.corpus.english.conversations') # 用于启动聊天机器人的循环 while True: user_input = input("You: ") # 获取机器人的响应 response = chatbot.get_response(user_input) # 输出机器人的响应 print("Bot: ", response) ``` 这个示例中,我们首先导入了需要的库和模块。然后创建了一个ChatBot实例,命名为'Demo ChatBot'。接下来,我们创建了一个基于语料库的训练器,并使用ChatterBot的英文语料库进行训练。训练完成后,我们进入一个循环中,用户输入问题或语句,机器人根据输入提供响应,循环不断进行。 使用上述代码,你可以和这个聊天机器人进行对话。例如,当你输入“你好!”时,它可能会回答“你好,我能帮助你吗?”或其他类似的问候。机器人的响应是根据训练语料库和训练算法生成的。你也可以为聊天机器人提供更多的语料库,以扩展其对话能力。 ### 回答3: 使用AIML(Artificial Intelligence Markup Language)或ChatterBot(Python中的聊天机器人库)可以轻松实现一个聊天机器人的demo。 首先,我们需要安装ChatterBot库,并导入一些必要的模块和类。然后,创建一个ChatBot对象并命名为demo_bot: ```python from chatterbot import ChatBot from chatterbot.trainers import ChatterBotCorpusTrainer demo_bot = ChatBot('demo_bot') ``` 接下来,我们可以选择训练机器人的语料库,让它能够更好地回答问题。这里我们选择使用英文语料库: ```python trainer = ChatterBotCorpusTrainer(demo_bot) trainer.train("chatterbot.corpus.english") ``` 现在,我们可以定义一个函数,让demo_bot根据用户输入返回回答。函数中需要使用get_response()方法来获取机器人对用户输入的回答: ```python def get_bot_response(user_input): bot_response = demo_bot.get_response(user_input) return str(bot_response) ``` 最后,我们可以在一个循环中获取用户输入,并调用get_bot_response()函数来获取机器人的回答并打印出来: ```python while True: user_input = input("用户输入:") print("机器人回答:" + get_bot_response(user_input)) ``` 这样,一个简单的使用AIML或ChatterBot实现的聊天机器人demo就完成了。它可以与用户进行简单的对话,并根据训练语料库中的信息来提供合适的回答。当然,实现一个真正智能聊天机器人需要更多的训练和技术,但这个demo可以作为一个起点供进一步开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值