iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用 Python 创建一个基于规则的聊天机器人
  • 731
分享到

使用 Python 创建一个基于规则的聊天机器人

2024-04-02 19:04:59 731人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1、聊天机器人2、基于规则的聊天机器人3、创建语料库4、创建一个聊天机器人5、总结前言: 还记得这个价值一个亿的ai核心代码? while True: AI

前言:

还记得这个价值一个亿的ai核心代码?


while True: 
  AI = input('我:') 
  print(AI.replace("吗", " ").replace('?','!').replace('?','!')) 

以上这段代码就是我们今天的主题,基于规则的聊天机器人

1、聊天机器人

聊天机器人本身是一种机器或软件,它通过文本或句子模仿人类交互。 简而言之,可以使用类似于与人类对话的软件进行聊天。

为什么要尝试创建聊天机器人? 也许你对一个新项目感兴趣,或者公司需要一个,或者想去拉投资。 无论动机是什么,本文都将尝试解释如何创建一个简单的基于规则的聊天机器人。

2、基于规则的聊天机器人

什么是基于规则的聊天机器人?它是一种基于特定规则来回答人类给出的文本的聊天机器人。由于它基于强加的规则所以这个聊天机器人生成的响应几乎是准确的;但是,如果我们收到与规则不匹配的查询,聊天机器人将不会回答。与它相对的另一个版本是基于模型的聊天机器人,它通过机器学习模型来回答给定的查询。(二者的区别就是基于规则的需要我们指定每一条规则,而且基于模型的会通过训练模型自动生成规则,还记得我们上一篇的”机器学习介绍“吗,"机器学习为系统提供无需明确编程就能根据经验自动学习和改进的能力。")

基于规则的聊天机器人可能基于人类给出的规则,但这并不意味着我们不使用数据集。聊天机器人的主要目标仍然是自动化人类提出的问题,所以我们还是需要数据来制定特定的规则。

在本文中,我们将利用余弦相似距离作为基础开发基于规则的聊天机器人。余弦相似度是向量(特别是内积空间的非零向量)之间的相似度度量,常用于度量两个文本之间的相似度。

我们将使用余弦相似度创建一个聊天机器人,通过对比查询与我们开发的语料库之间的相似性来回答查询提出的问题。这也是我们最初需要开发我们的语料库的原因。

3、创建语料库

对于这个聊天机器人示例,我想创建一个聊天机器人来回答有关猫的所有问题。 为了收集关于猫的数据,我会从网上抓取它。


import bs4 as bs 
import urllib.request#Open the cat WEB data page 
cat_data = urllib.request.urlopen('https://simple.wikipedia.org/wiki/Cat').read() 
#Find all the paragraph html from the web page 
cat_data_paragraphs = bs.BeautifulSoup(cat_data,'lxml').find_all('p') 
#Creating the corpus of all the web page paragraphs 
cat_text = '' 
#Creating lower text corpus of cat paragraphs 
for p in cat_data_paragraphs: 
cat_text += p.text.lower() 
print(cat_text) 

使用上面的代码,会得到来自wikipedia页面的段落集合。 接下来,需要清理文本以去除括号编号和空格等无用的文本。


 import re 
cat_text = re.sub(r'\s+', ' ',re.sub(r'\[[0-9]*\]', ' ', cat_text)) 

上述代码将从语料库中删除括号号。我特意没有去掉这些符号和标点符号,因为当与聊天机器人进行对话时,这样听起来会很自然。

最后,我将根据之前创建的语料库创建一个句子列表。


import nltk 
cat_sentences = nltk.sent_tokenize(cat_text) 

我们的规则很简单:将聊天机器人的查询文本与句子列表中的每一个文本之间的进行余弦相似性的度量,哪个结果产生的相似度最接近(最高余弦相似度)那么它就是我们的聊天机器人的答案。

4、创建一个聊天机器人

我们上面的语料库仍然是文本形式,余弦相似度不接受文本数据;所以需要将语料库转换成数字向量。通常的做法是将文本转换为词袋(单词计数)或使用TF-IDF方法(频率概率)。在我们的例子中,我们将使用TF-IDF

我将创建一个函数,它接收查询文本,并根据以下代码中的余弦相似性给出一个输出。让我们看一下代码。


from sklearn.metrics.pairwise import cosine_similarity 
from sklearn.feature_extraction.text import TfidfVectorizer 
def chatbot_answer(user_query): 
 
