此文章通过用一个电影领域的表格为例,介绍如何通过任务机器人来实现在表格数据上的问答,浅显易懂,精妙绝伦!
背景
以表格的形式存储数据是非常常见的方式,因为表格维护方便、便于管理,但是对于这种高度结构化数据的查询一般需要一定的专业知识。将自然语言处理技术引入可以让用户通过问答的形式访问表格数据,大大降低了使用上的难度。
本文将以一个电影领域的表格为例,介绍如何通过RPA机器人实现在表格数据上的问答。第一部分,主要介绍本文出现的一些名词和知识;第二部分,主要讲解在RPA系统中是如何准备数据的,第三部分,介绍如何通过搭建机器人实现具体的问答能力。
1、基本概念
1.1表格数据
表格数据是我们的核心知识,以电影领域为例,我们应该首先准备如下表格数据:
1.2主体、属性/属性值
主体:每个表格都是围绕一个主体组织,如电影表格中“电影”即为主体,具体的电影名称如“飞驰人生”是“电影”主体的一个实例;属性/属性值:属性代表主体所具有的某个性质,如“导演”、“演员”等;属性值是属性的取值,取值有类型,常见取值类型有整型、浮点型、日期、时间、字符串等,电影表格中各个属性的取值类型如下所示:(可以是“字符串”、“整型“、”浮点型“等。
2、数据准备
在RPA系统上准备表格数据主要分为两个步骤。
第一,创建实体。
第二,上传表格。
2.1创建实体
实体的定义和作用可以参考吾来的产品手册,链接🔗http://1t.click/aWyG首先我们创建一个属性名称实体,这个实体的值就是1.2提到的各个属性,如“导演”“演员”等;
然后给创建一个主体实体,这里我们创建一个“电影”实体,不需要新增实体值;
最后给所有需要支持“属性查询主体”意图的属性单独创建属性值实体,例如,如果希望通过导演的姓名查询该导演执导的电影,则需要创建一个“导演”实体,这里我们希望支持通过“导演”、“演员”、“评分”、“时长”属性查询电影,因此我们需要创建“导演”、“演员”、“评分”、“时长”四个属性,但是“评分”(数字)和“时长”属于常见的属性,已经提前预置于系统中,因此我们这里只需要创建“导演”和“演员”两个实体。
2.2上传表格
首先我们需要定义表头,对于主体和2.1创建了自定义实体的属性需要填写对应的引用实体,这样可以将表格中的内容自动填充到之前定义的实体值下,其他属性则不需要引用实体。
然后上传excel表格即可,详细步骤可以参考产品手册,链接🔗http://1t.click/aWyN
3、创建任务场景
我们可以将查询类型抽象成两类:
1. 主体查询属性:“飞驰人生的导演是谁?” 2. 属性筛查主体:“韩寒导演的电影有哪些?”“评分高于8分的电影有哪些?“我们使用两个意图处理这两类问题,“主体查询属性”意图将在3.2介绍,“属性筛查主体”意图将在下一次分享中介绍,另外我们需要创建词槽以储存用户话术包含的关键信息,这部分将在3.1中介绍。
3.1创建词槽
第一,创建主体词槽。我们需要一个词槽记录用户提及的主体。最好用主体概念的名称来命名这个词槽,比如”电影“;该词槽引用“电影”实体(与表格主体引用的是同一个实体)。第二,创建属性词槽。我们需要一个词槽记录用户在询问主体的哪个属性;推荐属性词槽用“属性名称”来命名;词槽都引用“属性名称实体”。
第三,创建属性值词槽。我们需要有词槽能记录用户提及的属性值,允许用户同时提及N个属性值,因此共N个属性值词槽。推荐属性值词槽用属性名称命名,比如“导演”,“演员”等。
又因为当用户提及属性值时,还可能有对这些值附加的要求(“大于”或“小于”),为了能记录这个信息。我们推荐对每个可以比较大小的属性值词槽(如“时长”、“评分”)各增加2个分别记录有”大于“或”小于“附加要求的词槽。
最后,属性值词槽需要引用在2.1中创建的属性值实体(包括不需要创建的系统实体),例如“导演_1”词槽引用“导演”自定义实体,“评分_1”词槽引用“数字”系统实体。
值词槽。我们需要有词槽能记录用户提及的属性值,允许用户同时提及N个属性值,因此共N个属性值词槽。推荐属性值词槽用属性名称命名,比如“导演”,“演员”等。
又因为当用户提及属性值时,还可能有对这些值附加的要求(“大于”或“小于”),为了能记录这个信息。我们推荐对每个可以比较大小的属性值词槽(如“时长”、“评分”)各增加2个分别记录有”大于“或”小于“附加要求的词槽。
最后,属性值词槽需要引用在2.1中创建的属性值实体(包括不需要创建的系统实体),例如“导演_1”词槽引用“导演”自定义实体,“评分_1”词槽引用“数字”系统实体。
3.2主体查询属性
主体查询每一种属性的话术都是不同的,例如问导演可能会说“飞驰人生是执导的?”,问时长可能会说“飞驰人生多长时间啊?”,问了增加对于问题的泛化能力,我们给每一种属性的查询单独创立一个子意图,利用意图识别的泛化能力触发不同属性的查询。
同时吾来平台任务机器人自带的多轮对话和意图跳转等能力,可以帮助我们实现更智能的对话流程。
我们以主体查询导演子意图为例,讲解搭建机器人的具体过程,其他属性的查询类似。
- 设置触发器
我们需要给意图添加若干相似问题帮助触发器触发该意图,相似问题的选择尽量可以涵盖询问该属性的多种说法。
- 编辑意图流程
进入意图后,我们会首先经过一个询问填槽单元,用户话术中的出现的电影名称会填入到电影词槽,如果词槽中的值不属于我们数据库中的电影实体时,就会跳转到消息发送单元,提示用户没有找到对应的电影,并跳回询问填槽单元请用户重新输入电影名称;如果词槽中的值属于电影实体,则进入表格读取单元,查询该电影的导演,结果储存在result词槽中,通过消息单元发送查询结果,最后结束意图。
- 效果展示
同一属性不同主体的查询
同一主体不提供属性的查询
结语
本文介绍了如何使用吾来系统搭建一个具有表格问答能力的任务机器人,用户可以通过自然语言询问表格中的内容,机器人根据问题的类型查询表格并回答用户的问题。
本文主要讲解“主体查询属性”(“飞驰人生的导演是谁”)这类查询意图,“属性筛查主体”(“李安导演的电影有哪些”)查询意图将在之后的文章介绍。
51RPA小编觉得还是要加上电影《飞驰人生》的精彩镜头才过瘾。
对话中出现的其他更复杂意图,例如“比较两个主体的属性”(“飞驰人生和流浪地球哪个评分高”)等,也可以在前两个意图的基础上很容易搭建而成,也将在之后的文章中进行详细的介绍。
本文是51RPA中文社区原创文章。发布者:RPA小当家,转载请注明出处:https://www.51rpa.net/rpaedu/4035.html
评论列表(2条)
果然很精彩,不管内容精彩,配图也很厉害!这样讲述RPA知识很吸引人。
@Brandon:谢谢支持!