赞
踩
很久没在CSDN上发文了,发篇文章,攒点收录。
Author: 刘帝伟
原文地址:http://www.csuldw.com/2019/10/20/2019-10-20-nl2sql-introduction/
对于NL2SQL,也许在以前很多人会比较陌生。自从今年6月天池出现首届中文NL2SQL挑战赛之后,算是掀起了一股浪潮,中文NL2SQL也可以说是得到了进一步的发展。NL2SQL是CUI(Conversation User Interface)的新兴研究热点,其研究目的是将用户输入的自然语言转为可用的SQL语句,提高用户查询数据的效率。笔者接触NL2SQL方向并不长,所以也不敢在各位大神面前班门弄斧。比起情感分析、推荐系统、知识图谱这些领域,NL2SQL的文章真是少到可怜。本文也是出于学习目的对NL2SQL方向进行概括和总结,要是相关童鞋也在做这个方向,我们不妨一起交流交流。
NL2SQL(Natural Language to SQL), 顾名思义,是将自然语言转为SQL语句。它可以充当数据库的智能接口,让不熟悉数据库的用户能够快速地找到自己想要的数据。举个例子来说吧,在某个周五的晚上,业务人员小李想写份工作报告,总结下这个月的工作情况。在内容上,有一处需要查看某个产品本月的销售总额,但公司却没有这方面的具体报表数据。小李心里琢磨着,好歹自己也学过数据库,要是知道这个数据在那张表里面就好了。为此,他给开发人员小王打了个电话,本想让他帮忙从后台数据库里查一下,可谁知小王已经趁着周末去度蜜月去了,然后又给另一个开发小夏打了个电话,结果无人接听,真是让小李愁的寝食难安呀!这时候,如果能够有一个搜索框,小李只需要输入"我想查看A产品9月份的销售总额",最后返回给小李一个SQL语句或是查询结果,岂不大快人心哇。
上面这个例子就是NL2SQL的一个应用场景,无论结果是返回数字,还是将其以报表的形式展示给用户,都要经过NL2SQL这一过程。其实基于图谱的QA问答,本质上也与其类似,知识图谱问答是将用户的query转化为SPARQL,然后从图谱中搜索结果返回给用户。举个栗子,如图Fig 1所示,用户以文本的形式提出Question:“what 's the total number of songs originally performed by anna nalick?”,经过开发的系统解析之后,最后返回给用户的是一串SQL语句“??? ??? ??? ?h??? ??? ??? ??? = ??? ?h??? ???”,或是返回执行结果:1。
NL2SQL的历史悠久,早在1973年,Woods等人就开发了一个名为LUNAR的系统,可以回答关于从月球带回的岩石样本的问题。到了1978年,Hendrix设计了一个连接美国海军舰艇信息数据库的自然语言接口,名为LIFER/LADDER。这些系统仅仅支持特定数据库的单表操作。
近年来,研究人员
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。