意图识别与槽填充(填槽的概念)

转载于:https://blog.csdn.net/u010159842/article/details/80759428

原文链接:http://t.cn/RE0FkgD

 

跳槽,吐槽,匹诺曹都听过,这个填槽,emmmm,黑人问号脸???

写到这吐槽下,本来只是想写下填槽的过程,后来发现这东西不理解chatbot的对话系统的话,没法讲,看的人很容易一头雾水。

 

还是先简单讲下对话系统,然后再细讲填槽。

所以不知道填槽是啥往下没事,先往下看。

 

一、Chatbot对话系统的过程

对话系统还有很多要讲,但是今天的主角是填槽,所以初略过下。

首先,来看一个老奶奶和机器人的对话

这是一个聊天机器人在对话过程中识别出了用户意图后,帮助用户打车的case

我们来细致拆解下整个过程。

 

1)开放域多轮对话

 

这里引入一个概念——开放域对话

不太严谨的定义可以理解为 ,在不确定用户意图前的各种瞎聊,你不知道用户会问什么样千奇百怪的问题,但是chatbot都能接住,然后和用户进行对话,这种就是开放域的对话。

这里奶奶说“天气不错”,实际machine是不知道奶奶要干什么的,于是为了避免尴尬,让对话能继续下去,machine就要制造话题啦,这里machine回复了“适合去市区走走”,制造了一个新话题出来。

 

即使在开放域聊天的过程中,也存在着填槽的过程。

 

好了,引出本文主角——填槽(Slot filling)。

填槽指的是为了让用户意图转化为用户明确的指令而补全信息的过程。

 

例如在之前文章中提及的小爱的例子

 

设定闹钟这个行为,需要两个关键信息,一个是行为,一个是时间。

这两个信息可以理解为“设闹钟”行为的前置条件,就好像事有个槽空缺在那,需要先补充完整了这个槽,完成这个条件后,触发新的副本,才能继续后续的行为。

 

继续回来“和奶奶对话”的例子中,即使是在开放域对话过程中,用户和你聊天的内容,有一些是之后用的上的,例如对话中machine回复的“是的,奶奶”

这个“奶奶”也是一个槽,是用户称呼的槽,只不过这个槽在之前的对话中已经填过了,然后machine就一直使用。

 

总之,记住在没明确意图前的聊天可以看做是开放域的对话,开放域对话中也能填槽。

 

2)准入条件

 

紧接着,奶奶说天气很好,想出去走走,“帮我叫个车!”

然后话风一改,machine不再瞎聊了,直接问了一句“奶奶打算几点出发?”

machine问奶奶出发时间的时候,实际已经是转入了一个封闭域对话(具体概念下面再解释)了,从开放域转入到封闭域,中间隔着的就是准入条件了。

 

介绍本文的第三个概念——准入条件

从一个开放域转入到封闭域,或者从一个封闭域转入到另一个封闭域,中间的跳转是需要逻辑判断的,而这个逻辑判断就是准入条件。

 

当满足了准入条件后即可进入到对应的封闭域对话中,如果把封闭域对话理解为一个大门的话,那么准入条件就是钥匙啦,通过这个钥匙进入到封闭域内。

准入条件的构成由条件组和条件构成

 

准入条件通过条件组和条件形成了一套与或非

    - 条件组和条件组是或关系

    - 条件组内的条件是与的关系

    - 条件本身可以是非的关系

 

所以,machine通过识别出有一个条件组是“用户叫车”的条件组,所以进入了用户叫车的封闭域对话中。

 

3)封闭域多轮对话

 

因为满足了准入条件,所以machine进入了叫车的封闭域对话

 

本文第四个概念——封闭域对话

封闭域对话是指识别用户意图后,为了明确用户目的(或者称为明确任务细节)而进行的对话

 

封闭域对话有很明显的两个特征

1. 输入和输出是可枚举的

例如和奶奶对话这个case中

打车必须的必填的input有3个(这3个也是槽位,需要填槽),output是两个结果,成功或失败

 

 

2. 对话有明确的目的,且有流程

在和奶奶的对话过程中,由于必填的槽有三个

其中出发时间并不知道,所以machine接着问了“奶奶打算几点出发?”

 

这个过程称之为澄清话术

