为了进一步降低开发者使用平台的成本,UNIT开发了表格产品。开发者不再需要基于结构化知识提取问答、设置意图和词槽,只需要在平台上一键上传结构化知识表格就可以实现表格数据的自动问答。还可以添加到机器人中,与其他技能一起使用。
【表格问答能够解决什么样的问题】
用户输入结构化的实体数据,机器通过对结构化知识进行训练生成技能,回答有关该结构化知识的查询问题,主要可以回答两类问题,a. 以实体名称询问该实体的属性,如:哈弗H6和帕萨特的价格和座位数?b. 以属性条件来查询满足条件的实体,如:推荐一下前轮驱动汽车?
具体案例举例说明:
1. 用户原始数据如下:
2. 期望能够支持的问法如下:
1)有什么汽车推荐?(基于表格查实体)
2)汽车的价格是多少?(基于表格查属性)
3)介绍一下帕萨特(基于单个实体查所有属性)
4)帕萨特的价格多少?(基于单个实体查单个属性)
5)哈弗H6的价格和级别?(基于单个实体查多个属性)
6)哈弗H6和帕萨特的价格和座位数?(基于多个实体查多个属性)
7)国五的汽车有哪些?价格大于100万的汽车有哪些?(基于属性查实体)
【如何体验表格问答】
首先,需要登录UNIT平台,点击“创新技术”区,进入如下界面,点击“表格问答“就可以体验啦~https://ai.baidu.com/unit/v2#/innovationtec/kbqa/skilllist (ps:创新技术区是UNIT把创新技术在业务场景下落地探索的窗口,目前包含表格问答、对话式文档问答和语义解析离线使用三种创新技术,您可以在线体验这些新技术,同时更多创新技术敬请期待)
【怎样快速创建表格问答技能】
UNIT提供管理API和对话API供开发者实现上述功能,构建一个完整技能的流程如下:
1.知识构建
首先需要选择合适的场景,该对话场景需具有结构化或能够梳理出结构化的表格数据,围绕表格数据需要提供table、schema、data以及synonym四类表格数据,这四类数据作为一个整体描述该场景知识,只需上传excel表格即可,表格包含以下sheet。
1.1 table数据
结构化知识的表格本身需要进行中文和英文名称命名,该名称也能够帮助后续问答的解析。例如在汽车场景问答知识中,我们需要构建表格中文名和英文名,其中中文名若有相似说法,可通过“|”扩展中文名称说法。具体格式如下:
1.2 shema数据
结构化知识数据一般来源都是企业二维数据表格型数据,按照表格建表逻辑,我们需要创建该表下的每列名称以及每列的数据类型,所以在表名称已经明确后,我们需要确认该表下的schema数据,该数据包含:属性名英文、属性类型、属性名(多个用|隔开)和自定义回复话术。车辆结构化知识的shema数据如下:
Tips:
a.属性名英文
属性名英文,用于标识属性,内容限制为大小写英文和数字,属性名英文不可重复,且必须包含name属性,用来标识实体的主属性,例如“帕萨特的价格是多少?”询问的就是“帕萨特”这个实体。
b.属性类型
属性类型,用于描述属性对应的数据类型,目前只支持string(字符串)、num(数字)、bool(布尔)等类型
c.属性名(多个用|隔开)
属性的中文名,用于描述具体询问的属性,一般是比较正式的属性名,例如“帕萨特的价格是多少?”,询问的就是 “价格|售价”这个属性
d.自定义答复话术
自定义答复话术,可根据需求对不同属性配置不同的答复话术,目前只支持单属性的回复话术配置,例如“|name|的价格是|price|万元”,则为价格这个属性配置对应的单位。
1.3 data数据
依据上述table表格名称和schema表格数据类型确定后,需要填充该表格各列实际具体的属性值数据,该数据用table表格进行呈现,以车辆数据举例如下:
该数据需要按照schema中声明的属性先后顺序提供,且符合每列数据类型的要求,数据行数不限,不过考虑处理速度,目前最好在5000行以内。
1.4synonym数据
用户实际表述时,关于表名、列名和每个属性值的叫法都存在各种相似说法,为了提升解析能力,可以通过synonym数据进行同义词泛化,提升整体解析泛化能力。格式为扩展说法在第一列,表头是关键词;第二列为该数据归一为原有表格中的词,该列表头为归一化词。具体车辆结构化数据中的synonym数据举例如下:
2.技能创建并模型训练
当结构化知识数据准备好后,可进行模型数据上传和模型训练,可通过以下两步完成:
2.1上传结构化知识数据
结构化知识问答仅需按照格式上传excel表格即可,表格要求见上传弹窗相关提示要求:
Tips:
a.当前版本仅支持EXCEL文件格式的文档上传
b.上传文件中必须包含table、schema和data数据,这三部分数据为训练必备内容
c.上传文件中synonym数据为非必须上传内容,考虑模型效果可酌情进行上传
d.文档的大小上限是2M
2.2技能训练
上传数据后,点击训练按钮,当现实训练完成后,对话模型便能够进行调用。
3.对话测试调用
此时可通过两种方式进行对话调用,方式一点击“测试”进入以下界面,通过对话测试窗口可进行话术测试,验证模型效果。
方式二通过对话api与用户相关系统进行集成,进行对话调用。详见技能对话API说明文档(https://ai.baidu.com/ai-doc/UNIT/Zk38h1vl4 )
4.效果评测及优化
基于对话模型,用户可进行相关评测,评测过程中若对模型解析和答案话术效果不甚满意,可通过优化结构化数据中的同义词表和回复话术等进行优化,直到满足用户评测效果要求。
5.上线迭代
上线后,随着数据等汇总和业务等表动,需要逐步对模型数据进行优化,使得整体效果能够保障在一定的要求范围内,持续长期满足场景下问答需求。
ps:上述技能调用能力也可以通过管理api进行完成,管理api整体操作流程与上述相同,整体可通过api的形式进行技能创建、数据上传和模型训练等操作,详见管理API文档-2.6表格问答技能 章节(https://ai.baidu.com/file/7C55A10B0EFC4087B4E8EB4A77E04599 )
【添加到机器人中】
表格问答技能还可以添加到机器人中,与其他技能一同调用。
如有任何关于表格问答的问题,欢迎跟帖留言,也可以请发邮件至unit-innovation@baidu.com与我们沟通。
使用门槛进一步降低
这个功能太赞了
这种数据是怎么存储的?是用mysql吗?表设计是如何设计的?
like模糊检索一般是用正则表达式,例如"%帕萨特%",使用什么表达式还有效果挺难保证的。昨天表格问答的泛化能力做了一版升级,可以重训模型体验一下。
请问怎么把筛选的时候的=换成like?怎么进行模糊筛选?
通过机器人接口调用方便多了,可以和其他普通对话技能一起使用
新人一枚,来这里想各位前辈学习。
这个是支持的,可以在synonym那个表里面加一行,然后重新训练技能。
训练完成后,测试query:“我想要四驱车”是OK的
我想反馈一个建议或许可以推出一个类似简化词的表
比如我想要一辆四驱车
四驱车等于驱动:全时四驱
这样就可以用这个简化词来筛选属性的实体
使用起来会更方便
你好,我是一个自己做软件开发的,想学习一下这个然后去给客户做推荐
但我现在没有公司,能不能给我开通一下啊
示例文档应该不会报错,可能是其他原因,具体可以加QQ群805312106进行咨询昵
应该已经审批过了,您这边可以再看下昵。
上传示例文档都报错,怎么回事
我也是,申请了一周了还没通过,人呢
当前阶段主要以单表为主,后续会根据大家的反馈对功能进行迭代升级哈~
您好,基于用户提供的结构化知识,系统可解析出query中的实体和属性,通过内置模型分析,自动生成响应,所以无需进行意图定义,也无需提供问句语料。
不过为了更好的识别实体和属性,可按照说明提供相关同义词进行模型优化。
这个支持多个表格吗?申请了现在还没下来
结构化?我知道化学的项目有结构式
这种结构化表没有问句语料是如何识别意图的?
感觉非常的方便