网易首页 > 网易号 > 正文 申请入驻

十分钟,如何制作一个聊天机器人?

0
分享至

全文共4088字,预计学习时长11分钟

图源:unsplash

在现实中,聊天机器人的响应时间非常重要。无论是旅游业、银行还是医疗,如果你真的想帮助客户,机器人的响应时间应该更短,并且应与客户服务代表交谈时的真实情况类似。

除此之外,了解聊天机器人的主要用途也很重要,每个行业都不能使用同一个聊天机器人,他们有不同的目的和不同的语料库。虽然消息传递组件可以很好地给予答复,但是可能需要时间作出回应。另一方面,考虑到时间问题,可以应用各种其他方法,甚至可以找到一些以规则为基础的系统,以获得适合回答所提问题的语句。

你曾多少次联系旅行社要求退票,得到一个恰当的答复是远远不够的。

现在让我们制作一个简单的聊天机器人,安装以下软件包:

pip install nltk pip install newspaper3k

Package newspaper3k有以下优点:

· 多线程文章下载框架

· 可识别新闻URL

· 可从HTML中提取文本

· 从HTML中提取顶层图像

· 可从HTML提取所有图像

· 可从文本中提取关键词

· 可从文本中提取摘要

· 可从文本中提取作者

· 谷歌趋势术语提取

· 使用10多种语言(英语、德语、阿拉伯语、中文等)

导入库,如下所示:

#import libraries from newspaper import Article import random import nltk import string from sklearn.feature_extraction.text import CountVectorizer from sklearn.metrics.pairwise import cosine_similarity

余弦相似度或余弦核将相似度计算为X和Y的标准化点积:

sklearn.metrics.pairwise.cosine_similarity(X, Y=None, dense_output=True)

参数

X{ndarray, sparse matrix} of shape (n_samples_X, n_features) 输入数据。

Y{ndarray,sparse matrix} of shape (n_samples_Y, n_features), default=None 输入数据。

如果没有,输出将是X. dense_outputbool中所有样本之间的成对相似性,default =True是否返回密集输出,即使输入是稀疏的。如果为False,则如果两个输入数组都是稀疏的,则输出是稀疏的。

返回

核矩阵:ndarray of shape(n_samples_X, n_samples_Y)

import numpy as np import warnings warnings.filterwarnings('ignore')

这里从一个医疗保健网站获取数据:

article=Article("https://www.mayoclinic.org/diseases-conditions/chronic-kidney-disease/symptoms-causes/syc-20354521") article.download() article.parse() article.nlp() corpus=article.text print(corpus) #tokenization text=corpus sentence_list=nltk.sent_tokenize(text) #A list of sentences #Print the list of sentences print(sentence_list)

准备好了语料库之后,你需要考虑用户或客户可能会问或说的问题,这与我们的内容无关。它可以是问候语、感谢语,也可以是拜拜之类的信息。团队需要就这些信息和他们的反应进行考量。

问候机器人响应:

#Random response to greeting def greeting_response(text): text=text.lower() #Bots greeting bot_greetings=["howdy","hi","hola","hey","hello"] #User Greetings user_greetings=["wassup","howdy","hi","hola","hey","hello"] for word in text.split(): if word in user_greetings: return random.choice(bot_greetings) #Random response to greeting def gratitude_response(text): text=text.lower()

感谢机器人响应:

#Bots gratitude bot_gratitude=["Glad tohelp","You are most welcome", "Pleasure to be ofhelp"] #User Gratitude user_gratitude=["Thankyou somuch","grateful","Thankyou","thankyou","thankyou"] for word in text.split(): if word in user_gratitude: return random.choice(bot_gratitude)

图源:unsplash

种类列表:

# Default title text def index_sort(list_var): length=len(list_var) list_index=list(range(0,length)) x=list_var for i in range(length): for j in range(length): if x[list_index[i]]>x[list_index[j]]: #swap temp=list_index[i] list_index[i]=list_index[j] list_index[j]=temp return list_index

