![d9bb4d8767e08a0121f85cbe20a5efff.png](https://i-blog.csdnimg.cn/blog_migrate/4127aa1397b939d686f98e91b65ca748.jpeg)
我们前面的两篇文章介绍了表格问答相关的数据集和模型,今天介绍两个表格问答技术的应用。
Excel Ideas (创意)
不知道大家还记不记得,上一篇文章中的X-SQL和HydraNet都是来自微软的模型。微软作为一个老牌科技公司近年不仅在云计算领域迎头赶上,在AI方面也有很多优秀的技术创新和应用。依托于强大的Excel,他们在表格问答方面也有很好的落地土壤。
MSRA去年底发表了一篇题为智能数据分析技术,解锁Excel“对话”新功能[1]的文章,介绍他们在Excel中如何构建所谓“对话式数据分析”。他们认为这个场景中有下面几个核心问题:
- 理解和识别表格数据,例如表头、类型等元信息;
- 表格知识增强,例如实体识别和常识注入;
- 自然语言理解;
- 面向分析的渐进式对话,让用户可以用多轮对话进行数据探索(EDA);
- 交互能力,这一点和3比较接近。
而NL2SQL应该是覆盖了上面几个领域的集大成者。
![b0cba65cfa41c557040929efb623eb5e.png](https://i-blog.csdnimg.cn/blog_migrate/39fe7e5eeb00a44c86ef4084f4e0170c.jpeg)
在一个数据驱动的时代,需要分析的数据越来越多。作为一个算法爱好者,我可以熟练地使用pandas之类的工具进行各种复杂的数据分析。但对于大部分人而言,这些工具还是太复杂了。如果真的可以通过自然对话来进行数据探索,那将极大提高生产力。
他们把这个功能包装在了一个叫做Ideas的按钮里(中文叫创意),在英文版的Excel里已经可以体验表格问答,用户可以通过一个问题来让计算机帮助完成一些数据分析的操作。例如下面的动图里,用户问服饰类产品的销量是多少,软件直接给出了分好类条形图,几乎不需要用户了解任何的excel知识。
![28a7de78d50c12f5be68aa4697fa5d3b.png](https://i-blog.csdnimg.cn/blog_migrate/4c11027981f7a60a128a47c1bbdaebdf.png)
下面这个视频[3]里有更多的例子,因为是从Youtube搬运过来的,所以没字幕,大家将就看一下,3分钟开始是表格问答的内容。
Use Ideas in Excel_腾讯视频v.qq.com![be09e3fd5676e3840ea26180282032f6.png](https://i-blog.csdnimg.cn/blog_migrate/78f3f5de1ce916ffd5c13641287c3862.jpeg)
比较遗憾的是中文版office 365里面的创意功能只有智能数据分析,暂时不支持提问功能。
机器人平台
之前的文章里谈到表格其实是一种信息密度很高的文档类型,与文章相比,更加适合作为电商、查询场景的知识源,对于业务端的友好性又远好于问答对。国内的几大机器人平台也都意识到了这个情况,已经在陆续上线相关功能。据我所知晓多和百度UNIT已经正式上线表格问答,但由于晓多无法直接体验,今天还是以UNIT为例。
UNIT的表格问答功能刚刚推出不久,目前需要申请才能试用。这个功能我尝试下来总体完成度不高,但也算是这个领域一次值得鼓励的尝试。下面我们以官方提供的样例数据为基础介绍一下UNIT的表格问答功能。
![9034c5c9fa95516341f2697d452347a2.png](https://i-blog.csdnimg.cn/blog_migrate/8de64cfcf1b720646edacac92c525840.png)
样例数据是一个汽车相关的excel表格,里面共有5张表。其中一张是如下图所示的说明,具体数据放在其他四个表里。
![1a99f362856b38e89ae1aba0f2b878ed.png](https://i-blog.csdnimg.cn/blog_migrate/c541984ff47707c235eccab05adae2a5.jpeg)
第一张表叫table,里面就一行,分别是表格中文名和表格英文名。样例数据是一些汽车配置和价格信息,所以表名是汽车。如果针对表名提问,系统将根据所有信息进行回答。
第二张表叫schema,实际是定义了列信息,包括列名、列数据类型和话术模板。
![2efe65db3ff514e398e0d1a9a8c9b655.png](https://i-blog.csdnimg.cn/blog_migrate/403bf00b54621212be6e2a729bc2960b.jpeg)
第三张表是数据,每一行是一个实体,每个实体都有Schema中定义的列。
![73fe384f14f217891c8d02cf2763b3f6.png](https://i-blog.csdnimg.cn/blog_migrate/1008299b1312f89c37a91280d375bff9.jpeg)
最后一张表是同义词典,用于输入query的归一化,也是工业NLP系统的常规套路了。
![1b13ebf4481e5e657af7e1bafd4271c5.png](https://i-blog.csdnimg.cn/blog_migrate/1c907bec820df13ac3a6d275bfef2aa1.png)
根据UNIT提供的数据样例,目前支持的问法有以下几种:
- 基于表格查实体:有什么汽车推荐?
- 基于表格查属性:汽车的价格是多少?
- 基于单个实体查所有属性:帕萨特
- 基于单个实体查单个属性:帕萨特的价格多少?
- 基于单个实体查多个属性:哈弗H6的价格和级别?
- 基于多个实体查多个属性:哈弗H6和帕萨特的价格和座位数?
- 基于属性查实体:国五的汽车有哪些?价格大于100万的汽车有哪些?
可见UNIT的表格问答功能目前局限在信息的基础查询上,查询的复杂度主要体现在实体和属性的数量上,并不支持对查询结果进行逻辑或者聚合操作。我们也尝试问了几个问题,发现确实无法进行跨实体提问。而且目前只支持单表问答,一个表格问答技能只能绑定一张表。在系统中表格问答技能也只能单独发布,无法整合进机器人中。
![b44cdf7d77ca098dec0c270c3c7c2df5.png](https://i-blog.csdnimg.cn/blog_migrate/83cbd3044c1096047a861490105a5b94.png)
![deb87b15ead4c2c53d227186d71efd27.png](https://i-blog.csdnimg.cn/blog_migrate/6d235e2ee4be6425107d0c9dff27c69b.png)
无论是系统层面还是算法层面,感觉UNIT的表格问答都还有很长的路要走。
总结
以上就是我们表格问答系列文章的全部内容,从第一篇的问题简介,第二篇的算法模型到这篇落地应用,希望三篇文章让你对这个领域有了比较全面的了解。总的来说,不管是表格问答或者说更具体的NL2SQL都是方兴未艾的领域,还有很多值得探索和解决的问题。
同属于结构化知识问答大类的还有一个重要分支就是基于知识图谱的问答(KBQA),我们后面应该也会出一个小专题进行介绍,敬请期待。
参考资料
[1] 智能数据分析技术,解锁Excel“对话”新功能: https://www.msra.cn/zh-cn/news/features/conversational-data-analysis
[2] Excel Ideas体验视频: https://www.youtube.com/watch?v=bey_1SUTB4k