#Append the query to the sentences list 
cat_sentences.append(user_query)  
#Create the sentences vector based on the list 
vectorizer = TfidfVectorizer() 
sentences_vectors = vectorizer.fit_transfORM(cat_sentences) 
 
#Measure the cosine similarity and take the second closest index because the first index is the user query 
vector_values = cosine_similarity(sentences_vectors[-1], sentences_vectors) 
answer = cat_sentences[vector_values.argsort()[0][-2]]  
#Final check to make sure there are result present. If all the result are 0, means the text input by us are not captured in the corpus 
input_check = vector_values.flatten() 
input_check.sort() 
 
if input_check[-2] == 0: 
return "Please Try again" 
else:  
return answer 

我们可以把上面的函数使用下面的流程图进行表示:

最后,使用以下代码创建一个简单的回答交互。


print("Hello, I am the Cat Chatbot. What is your meow questions?:") 
while(True): 
query = input().lower() 
if query not in ['bye', 'Good bye', 'take care']: 
print("Cat Chatbot: ", end="") 
print(chatbot_answer(query)) 
cat_sentences.remove(query) 
else: 
print("See You Again") 
break 

上面的脚本将接收查询,并通过我们之前开发的聊天机器人处理它们。

从上面的图片中看到的,结果还是可以接受的,但有也有些奇怪的回答。但是我们要想到,目前只从一个数据源中得到的结果,并且也没有做任何的优化。如果我们用额外的数据集和规则来改进它,它肯定会更好地回答问题。

5、总结

聊天机器人项目是一个令人兴奋的数据科学项目,因为它在许多领域都有帮助。在本文中,我们使用从网页中获取的数据,利用余弦相似度和TF-IDF,用python创建了一个简单的聊天机器人项目,真正的将我们的1个亿的项目落地。其实这里面还有很多的改进:

向量化的选择,除了TF-IDF还可以使用Word2vec,甚至使用预训练的bert提取词向量。
回答环节,其实就是通过某种特定的算法或者规则从我们的语料库中搜索最匹配的答案,本文中使用的相似度TOP1的方法其实就是一个最简单的类greedsearch的方法,对于答案结果的优化还可以使用类beamsearch 的算法提取回答的匹配项。
等等很多
在端到端的深度学习兴起之前,很多的聊天机器人都是这样基于规则来运行的并且也有很多落地案例,如果你想快速的做一个POC展示,这种基于规则方法还是非常有用的。

到此这篇关于使用 Python 创建一个基于规则的聊天机器人的文章就介绍到这了,更多相关Python 创建聊天机器人内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 使用 Python 创建一个基于规则的聊天机器人