聊天机器人响应功能来自于对预定义文本的余弦相似性的响应。

#Creat Bots Response def bot_response(user_input): user_input=user_input.lower() sentence_list.append(user_input) bot_response="" cm=CountVectorizer().fit_transform(sentence_list) similarity_scores=cosine_similarity(cm[-1],cm) similarity_scores_list=similarity_scores.flatten() index=index_sort(similarity_scores_list) index=index[1:] response_flag=0 j=0 for i in range(len(index)): ifsimilarity_scores_list[index[i]]>0.0: bot_response=bot_response+''+sentence_list[index[i]] response_flag=1 j=j+1 if j>2: break if response_flag==0: bot_response=bot_response+""+"I apologize, I dont understand" sentence_list.remove(user_input) return bot_response

对于退出聊天,退出列表中的单词写为“退出”,“再见”,“再见”,“退出”。

响应这些话,聊天机器人将退出聊天。

启动聊天机器人,尽情享受吧!

#Start Chat print("Doc Bot: I am DOc bot and I will answer your queries about chronickidney disease, if you want to exit type, bye") exit_list=['exit','bye','see you later','quit'] while(True): user_input=input() if user_input.lower() in exit_list: print("Doc Bot: Bye Bye See youlater") break elif greeting_response(user_input)!=None: print("Doc Bot: "+greeting_response(user_input)) elif gratitude_response(user_input)!=None: print("Doc Bot: "+gratitude_response(user_input)) else: print("Doc Bot: "+bot_response(user_input))

请参见下面聊天机器人的回复:

“谢谢”并不在我们的机器人感谢程序中,因此我们要传达这样的信息。随着时间的推移,你可以扩大这样的词汇表,或者使用正则表达式对其进行微调。

举个小例子,与聊天机器人开始聊天,应该是快速和简单的。你需要针对不同行业对聊天机器人进行微调,这些行业的语料库来自实时数据或云端的一些储存。

此外,需要注意的是,实时数据要面对挑战,聊天必须基于最新的数据作出回应,例如在旅行社订票。

留言点赞关注

我们一起分享AI学习与发展的干货

如转载,请后台留言,遵守转载规范

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
英国最贵单身汉大婚,新娘戴家族祖传王冠,王室来了威廉和尤金妮

英国最贵单身汉大婚,新娘戴家族祖传王冠,王室来了威廉和尤金妮

DailyFlora
2024-06-07 22:05:39
金莎参加朋友婚礼现场唱祝歌!精修图又白又瘦,生图差距大到惊人

金莎参加朋友婚礼现场唱祝歌!精修图又白又瘦,生图差距大到惊人

小娱乐悠悠
2024-06-07 17:37:21
蔡慧康转会河南?豫媒:他毛遂自荐,还有2人正在操作

蔡慧康转会河南?豫媒:他毛遂自荐,还有2人正在操作

建哥说体育
2024-06-07 06:49:14
解放战争中,如果国民党获得胜利,今天的中国会是什么样

解放战争中,如果国民党获得胜利,今天的中国会是什么样

史诗长歌
2024-05-13 13:34:32
51年前,那个轰动全国的“反潮流小英雄”黄帅,离开我们7年了

51年前,那个轰动全国的“反潮流小英雄”黄帅,离开我们7年了

李律讲法
2024-06-07 20:00:07
再见切尔西,清湖一定要卖,独造16球,套现5000万,转投联赛对手

再见切尔西,清湖一定要卖,独造16球,套现5000万,转投联赛对手

球文速递
2024-06-07 08:10:02
大连造船厂空闲已整整6年!现在没想到,要建造中国第一艘核航母

大连造船厂空闲已整整6年!现在没想到,要建造中国第一艘核航母

域观天下
2024-06-07 09:52:59
最“命苦”TVB视帝:33岁中风瘫痪,70岁血管病,至今为生计奔波

最“命苦”TVB视帝:33岁中风瘫痪,70岁血管病,至今为生计奔波

娱乐白名单
2024-06-07 10:37:37
瓜迪奥拉携妻子和女儿一同观战NBA总决赛