当用户的需求中缺乏一些必要条件时,需要对话系统主动发问,把必要条件全部集齐之后再去做最终的满足执行。

 

这里的必要条件就是时间槽还没有填充,后续的选择快车还是顺风车也是一种澄清。

如果把打车简化为三个槽的话,那么填槽过程如下

 

大家会发现,machine并没有问奶奶从哪里出发地点,因为可能在历史的对话中已经获取到了奶奶的住址,或者通过GPS定位,也能获取到出发点,这时候就没有必要再问奶奶了。

 

最终响应结果,machine跑去滴滴下单,成功后回来告诉奶奶“好的,已为您预约了宝安中心到深圳湾公园9点的滴滴顺风车。”

 

以上就是整个对话系统的流程

1. 开放域多轮对话,瞎聊,识别用户意图

2. 准入条件,根据设定好的准入条件,进入封闭域对话

3. 封闭域对话,填槽,必填槽不完整就要澄清让用户填完整,最终执行

 

 

二、细讲填槽

通过上述的例子,明白了对话过程,接着细讲下填槽这件事情。

1)槽

1. 定义

上文中我们提到了填槽指为了让用户意图转化为用户明确的指令而补全信息的过程

填槽的专业表述:从大规模的语料库中抽取给定实体(query)的被明确定义的属性(slot types)的值(slot fillers)——网络文章定义

 

所以这里槽可以理解为

实体已明确定义的属性

 

例如打车中的,出发地点槽,目的地槽,出发时间槽中的属性分别是“出发地点”、“目的地”和“出发时间”

 

2. 槽与槽位

槽是由槽位构成的,举个例子

出发地点槽,是打车必填的,要填充这个槽,可以通过历史对话取得值,也可以通过询问用户取得值,还可以通过GPS定位取得值等等。

这里的必填是槽的属性,而不同的取值方式是不同槽位的属性

 

 

先来讲讲槽的属性

3. 槽的属性:可默认填写/不可默认填写

有些槽是不可默认填写的,不填没办法继续下去,有些即使不填,有默认值也可。

例如machine在刚开始和你对话的时候,称呼你为“主人”,但你觉得不够逼格,于是你让他叫你“女王大人”。

这里的用户昵称槽就是用户没有指定,可默认填写的

 

4. 槽的属性: 澄清话术

当槽不可默认填写同时又没有填写的时候,就要进行澄清

为了澄清而表达的内容,就是澄清话术

不同槽的澄清话术不同,例如打车三槽中,目的地的澄清话术可能是“请告诉我您的目的地”,而出发时间的槽可能是“请告诉我您的出发时间”

 

5. 槽的属性:澄清顺序

当有多个槽需要澄清的时候,就存在先后顺序的问题,所以需要一个澄清顺序,先问什么,再问什么。

 

6. 槽的属性:平级槽或依赖槽

根据槽和槽之间是否独立,后续的槽是否依赖前面槽的结果。

可以将槽之间的关系分为

- 平级槽,槽与槽之间没有依赖,例如打车中的三槽

- 依赖槽,后续的槽是否依赖前面槽的结果,例如手机号码槽,不同国家手机号码格式不同(槽的属性不同),所以国家槽会影响选择哪个手机号码槽。

 

7. 槽的能力:多轮记忆状态

槽还有记忆的能力,先再看个例子

 

这里Julian先要预约打车,进入封闭域A,machine进行打车填槽

槽内已经填充了2个信息。

    出发地:西丽

    目的地:空(缺乏)

    时间:明天上午9点30分

 

machine进行澄清,要求填槽目的地。

 

但是这时候突然Julian要求设定提醒事件,machine响应设定提醒事件。

Julian再继续回到原有的打车事件中,仅说了目的地,machine没有再次询问出发地和时间,直接完成打车填槽

这里所使用的就是多轮记忆状态,它能在对话的过程中,在被打断回到之前的封闭域对话后,能记住原有填槽的内容,减少重复填槽。

 

2)槽位

上面我们提到槽是由槽位构成的,一个槽位就是一种填槽的方式

 

1. 槽位的属性:接口槽与词槽

- 词槽,通过用户对话的关键词获取信息的填槽方式

- 接口槽,通过其他方式获取信息的填槽方式

 

2. 槽位的属性:槽位优先级

