引言
借用修仙小说体写的标题,主要目的就是吸引你点进来🤭,客官来都来了,看完再走呗~ 其实实现一个智能的聊天机器人🤖还是有一定难度的。博主就和大家一起尽可能实现一个智能的聊天机器人。 计划一周🧭更新一次,如果觉得更新慢的话,就在留言里催更吧,很有可能会响应你们的催更哦。 本系列文章📓会基于Pytorch实现一个Seq2Seq 带Attention机制的聊天机器人,在本系列文章中,大家会了解到实现聊天机器人的所有知识,欢迎关注哦。
主要介绍了聊天机器人的分类与实现我们聊天机器人的流程与技术。
聊天机器人的分类
根据不同的角度有不同的分类,基于应用场景,主要分为三种类型:
问答型聊天机器人
基于用户的问题,给定一个回答,通常需要利用一些检索和相似度搜索技术去匹配问答库中的问题或回答,找到一个相似度最高的作为返回给用户的响应。
主要有以下三种方式:
- 计算用户的问题和问答库中问题的相似度,选出问答库中相似度最高的问题,返回该问题对应的回答给用户。
- 计算用户的问题和问答库中回答的匹配度,选出匹配度最高的回答,返回给用户。
- 结合以上两种方式,选出最匹配的回答,返回给用户。
貌似移动和联通的智能客服就是一种问答型聊天机器人,只能回答特定的问题,比如“查话费”、“查流量”、“办理流量套餐“。会一步一步引导客户进行操作,如果给它说一些无关的问题,它就会表示不明白你的问题,然后引导你到他们的业务场景。
闲聊型聊天机器人
闲聊就是一种开放领域的聊天常见,就是朋友之间的聊天,主题和内容都是不限的。
通过利用文本生成技术,需要较大的数据集和较好的算法模型。常用的模型是Seq2Seq模型,加上注意力机制来实现。
这也是本系列文章主要探讨的技术,后续可能会加入一些其他实现方案,比如Transformer。
任务型聊天机器人
通常是面向某一任务,机器人需要与用户进行多轮交互,理解上下文信息,还需要调用一些业务逻辑,比如订票机器人需要调用订票系统、查天气机器人需要调用天气接口。
通常包括自然语言理解(NLU)、对话管理(Dialogue Management)和自然语言生成(NLG)等部分。
NLU主要是意图识别和实体识别;DM对用户的对话状态进行管理,包括槽位管理、数据获取等;NLG主要负责答案的生成。
通常一个成熟的聊天机器人不会只属于一种类型,我们要实现的就是问答型和闲聊型的结合。
流程
本系列我们实现的聊天机器人流程如下:
- 用于输入一个问题
q
q
q
- 首先从我们的问答库中搜索最匹配的几个回答
- 然后对每个回答计算一个评分,并取得分最大的回答
- 如果该得分超过某个预设的阈值,则将该回答返回给用户
- 否则利用文本生成技术根据
q
q
q生成一个回复,返回给用户
问答库一般与你这个聊天机器人的用途有关,如果是操作指南类的问答库,就会包含常见的一些操作问题与回答。
首先我们会关注于生成式的聊天机器人实现方法,我们实现的机器人效果如下。
语料库用的是青云语料库。有些问题回答的牛头不对马嘴,需要更多的数据集来进行训练。如果找到了更好的数据集,也会分享给大家。
好了,今天的内容就结束了?,有什么问题欢迎留言提问🙋?♂?🙋,很有可能下一篇就回答了你的问题哦。
|