数据分析的新形式--自然语言搜索:NL2SQL2Graph

NL转SQL转图形

  • 背景
  • 定位
  • 分析能力模型
  • 调研
  • 实现

背景

自然语言转SQL,再将SQL结果集转图形,在NLP领域是个非常不错的研究方向,这样做的好处在我看来,主要有以下点:

1、数据分析人员无需写Code(SQL)实现取数,搜索数据,灵活方便,支持快速多变的adhoc查询
2、相对于报表和BI系统,数据分析人员主动探索数据,而不是被动接收相对固定的报表
3、搜索的方式简单易用、方便快捷,无需拖拽或定位到报表系统的某一级目录
4、接入新业务的成本极低,只需配置元数据,无需RD开发即可接入,提高开发、分析的效率

适合的人群以及面向的用户群:

1、业务专家或领域专家
2、数据分析人员
3、运营管理人员
4、产品经理(PM)或销售管理人员(BDM)

定位

需求无止境,有做不完的报表。
在数据调研阶段,往往一个需求的响应时间按天来计算,这对于决策就是灾难。
因此,此系统的定位是个快速响应临时需求的系统,而非固定报表类大盘系统。

平台或框架
非报表系统
SQL自动生成
图表自动生成

分析能力模型

借鉴Palantir公司的一篇文章:Friction in Human-Computer Symbiosis: Kasparov on Chess
文中提到IA,即智能增强,而非AI。理念是分析能力跟人(Human)、计算力(Computing)和摩擦因子(Friction)有关,数据分析能力的模型如下:

数据分析的新形式--自然语言搜索:NL2SQL2Graph_第1张图片
这里的f即为获取数据的响应时间。
下面的场景,数据分析人员是否会经常遇到?

策划一个活动,需要数据支持。给的反馈为排期N天之后
决定新的策略,开展数据调研。自己写SQL折腾半天后效果不佳
分析运营状况,从报表系统下载明细数据,excel在作出趋势分析,每周都需耗费1天
庞大的报表系统中一半以上的页面早就过时了,根本没人关注。当初的开发劳神费力

为什么没有个无需coding的灵活取数的系统?
为什么取数后还要下载到excel中进行分析?
为什么不能简单点,要什么维度、指标就搜索什么?

调研

我们最初想做这样的一个系统,是经历了数据分析人员和业务管理人员在灵活取数方面的诸多痛点后,才下决心完成一个以自然语言的方式,通过搜索的途径来获取数据、探索数据的系统。

在调研阶段,看到了Google在2017年发布了一个论文:Analyza: Exploring Data with Conversation,论文中介绍的便是这样的一个系统。

其实现的方式并没有采用深度学习等框架来解析,而是通过关键字来配置元信息的方式。原因是缺少大量的样本数据时,准确率很难保证。而采用元数据的方式,可以大大提高准确性。

论文中具体的点不再详细介绍,感兴趣的移步到链接。这里只贴出架构图:

数据分析的新形式--自然语言搜索:NL2SQL2Graph_第2张图片
简单说明,analyza就是通过NLP解析形成关键词,通过知识库积累元信息,利用元信息生成SQL,根据结果集的类型,可视化为不同样式的图形。

实现

下一篇介绍我们基于论文实现的Analyza系统。

你可能感兴趣的:(sql与plsql,大数据,数据分析,NLP)