首页 知识 正文
文章详情

目录:

1.如何用python做一个聊天机器人

2.python制作聊天软件

3.python开发微信聊天机器人

4.python搭建的web接口聊天机器人

5.用python编写一个聊天程序

6.用python制作聊天机器人

7.python制作聊天机器人

8.用python做聊天机器人

9.python编写聊天机器人

10.python做聊天机器人

1.如何用python做一个聊天机器人

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

2.python制作聊天软件

while True: AI = input(我:) print(AI.replace(“吗”, ” “).replace(?,!).replace(?,!))以上这段代码就是我们今天的主题,基于规则的聊天机器人

3.python开发微信聊天机器人

聊天机器人聊天机器人本身是一种机器或软件,它通过文本或句子模仿人类交互 简而言之,可以使用类似于与人类对话的软件进行聊天为什么要尝试创建聊天机器人? 也许你对一个新项目感兴趣,或者公司需要一个,或者想去拉投资。

4.python搭建的web接口聊天机器人

无论动机是什么,本文都将尝试解释如何创建一个简单的基于规则的聊天机器人基于规则的聊天机器人什么是基于规则的聊天机器人?它是一种基于特定规则来回答人类给出的文本的聊天机器人由于它基于强加的规则所以这个聊天机器人生成的响应几乎是准确的;但是,如果我们收到与规则不匹配的查询,聊天机器人将不会回答。

5.用python编写一个聊天程序

与它相对的另一个版本是基于模型的聊天机器人,它通过机器学习模型来回答给定的查询(二者的区别就是基于规则的需要我们指定每一条规则,而且基于模型的会通过训练模型自动生成规则,还记得我们上一篇的”机器学习介绍“吗,”机器学习为系统提供无需明确编程就能根据经验自动学习和改进的能力。

6.用python制作聊天机器人

“)基于规则的聊天机器人可能基于人类给出的规则,但这并不意味着我们不使用数据集聊天机器人的主要目标仍然是自动化人类提出的问题,所以我们还是需要数据来制定特定的规则在本文中,我们将利用余弦相似距离作为基础开发基于规则的聊天机器人。

7.python制作聊天机器人

余弦相似度是向量(特别是内积空间的非零向量)之间的相似度度量,常用于度量两个文本之间的相似度我们将使用余弦相似度创建一个聊天机器人,通过对比查询与我们开发的语料库之间的相似性来回答查询提出的问题这也是我们最初需要开发我们的语料库的原因。

8.用python做聊天机器人

创建语料库对于这个聊天机器人示例,我想创建一个聊天机器人来回答有关猫的所有问题 为了收集关于猫的数据,我会从网上抓取它import bs4 as bs import urllib.request#Open the cat web data page。

9.python编写聊天机器人

cat_data = urllib.request.urlopen(https://simple.wikipedia.org/wiki/Cat).read() #Find all the paragraph html from the web page

10.python做聊天机器人

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 paragraphsfor 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))上述代码将从语料库中删除括号号我特意没有去掉这些符号和标点符号,因为当与聊天机器人进行对话时,这样听起来会很自然最后,我将根据之前创建的语料库创建一个句子列表importnltk

cat_sentences = nltk.sent_tokenize(cat_text)

我们的规则很简单:将聊天机器人的查询文本与句子列表中的每一个文本之间的进行余弦相似性的度量,哪个结果产生的相似度最接近(最高余弦相似度)那么它就是我们的聊天机器人的答案创建一个聊天机器人我们上面的语料库仍然是文本形式,余弦相似度不接受文本数据;所以需要将语料库转换成数字向量。

通常的做法是将文本转换为词袋(单词计数)或使用TF-IDF方法(频率概率)在我们的例子中,我们将使用TF-IDF我将创建一个函数,它接收查询文本,并根据以下代码中的余弦相似性给出一个输出让我们看一下代码。

fromsklearn.metrics.pairwise import cosine_similarityfromsklearn.feature_extraction.text import TfidfVectorizer

defchatbot_answer(user_query): #Append the query to the sentences listcat_sentences.append(user_query)

#Create the sentences vector based on the listvectorizer = 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()ifinput_check[-2] == 0:return”Please Try again”

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

最后,使用以下代码创建一个简单的回答交互print(“Hello, I am the Cat Chatbot. What is your meow questions?:”) while(True): query = 。

input().lower() if query notin [bye, good bye, take care]: print(“Cat Chatbot: “, end=””) print(chatbot_answer(query)) cat_sentences.

remove(query) else: print(“See You Again”) break上面的脚本将接收查询,并通过我们之前开发的聊天机器人处理它们。

从上面的图片中看到的,结果还是可以接受的,但有也有些奇怪的回答但是我们要想到,目前只从一个数据源中得到的结果,并且也没有做任何的优化如果我们用额外的数据集和规则来改进它,它肯定会更好地回答问题总结聊天机器人项目是一个令人兴奋的数据科学项目,因为它在许多领域都有帮助。

在本文中,我们使用从网页中获取的数据,利用余弦相似度和TF-IDF,用Python创建了一个简单的聊天机器人项目,真正的将我们的1个亿的项目落地其实这里面还有很多的改进:向量化的选择,除了TF-IDF还可以使用word2vec,甚至使用预训练的bert提取词向量。

回答环节,其实就是通过某种特定的算法或者规则从我们的语料库中搜索最匹配的答案,本文中使用的相似度top1的方法其实就是一个最简单的类greedsearch的方法,对于答案结果的优化还可以使用类beamsearch

的算法提取回答的匹配项。等等很多在端到端的深度学习兴起之前,很多的聊天机器人都是这样基于规则来运行的并且也有很多落地案例,如果你想快速的做一个POC展示,这种基于规则方法还是非常有用的。

相关推荐
四月实战公开课丨高效公式让小白也能做出大神级项目作品
目录: 1.四月攻势 2.四月战报 1.四月攻势 全世界风靡的网课  如何进行1V1、1VN通讯?  如何用C4D做出dribbble大神作…
头像
知识 2024-06-06
Python学习教程公开课:好玩的Python
目录: 1.python入门公开课 2.python讲课视频 3.python课程入门 4.python的优质课 5.python 课程真的…
头像
知识 2024-06-06
MIT Python 公开课第三课要点-算法是怎样演进的
目录: 1.python算法课程 2.python算法教程这本书怎么样 3.python 算法导论 4.python算法基础 5.pytho…
头像
知识 2024-06-06
MIT Python 公开课第四课要点-函数也是一个对象
目录: 1.mit python 2.mit python 公开课 3.mit python凯撒密码 4.mit python作业答案 5.…
头像
知识 2024-06-06
清华教授用了12小时讲完的Python,整整311集,拿走不谢!
目录: 1.清华大学python视频 2.清华python用什么课本 3.python清华大学学生用书 4.清华大学出版社python 5.…
头像
知识 2024-06-06
自学c4d要多久才能出去工作 学习c4d建模渲染
目录: 1.自学c4d需要多久 2.学好c4d需要多久 3.c4d自学能学会么 4.自学c4d能找到工作吗 5.c4d学多久可以找工作 6.…
头像
知识 2024-06-06