百度语义解析 ( Text-to-SQL ) 技术研究及应用( 三 )
本文插图
图3 Sequence-to-Set
3)基于TRANX(自顶向下文法生成)的改进
复杂问题对应的SQL查询语句形式也复杂 , 涉及到多关键词组合、嵌套、多子句等 。 并且 , 测试集合中的某些SQL查询语句形式在训练集合中没有见过 , 这就要求模型不仅对新数据库具有泛化能力 , 对新SQL查询语句形式也要有泛化能力 。
针对这种情况 , 需要更多关注生成SQL的逻辑结构 。 为了保证SQL生成过程中语法合理 , 一些模型开始探索及使用语法树生成的方法 。
TRANX[14]框架借鉴了AST[15]论文思想 , 根据目标语言的语法构建规约文法 , 基于该文法可以将生成目标表示为语法树(需要保证生成目标与语法树表示一一对应) , 然后实现了自顶向下的语法树生成系统 , 图4给出了该系统流程 。
我们简单介绍一下基于该系统实现Text-to-SQL任务 。
首先 , 根据SQL语法制定规约文(对应图4中的ASDL Grammar) , 需要保证每一条SQL查询语句均可由该文法产出 。
其次 , 设计动作集合用于转移系统(图4中的Transition System) , 基于该转移系统选择合理的规约文法生成语法树 , 该转移系统将语法树的生成转成动作序列的生成 , 即转成一系列文法的选择序列 , 文法在选择过程中保证了合理性(即孩子节点文法均在父节点允许的文法范围内);该动作序列的生成可基于Seq2Seq等框架进行 。
该框架在代码生成、SQL生成等任务上都已验证过 , 在Text-to-SQL任务上的模型包括IRNet[16]、Global GNN[17]、RATSQL[18]等 。
本文插图
图4:基于TRANX的code生成
4)其他改进
在多表数据集合上 , 一些模型加入图网络来增强数据库的表示 , 如Global GNN[17]、RATSQL[18]等 。 在WikiSQL数据集合上 , 由于该数据集给出了SQL执行系统 , 部分模型通过加入执行指导[19]来提升SQL的可执行性和准确率 。
3. 评价方法
Text-to-SQL任务的评价方法主要包含两种:精确匹配率(Exact Match, Accqm)、执行正确率(Execution Accuracy, Accex) 。
精确匹配率指,预测得到的SQL语句与标准SQL语句精确匹配成功的问题占比 。 为了处理由成分顺序带来的匹配错误 , 当前精确匹配评估将预测的SQL语句和标准SQL语句按着SQL关键词分成多个子句 , 每个子句中的成分表示为集合 , 当两个子句对应的集合相同则两个子句相同 , 当两个SQL所有子句相同则两个SQL精确匹配成功;
本文插图
执行正确指 , 执行预测的SQL语句 , 数据库返回正确答案的问题占比 。
本文插图
目前仅WikiSQL数据集支持Accex , 其他数据集仅支持Accqm 。 大部分数据集发布了对应的评估脚本 , 方便大家在同一个评估标准下进行算法研究 。
接下来 , 我们就数据集DuSQL的建设和模型DuParser的构建 , 向大家介绍百度在Text-to-SQL技术方面的研究 , 并展示百度在ToB客服业务和搜索业务中对该技术的应用 , 同时也对该技术面临的挑战和未来发展进行了一些思考 。
百度对Text-to-SQL技术的研究
百度在一些实际业务中需要用到Text-to-SQL技术 , 比如基于表格的问答、ToB的客服业务等 , 所以结合实际应用 , 在数据集建设及模型构建方面做了一些工作 , 有一定的技术积累 。
1. 数据集DuSQL
由表1可见 , 当前Text-to-SQL数据集大部分是英文数据集 , 中文数据集只有NL2SQL数据集和CSpider数据集 。
推荐阅读
- |单赛季仅丢15球——“穆一期”切尔西攻防战术解析
- 东大街知事|而现在才发现百度、高德、谷歌地图都是“错误”的,天天用地图
- 娱乐大起底|《乘风破浪的姐姐》公演舞台来袭:看珍爱网大数据解析女性如何实现自我价值
- 汽车点评AC|价格不变!东风日产2021款骐达车型解析,配置升级
- Google地图天天用地图,而现在才发现百度、高德、谷歌地图都是“错误”的
- 7月5日|等差数列:5,9,13的下一项是?蚂蚁庄园7月5日答案及解析
- 威呐解析|想要打破局面还得等轰-20!,改头换面的轰-6仍称不上战略轰炸机
- 张含韵|《乘风破浪的姐姐们》——张含韵星盘解析
- 团战|原创团战初体验,「炙热」解析团的魅力
- 思小沫|这部戏张国荣造型颓丧,是刻意参考奥斯卡获奖电影,西瓜视频解析