本文链接: https://www.lsjlt.com/news/155836.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用 Python 创建一个基于规则的聊天机器人
    目录1、聊天机器人2、基于规则的聊天机器人3、创建语料库4、创建一个聊天机器人5、总结前言: 还记得这个价值一个亿的AI核心代码? while True: AI...
    99+
    2024-04-02
  • python机器学习创建基于规则聊天机器人过程是什么
    这篇文章主要讲解了“python机器学习创建基于规则聊天机器人过程是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python机器学习创建基于规则聊天机器人过程是什么”吧!while&n...
    99+
    2023-06-25
  • python机器学习创建基于规则聊天机器人过程示例详解
    目录聊天机器人基于规则的聊天机器人创建语料库创建一个聊天机器人总结还记得这个价值一个亿的AI核心代码? while True: AI = input('我:') ...
    99+
    2024-04-02
  • 基于小程序制作一个ChatGPT聊天机器人
    在AI技术日新月异的浪潮中,将ChatGPT与实战开发相结合,制作一个随身携带的聊天机器人,紧贴前沿的同时稳固基础。 一、前言 1.1、什么是ChatGPT 1.2、什么是文本完成 ...
    99+
    2023-08-30
    chatgpt 机器人 微信小程序 原力计划
  • 如何使用Python开发基于ChatGPT的聊天机器人
    如何使用Python开发基于ChatGPT的聊天机器人随着人工智能的不断进步,聊天机器人已经成为了许多网站和应用程序的常见功能。而ChatGPT(Generative Pre-trained Transformer)是OpenAI开发的一种...
    99+
    2023-10-24
    聊天机器人 ChatGPT Python
  • 如何用Python做一个智能聊天机器人
    这期内容当中小编将会给大家带来有关如何用Python做一个智能聊天机器人,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。伴随着自然语言技术和机器学习技术的发展,越来越多的有意思的自然语言小项目呈现在大家的眼...
    99+
    2023-06-16
  • Python中怎么实现一个聊天机器人
    Python中怎么实现一个聊天机器人,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1. 创建虚拟环境pipenv是一个轻松创建虚拟环境的python库。pip ins...
    99+
    2023-06-16
  • Python基于Google Bard实现交互式聊天机器人
    目录用Python基于Google Bard做一个交互式的聊天机器人获取Session IDPython代码运行与尝试代码用Python基于Google Bard做一个交互式的聊天机...
    99+
    2023-03-24
    Python Google Bard聊天机器人 Python Bard交互式聊天
  • 基于Ajax的聊天机器人功能的实现
    🤖️ 哈喽!大家好呀。如果无聊就和机器人聊聊天吧 在初步进入Ajax学习 就忍不住给大家分享今天的劳动成果啦 先来看看效果图: 功能实现: ...
    99+
    2024-04-02
  • Python调用两个机器人聊天的实战
    目录机器人api接口调用接口封装机器人实现两个机器人聊天聊天文字转语音总结众所周知,现在网上有很多非常智能bushi(智障)的AI机器人接口,利用这些接口,我们可以实现一个机器人,可...
    99+
    2024-04-02
  • 怎样用Python写了一个智能机器人来聊天
    这篇文章将为大家详细讲解有关怎样用Python写了一个智能机器人来聊天,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。人工智能已是趋势,智能酒店,智能网吧,无人驾驶等等都已经实现,过不了多久,...
    99+
    2023-06-16
  • 使用python构建一个自己的聊天室
    目录一、简介二、网络编程基础概念三、Socket编程简介及原理四、聊天室架构及功能需求五、实现聊天室服务器端1.使用socket创建服务器端socket对象。2.绑定IP地址和端口。...
    99+
    2023-05-14
    python构建 python聊天室
  • 怎么使用Python人工智能构建简单聊天机器人
    今天小编给大家分享一下怎么使用Python人工智能构建简单聊天机器人的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。什么是聊天...
    99+
    2023-07-05
  • Python基于Google Bard怎么实现交互式聊天机器人
    这篇文章主要介绍“Python基于Google Bard怎么实现交互式聊天机器人”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python基于Google Bard怎么实现交互式...
    99+
    2023-07-05
  • 使用python实现机器人聊天功能
    利用python实现一个机器人聊天功能,具体方法如下:import aimlimport sysimport osdef get_module_dir(name):print("module", sys.modules[name])path...
    99+
    2024-04-02
  • 基于Python实现从头搭建一个在线聊天室框架
    目录整体技术栈搭建权限框架构建前端页面今天从头开始做一个在线聊天网站,网上各种各样的聊天工具已经很多了,为啥还要做这么一个聊天工具呢,无他,兴趣耳! 今天先完成第一部分,搭建起聊天网...
    99+
    2022-11-16
    Python在线聊天室 Python 聊天室 Python 在线聊天 Python 聊天
  • 怎么使用python构建一个自己的聊天室
    今天小编给大家分享一下怎么使用python构建一个自己的聊天室的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、网络编程基础...
    99+
    2023-07-05
  • 如何使用树莓派和Rocket.Chat构建一个私人聊天服务器
    这篇文章主要为大家展示了“如何使用树莓派和Rocket.Chat构建一个私人聊天服务器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用树莓派和Rocket.Chat构建一个私人聊天服务器”...
    99+
    2023-06-16
  • 怎么使用python+Word2Vec实现中文聊天机器人
    本篇内容主要讲解“怎么使用python+Word2Vec实现中文聊天机器人”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用python+Word2Vec实现中文聊天机器人”吧! ...
    99+
    2023-07-05
  • ChatGPT Python API使用指南:实现语音聊天机器人
    ChatGPT Python API使用指南:实现语音聊天机器人引言:随着人工智能技术的不断发展和普及,语音聊天机器人在各类应用场景中的需求越来越大。OpenAI开源的ChatGPT提供了一个强大的自然语言处理模型,通过使用ChatGPT ...
    99+
    2023-10-28
    ChatGPT Python API 语音聊天机器人
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作