构建智能查询:从Excel到自然语言分析
文章主题:人工智能, ChatGPT, 机器人, 自然语言处理
1、引言
最近ChatGPT的出现,把人工智能又带起了一波浪潮。机器人能否替代人类又成了最近热门的话题。
今天我们推荐的一个玩法和ChatGPT有点不一样。我们的课题是“让用户可以使用自然语言从Excel查询到自己想要的数据”。
要让自然语言可以从Excel中查数据,那我们得做点准备:
需要一个Excel文档需要一个自然语言查询工具(这里我们推荐Smartbi NLA)
1.1 体验自然语言查询
老规矩,先上效果再说其他。
【使用录屏动画】
2、Excel说明
在开始之前,我们需要创建一个Excel文件,其中包含的数据是模仿一家企业合同签订表的随机模拟数据。某些数字可能与实际情况有所出入,遇到这些情况,请您自动忽略。
2.1 数据结构说明
2.1.1 合同明细表
2.1.2 销售表
2.1.3 地区表
2.1.4 日期维
2.2 表关系图
【表关系图】
2.3 数据示例
【Excel详情】
3. 数据导入与建模
数据情况介绍完了,我们要用上述的数据,做一个数据模型,下面主要介绍下建模的过程。
如果对数据模型已经很熟悉了,可以跳过。快速直通车
3.1 Excel导入
Smartbi中的Excel数据导入,非常简单,按照向导操作就可以了。
【Excel数据导入】
3.2建立表关系
3.2.1第一个表关系
在数据导入流程中,我们首先创建了首个表格之间的关系。当您的鼠标移至《销售表》表上时,会相应地显示四个小圆圈。挑选其中一个圆圈并将其拖拽至《合同表》之上,系统将自动弹出表关系对话框。接下来,我们需要指定关联字段并选择关系类型为“一对多”。
【《销售表》和《合同表》关系建立】
【完整表关系】
3.3指标、维表和事实表处理
3.3.1生成指标
【双击“合同金额”转指标】
从事实表中,找到需要转为指标的列,双击,就会自动生成指标。
3.3.2处理维度
在默认情况下,右侧栏的每个字段都会生成一个维度。然而,对于那些在正常查询中无需显示(如ID、编码等)的字段,我们建议将其隐藏起来。这样做可以减少不必要的干扰,并使自然语言更好地识别用户语言中的指标和维度。在设计模型时,我们应该尽量使用用户熟悉的词汇来替代指标和维度,以便于他们更直观地理解和使用这些功能。
【隐藏“合同维表”】
【显示“合同名称”】
在《合同维表》的设计中,我们可以看到需要展示的信息包括“合同名称”、“商机类型”、“合同类型”以及“行业名称”。为了更好地组织和展示这些信息,我们可以将这些字段设定为维度,从而使得数据更加清晰明了。而对于其他字段,则可以考虑将其隐藏,以减少不必要的干扰。同样的操作也可以应用在其他表格中,隐藏编码字段,以便于更好地展示关键信息。这样的处理方式有助于提高数据的呈现效果,使查看者能够更直观地理解和分析数据。
3.3.3创建时间维度
【创建时间维度】
在右键“日期”字段,选择“创建时间层次结构”,我们可以创建包含指定层次的时间维结构。
【选择时间层次结构】
根据查询需要,我们选择了“年”、“季”、“月”、“日”,4种层次结构。
【生成的时间层次】
在命名方面,如果您认为默认名称并不理想,那么当然可以进行更改。但是,考虑到我国对于日期的普遍表述习惯,我们仍然建议您对默认名称进行调整。当然,如果您有特定的需求,也可以对显示的日期格式进行相应的修改。
【修改季度名字】
【改名后的时间层次】
3.4自定义指标
除了合同金额,如果我们还想知道“合同个数”,我们需要对“合同编码”做唯一计数。
【生成“合同个数”指标】
3.5模型抽取
最后,我们需要对模型进行抽取,将Excel数据加载到高速缓存库中。
【模型抽取】
【点击:抽取并建宽表】
3.6模型验证
模型做好以后,我们需要验证下模型是否正确。这里可以使用“自助仪表盘”完成模型的验证工作。
【新建-交互式仪表盘】
【查询验证】
把用到的维度和指标都拖上来,看看是否有数据,数据是否正确。
3.7总结
以上是创建数据模型完整的过程。是不是很简单,手痒的同学可以先试试了。
Smartbi的数据模型建设过程非常简单,全程就是鼠标拖拽就实现了,除了改名,基本不需要使用键盘。更不需要写SQL语句或者其他程序语言。对用户的要求大大降低。就算稍微有点高级的–做计算指标,对用户的要求也只是:了解该指标的计算方法,然后基本也是全程鼠标就可以实现了。总之,使用Smartbi一切都太方便了!
4自然语言查询
4.1训练NLA模型
Smartbi 的自然语言查询功能是在数据模型基础上构建的一个知识模型(即知识图谱)。该知识图谱的训练过程相对简单,用户只需进行一定的训练即可。然而,Smartbi早已将这些繁琐的工作整理好,用户只需轻轻一点训练按钮,便可轻松完成知识图谱的构建。
【训练AI图谱】
【选择需要参与训练的维度】
日期维、ID、编码、数字这些一般是不需要参与训练的,也就是只训练有意义的字符串列。
【选择对话式分析-进入自然语言查询】
4.2查询演示
4.2.1语义场景自适应
【排名演示场景】
Smartbi 的自然语言查询与其他产品有所不同,它不需要用户完整地输入数据库中的字段名。相反,用户可以使用自己熟悉的语言表达方式来提问,系统将根据当前的语言环境自动匹配最恰当的字段进行回答。这种设计使得 Smartbi 的自然语言查询更加便捷、易用,为用户提供了更高效的数据查询体验。
在上述示例中,广州分部的合同金额排名前十的销售数据,系统能够自动识别并根据当前语句选择是要对“销售姓名”还是“销售分部”进行排名。在这个例子中,系统提供的选项为按照“销售姓名”来进行排序。
“合同排名”也是同样的意思。这里就不详细展开了。
4.2.2自动生成计算指标
【动态生成计算指标】
Smartbi自然语言查询,还有一个显著特点是可以自动生成一些常用的时间计算指标(不需要预先在模型中做好)。比如:同比、环比这些。
Smartbi NLA支持的时间计算指标有:
同期比环比同期值前期值同期增量前期增量年累计年累同比季累计季累同比月累计月累同比占比
4.2.3综合分析案例
【分析案例】
这个演示主要是介绍使用自然语言分析出“广州分部合同金额去年同比下降”的原因。最开始查的是“各分部的合同情况”,然后发现广州分部同比下降了37%。
然后继续问广州分部各行业的情况,只看行业数据看不出问题,我们加上了“同比”和“占比”,发现“占比”比较大的行业(零售、教育、旅游)的合同额都大幅下滑,特别是旅游行业下滑73%。
我们再从月份的角度看,基本看到4月、5月数据都下滑比较严重,到了下半年跌幅也比较巨大。
通过上述示例发现,在做数据分析的时候使用自然语言查询,要比传统的拖拉拽方式快速很多,比手写SQL更是进步了几代。所以使用自然语言做分析,将会给业务分析人员,带来更大的方便性。
AI时代,拥有个人微信机器人AI助手!AI时代不落人后!
免费ChatGPT问答,办公、写作、生活好得力助手!
搜索微信号aigc666aigc999或上边扫码,即可拥有个人AI助手!