当有多个槽位的时候,槽该采用那个信息,这时候有个优先级。

还是之前的出发地点槽,如果用户通过词槽指定了出发地点是A,优先级就应该是最高的,其次才是通过不同的接口槽获取的B,C等

 

PS:本文可能存在概念错误,或逻辑错误,欢迎斧正,我也还在学习:)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/63169.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人才“选用育留”难?做好这步,人力资源或许比你想象的更轻松

人才作为企业生存和发展最重要的资源之一,如何发现、使用、培养、留住优秀人才是所有企业人力资源管理的关键。但在实际场景当中,“招聘流程长造成人才流失”、“员工招聘不精准、效率低”、“员工培育周期长、成本高”、“优秀人才留不住”等问题正深深…

偷偷爆料下国内比较大型的 IT 软件外包公司名单(2023 最新版!)

点关注公众号,回复“1024”获取2TB学习资源! 根据网上的资料,整理出来的一份国内软件外包公司的名单。 找工作的同学都要看看,根据自身的情况,学历低的 、没有经验的,可以先到外包公司试试,或者…

明星热图|欧阳娜娜、张艺兴代言新品牌;吴彦祖、高圆圆、全智贤演绎服装新品;关晓彤、欧阳靖、张云龙出席品牌活动...

图片是企业新闻传播的要素之一,优秀的图片使读者能更直观地了解新闻内容。“一周热图”栏目为大家展示每周通过美通社发布的最具代表性的企业新闻图片。 服装 潮流运动品牌FILA FUSION正式签约首位品牌代言人欧阳娜娜,这位出生于艺术世家的00后&#xff…

剧版浪姐口碑爆了!数据告诉你,《三十而已》凭什么这么戳中观众的心

▼ 更多精彩推荐,请关注我们 ▼ 作者:Mika 数据:真达 后期:泽龙 【导读】 最近《三十而已》这部剧频频霸占微博热搜,今天我们就来聊一聊。 Python技术部分请直接看第四部分。公众号后台,回复关键字“三十…

数据告诉你,剧版“浪姐“-《三十而已》凭什么这么戳中观众的心

CDA数据分析师 出品 作者:Mika 数据:真达 后期:泽龙 【导读】 最近《三十而已》这部剧频频霸占微博热搜,今天我们就来聊一聊。 Python技术部分请直接看第四部分。 Show me data,用数据说话 今天我们聊一聊 《三…

数据告诉你,剧版浪姐-《三十而已》凭什么这么戳中观众的心

image CDA数据分析师 出品 作者&#xff1a;Mika 数据&#xff1a;<typo id"typo-29" data-origin"真达" ignoretag"true">真达</typo> 后期&#xff1a;泽龙 【导读】 最近《三十而已》这部剧频频霸占微博热搜&#xff0c;今天我们…

剧版浪姐口碑爆了!数据告诉你《三十而已》凭什么火

来源&#xff1a;CDA数据分析师 本文约3100字&#xff0c;建议阅读8分钟。 最近《三十而已》这部剧频频霸占微博热搜&#xff0c;今天我们就来聊一聊。 《乘风破浪的姐姐》已成为这个夏天最火爆的话题&#xff0c;前有国综"浪姐"高歌猛进&#xff0c;后有这部剧版&qu…

广汽三菱携手M-SPACE重塑车主关系,奕歌燃情版潮现广州车展

北京时间11月20日,2020年广州车展隆重启幕。一时间,来自全球各地的顶尖汽车品牌齐聚一堂,为观众来一场史无前例的视觉盛宴。在令人眼花缭乱的车型当中,广汽三菱携手旗下多款车型亮相,成为全场的焦点。并正式发布以客户为中心的“M-SPACE”数字化服务平台以及2021款奕歌燃情版,通…

【CV】国内外优秀的计算机视觉团队汇总|最新版

文章来源于极市平台&#xff0c;作者CV开发者都爱看的 国内高校研究团队 北京 清华大学&#xff1a;龙明盛&#xff0c;黄高&#xff0c;艾海舟&#xff0c;张长水(Big eyes laboratory 大眼睛实验室)&#xff0c;丁贵广(Multimedia Intelligence Group)&#xff0c;朱文武&…

