CRM客户关系管理系统-博狗官网

免费试用400-821-5041

CRM新闻

不用再学SQL语言了,Saleforce用自然语言就能在数据库中查询

时间: 2018-03-30来源:互联网

  SQL在编程领域越来越少被提及,但是SQL语言的学习曲线仍然陡峭,这就让很多人放弃了尝试直接和关系型数据库打交道。

timg.jpg

  CRM 软件服务商 Salesforce 的人工智能研究团队就从自己的业务开始下手,探索如何让不具备 SQL 知识的人通过机器学习打开数据库操作的大门。


  在他们近期的论文「Seq2SQL: Generating Structured Queries from Natural Language using Reinforcement Learning」(Seq2SQL:用强化学习从自然语言生成结构化查询语句)中,构建了一个机器学习中典型的序列到序列模型。在其中用到的强化学习让模型在翻译自然语言到SQL数据库查询语句任务中取得了让人眼前一亮的成果。


  这就意味着,在实际应用中用户可以直接问系统:“橄榄球高校巡回赛排名第一的是哪支队伍”,系统就会自动查询对应的数据库,然后告诉你答案是密歇根大学队。正如下面这张动图示意的?


  Salesforce 研究员 Victor Zhong,也是这篇论文的第一作者,介绍说:“一个正确的查询语句其实可以有好几种写法。


  如果给系统里输入一个自然语言的问题,对应的查询语句可能会有两三种。我们用强化学习来鼓励系统选用能够查询到相同结果的语句。”

  

  随着自然语言的提问里包含的单词变多,可以想象这种机器翻译任务也会很快变得非常复杂。应对方式就是,对于每一个缺失单词的可能翻译数目施加的限制越多,翻译任务就会变得越简单。


  Salesforce 的研究人员们就利用了这种想法,他们对系统的提问里、数据库标签里和典型 SQL 查询语句里能够包含的单词做了一些限制,从而简化了翻译系统的设计难度。


  让 SQL 平民化其实也不是新鲜事了,Tableau 最近收购了创业公司 ClearGraph,后者的业务就是提供用英语而不是SQL语言查询数据的方案。


  Victor Zhong 补充说:“有的模型直接在数据库上做操作,但是如果提问一个关于身份证号的问题就会有潜在的隐私问题。”


  除了论文里的方案本身,Salesforce 的这项研究还有一个贡献是他们构建的 WikiSQL 数据集,他们的翻译模型就是用这个数据集训练出来的。


  他们首先从 Wikipedia 采集了HTML表单,这些表单就成为了随机生成的 SQL 查询语句的基础;他们从这些查询生成了对应的问题,然后把问题放到亚马逊 Mechanical Turk 众包平台上让人类把它们改写成自然语言。


  每个改写后的句子都会被确认两次,而且还安排了单独的人指导这些确认过程。最终构成的 WikiSQL 数据集也是目前所有同类数据集中最大的一个。