瓜迪奥拉携妻子和女儿一同观战NBA总决赛

热爱排球君
2024-06-07 10:12:38
为啥好多“蔚来车主”,新车开100公里就卖掉

为啥好多“蔚来车主”,新车开100公里就卖掉

说财猫
2024-06-07 19:39:02
俄罗斯核潜艇将罕见访问古巴,古方强调“未携带核武器”

俄罗斯核潜艇将罕见访问古巴,古方强调“未携带核武器”

澎湃新闻
2024-06-07 11:22:31
台74岁老上将:大陆军方很清楚,在一种情况下,台整个社会将崩盘

台74岁老上将:大陆军方很清楚,在一种情况下,台整个社会将崩盘

千里持剑
2024-06-06 16:46:53
他是国军中将俘虏,抗美援朝连提2招对付美军,毛主席:提前特赦

他是国军中将俘虏,抗美援朝连提2招对付美军,毛主席:提前特赦

猫眼观史
2024-05-16 17:20:40
邓公5位子女命运如何?长子北大跳楼致残,剩下四位都不简单!

邓公5位子女命运如何?长子北大跳楼致残,剩下四位都不简单!

史小纪
2024-06-06 14:19:37
已成中场支柱!巴尔韦德身价涨2000万欧至1.2亿,皇马500万欧买入

已成中场支柱!巴尔韦德身价涨2000万欧至1.2亿,皇马500万欧买入

直播吧
2024-06-07 19:38:10
澳大利亚大部队即将来华,要把菲律宾的市场份额,都装进自己口袋

澳大利亚大部队即将来华,要把菲律宾的市场份额,都装进自己口袋

莫将离
2024-06-05 22:27:16
叶元之若被罢免国民党惨了?黄暐瀚:民进党或成“立法院”最大党

叶元之若被罢免国民党惨了?黄暐瀚:民进党或成“立法院”最大党

金牛传音
2024-06-07 19:17:02
福建女子嫁外国流浪汉,婚后不工作不用手纸,靠捐赠养娃惹争议

福建女子嫁外国流浪汉,婚后不工作不用手纸,靠捐赠养娃惹争议

文雅笔墨
2024-06-06 20:22:58
幽默段子:给表婶打电话,听她说话气喘吁吁的。我坏笑着说让她忙吧,但手机没挂。没想到,表婶也没挂……

幽默段子:给表婶打电话,听她说话气喘吁吁的。我坏笑着说让她忙吧,但手机没挂。没想到,表婶也没挂……

微法官
2024-05-15 00:03:23
震撼!台湾“海巡署”找茬捣乱,解放军海军强势回击

震撼!台湾“海巡署”找茬捣乱,解放军海军强势回击

前海国际
2024-06-08 01:28:36
2024-06-08 05:02:44
读芯术
读芯术
专注年轻人的AI学习平台
2097文章数 5633关注度
往期回顾 全部

科技要闻

6家大模型抢答高考作文,谁是你心中的Top1

头条要闻

云南省镇雄县一煤矿发生事故致1死3伤 还有2人失联

头条要闻

云南省镇雄县一煤矿发生事故致1死3伤 还有2人失联

体育要闻

优势在我?中国足球有自己的节奏

娱乐要闻

汤唯抵达巴黎将担任奥运火炬手

财经要闻

身陷退市股的投资者:我的钱瞬间没了

汽车要闻

2.0T混动售20.98万元起 福特蒙迪欧运动版上市

态度原创

房产
健康
教育
亲子
手机

房产要闻

顶流地段+顶级户型!香港半山豪宅,已成为高净值人群的资产压舱石!

晚餐不吃or吃七分饱,哪种更减肥?

教育要闻

高考试卷没有条形码!到底该谁对考生负责?不能一句印错就完了

亲子要闻

新生儿,大学生,中国的大航海时代。

手机要闻

iOS 18现在支持用所有emoji表情符号回复iMessage消息

无障碍浏览 进入关怀版