关于电影的HTML网页设计-威海影视网站首页-电影主题HTM5网页设计作业成品

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置&#xff0c;有div的样式格局&#xff0c;这个实例比较全面&#xff0c;有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录 一、网页介绍一…

国内外优秀的计算机视觉团队汇总|最新版

国内高校研究团队 北京 清华大学&#xff1a;龙明盛&#xff0c;黄高&#xff0c;艾海舟&#xff0c;张长水(Big eyes laboratory 大眼睛实验室)&#xff0c;丁贵广(Multimedia Intelligence Group)&#xff0c;朱文武&#xff0c;朱军&#xff0c;苏航&#xff0c;鲁继文&…

DBeaver Ultimate Edtion 23 Multilingual (macOS, Linux, Windows) - 通用数据库工具,现已集成 ChatGPT

请访问原文链接&#xff1a;https://sysin.org/blog/dbeaver-23/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;www.sysin.org 通用数据库工具 DBeaver 是一个通用的数据库管理工具&#xff0c;适用于需要以专业方式处理数据的每个人。…

chatgpt赋能python:Python如何实现将数据结果导出

Python如何实现将数据结果导出 在Python编程中&#xff0c;我们经常需要将代码运行的结果导出保存在文件中&#xff0c;或在其他程序中使用。下面我们将介绍Python中几种将数据结果导出的方法。 方法一&#xff1a;使用文件输出 使用Python内置的open方法来打印输出的结果到…

chatgpt赋能python:Python如何生成表格——探索多种方法

Python如何生成表格——探索多种方法 表格是我们在日常生活中经常需要使用的一种数据展示形式&#xff0c;无论是在学术报告、商业汇报或者个人记录中&#xff0c;都十分实用。Python作为一门高效、简洁和易用的编程语言&#xff0c;也具有生成表格的能力。本文将探索Python生…

ThinkPHP 6 模板导出Excel

PhpOffice\PhpSpreadsheet安装和基本的导入导出本文不在介绍&#xff0c;主要用来实现用设定好样式的模板&#xff0c;填充数据&#xff0c;导出Excel文件功能。 相关文章&#xff1a; 《ThinkPHP6 excel 导入功能完整实现》 《ThinkPHP6 excel 导出功能完整实现》 《ThinkP…

朋友圈引流裂变玩法,利用朋友圈裂变引流技巧

目前在流量被各个平台分散、稀释的情况下&#xff0c;如何获取流量&#xff0c;获取精准流量无疑是不少网络从业者谈论不绝的一个话题&#xff0c;获取流量有方法吗?有!博客分享了不下百个小众可能偏时效性的引流方式方法或者一些精彩的案例剖析&#xff0c;其核心也就那么几个…

微信朋友圈信息流的系统设计

引言 信息推流&#xff08;以下简称“Feed流”&#xff09;这种功能在我们手机APP中几乎无处不在&#xff08;尤其是社交/社群产品中&#xff09;&#xff0c;最常用的就是微信朋友圈、新浪微博等。 对Feed流的定义&#xff0c;可以简单理解为只要大拇指不停地往下划手机屏幕&…

微信群如何裂变怎么让微信群裂变拉人

当我们的微信群逐渐成为一个健康群的时候&#xff0c;这个健康指的是群友都能遵守群规&#xff0c;在群里都能有所收获&#xff0c;大家共同一致来维护这个群。这时候&#xff0c;群友们对群主已经建立一定的信任基础了&#xff0c;我们就可以实行裂变推广计划了。 按现在微信官…

迅速微信社交裂变,朋友圈吸粉你也能做到!

通过微信来进行信息的裂变&#xff0c;是微信营销中最主要的一个优势以及特点。生活中&#xff0c;我们经常能发现朋友圈中有很多转发领取奖品等相关朋友圈。大家明知道这些奖励其实并不值钱也并不丰富&#xff0c;但是却还是抱着不要白不要的心理去进行转发&#xff0c;这也就…

试用了8款微信群裂变营销工具!这里给你推荐1款!

因为公司最近需要做裂变&#xff0c;所以提前开始调研&#xff0c;试用了市面上主流的微信群裂变工具。 这里主要给大家推荐我试用中&#xff0c;综合评分高的这款微信群裂变工具。 社群裂变&#xff0c;用最简单的话来说&#xff0c;就是用户通过某张海报→入群→群提示语发…